From 61a4536d391bb052f23f500d50c3c5e82fd11a7a Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Thu, 31 Jul 2025 21:23:25 +0000 Subject: [PATCH 01/34] Documentation edits made through Mintlify web editor --- images/customer-directory/trueanthem.png | Bin 0 -> 52900 bytes resources/enterprise/customer-directory.mdx | 5 +++++ 2 files changed, 5 insertions(+) create mode 100644 images/customer-directory/trueanthem.png diff --git a/images/customer-directory/trueanthem.png b/images/customer-directory/trueanthem.png new file mode 100644 index 0000000000000000000000000000000000000000..749cd8ce6a7bbbdb602cf2dadd62d89312cfb30a GIT binary patch literal 52900 zcmeIb2_RHo|35x7St@IrN*YTg8fGz;3EB58WJ#96SclQfkUdM5QmBL?rBXtcLQ*6x ziV7k7QnGJliL&&+V<}B~o=-ggPv82bNw;&)`+d$m=k;FCxo3`OX(%$R*th}&0x>8n z$!UW?)EMA8jgAKRofS-f1^9=GsI4diN`1lJ1^fqMp`@)20=aJkfqV{wK%amjpH2|S z83qD%n}I;+Xb@<C3ep74K{vYM>4r1pEf^0DlQoi0SJ!z;$GhEeJeIn*{tz{!s${0$gYQmA1s2Vi`1A4%jT{@Y2>D7H~|b$5I7Qz5Je-AASGKrOW+p0lae731X{V8{Fe%JHkJ(p zI={*X!DXPX1(C%Qun=JZm;j7Ras>ne5hqw$p|#}{X32s7NpRVaNKR-$!Gi}63LHcV z;0e}(a4|74K^Q_1fq()vphP!E62=wkNaUVjGRH>_OSB-^I+1Mgju0|mj5*$!B*Dc+ zZs^O;Og}9xzO>`yOu$XIVre0W#bF(=jwGTWTmUY(5FPNeUkDwEv!elwi=ZpU2_S+k zNJO%=`ubSkP?7KakPK)`SIhc8H%Ah5vR<%FfLQTAlP*k0B+1!2{AWU@;sCzj^YI7js3xNEzAn2z91u89L||YB49{(!ooe9SK)^skas1Khnc8=cO>Zm zSJ*GC$nt@my(>V5;IzDbskh)TInAkJEsxP;H*d45^?GMI=d}oGiTCiv2P2AD~ zZG|T|U`Ud-4j5~!pp&DuxZu~qufQSKB-xU1*m=|dk7@lNjU#6<0Suq&K4J>B%1fU%6&eUc{M3`sN*edt=#7E_;F9Z)||(Ktjf@2>B2da74Tk1 zTaqL~TyUXcN-9l)Eg*~-GMOZNmSlbzWqrf1%}9#OwK2btlE7dgg87B>2!MG3v@Tlb zAckaNqe#FzI}s@$L&lK~_Q1EL^B_sS?}Q-`v1C0d!8NCGzSyc6(U|#7hLs}Pn%s;A z#sMoSHv?hFO!JWG_NV86exJnS8y1JdACv_Ag6W^xN1iQRpz9Rm4tPtfq^!E3>MY^(|NlFg zISylCPub{9;eRJ4P9tP`*7R*`N!Zz@=N12V9u{sGN6Pl6%lkp=kg~14kW|`M1)bo2-NIkE=EU40Lw(`62P=T z3?;;15LMuE(a?YkeLDz$u`!*L5*7M(n*JSZP{`?`umJ<00f53#LKFocWAVVC=*v&y zf>O5r5F;WcBp`->i;B!i@9zZ*(P@S8D`6obCLj!q-t78@BKi-3#dj9+_re8=j0>_k z`E~jNMWJr~5Mcb?W(0}))n)`qVTS({So{*tlS0H6a} z$vF(<;@wZm?9@*pgYs$q5NJ@U(%&bE@x__|7fZ=uP>#S);^NPYON4&goF|a)oV6uF zOT-0*`ua&+{F#=70`0$%wwQ(mIk&a6jHmF@f>p|uw?D*+{I;-|_B^Lk;Y)+X65US9 zNcRtc1x3d1_t6&Q02NqKC98|28IkYOI6rGeDD3bb0t^I20RQhGgR<2{1tc@jApbU$ z0A8$B1%54l9|q-n2tSFA@6h#!z~i?yC(|*>3^tZ#PnH;z`~}9`+eR}l8~x(f#$+X? zbK?ICU{HDre>KMR)-B34(#{(X?~B|HIE;g^C73Y7jNE-2R({t)*Q`P=T) z0Rj?ra#Ug{A+$7HP=-oB2@Fc|KLi-R#*$EEQ5I!M063^i010s*pFsx3;zL$S+4xCd zP_8TdDZrqxum6rAp_H;kA!9l+0e%@u2$PYqglq<-bo?YVD9Qg2Xb4lhYxD0wgHlWv z2Mw|{0Z;)zgB+O%Eq?7CMWMrf78(@d^%oky^b{OfvWo$jlP}0vJTNF#*iQn366Svh zFetNs|BlX}5VA$73}B~@I@!fAl$hR?v4o9Wl>2Rd5*dG}HKBZ$>fb>IrIaoX8egml zutj4@j>Z!6Tqp{l{~=0)a(~;u0}aZ#SQIp-qZ7c#n0>Pu`OCr+N@wj4fyQ^sLH`am zD0T4Su^~dXDCFf6Aaq^4vq9-C{G>^t-1_r}faBMg6w1L|6gH+~*J*4_n-r17LxU2k z|Bpjsdc9OlT4r`#{Sevhz;R)RNZF)zpxO04H-mWEZoa zLPk7^v#koNCi&6+O#;c1#*h}9%TLJ+N=4#pnTH5+B1@#}|FjG9$zY|MQM)ylbh1g$E{PyRVQ-*F!28HNf zQ2h3w_@6}9^X})t4=qkOp-4d6kk$;f1{7z_6u_;7vq-kd$)w z{E|U|`0G>r_C5v0-ijq-VhKBlD1_p#OYy5*3X092OUA_Fw}<>8koZ5mMj%75wYDMs zzqCs5UBdp~vAz^gUbIk=ch$`8t@%~<_q!qdLsC88J=gCA4PY3)ZwfrHd_>I*C_(PCEVeEe&bwTznX1|(< zycJ>bu=q|kelnb+TtEK{jKwb|QJ`^At|#zX;r|2|lnYzGEiC^3i0KyMIlUD~SIZi$ zGyS#piUho~6LH=?RB~RCd|L@a)Uzepn&YsVE?9ySfxPoo0fQsXd`abxYJA;RG{;9n z3-}&G;_MbMGTCgw_chfquH?Epw(i(}_{H+#M3S7X1Nxw(r~vTwQoxV6;9SX9_T&vs zGo?0?aQK&l7uW7zl`F%PA@QsS~v^|tATL<2H-0# zxkEqN#WuT5Pm*FkG`Tv?_FEovY=H8)+LRk>7b5$Qm{_pCb2IrB5xNA7Bhd*%z&cvE z{SXx2RQme#;!eP`Xc6$1&K6jLq_id891GEsQ-I)X%?TI+uqBv$G@!WPH?`(b1L#y& zM=RM9NqB9zbMe zAqW`o&5XS27z;o`@I;#(WW;<=`t=cJ_>*UErk;fj#?cyUDJeKdI9Kpvl7lu_M@gVv zVJHj%g^B3Gh0!o18UcgCMA0)sK<>bFtsgV7btIB7juu#DIZ0qp1#E3C(Zc3PAz`eA z5ELP7frJWS#Dt(2D>w>jWo3y)U_^y2EHT1!y_`q><2EoBBwM_rBoX6+wVWfIEu$ow z!R3!Z{)f&U0;LNFrcM-%gfDgW%#ju_6iiGMiV?CDg9-^*i9j*JBIZzG3n42D;0yQ= zNOM4W&w%cCn7vt`Sl}H214R0-0QxFXfMx(towsvu$W&9W8CiUVtnPLnKN%5%72`G~f`- z@u0Z>9lhL){!<|P6y(qf(85G4`E@18SeAQ7vhdz^xV!2&jR#co0*%ud6P45 z4rXUw`TJPspUKS(xaN`1Yk20~Jitynk>r^ICg+PQiAEtXB1kI~3<|fj#6aP25izJa zMg#*D6&1l)3SosY2=kc@4S*EPV>YiL+phs9T8D%oker=>0NTnHhn3VK=VinN|3i%* z@R@!KZ?3s-8Bn~SCob0`!3B^`1-U!+cQ54aMJ@q19Dsn7eJ81Om?h9U%j z_kO>!nOAQfAFQjb)l3UIP8f^nSA{8yC~Irkx?*vLK;oCIl>jM5k})w&M0saHN`tSI zqGaj+N;&V&Eal9Y%3+DqU?Dd~zA;m(EvF#40)lq?L+}jcB(Ld^CE4zbf8Rxdbl z5oHyk5K#izi5uG)23GO`D?ym4<^5r*#UW+#A2>_+>h`P)<`z<+PM}LXcrikIxmmL6 z)At)^dn^~=V_dlhlczl_u6a@lMXzLUj|#D_<&mN$e_FQtzLAd3ynH^OY#sfWOhNnj z%k`l`GSm0Wz~p-@spa&n5USZvqA~TVLc3cIhR82v{`4?9WX^%kxdy|f`dH1F_3k*7 zoSl6#5Ivikk973?M9;cU48v%5l8g%(2D5fE8Mx* z^()*s4_BGh--g!WvYW3@bzM!1E-x#)XUg?jG(g6`Rj)K8b`ZWUq{P#N@lmVnF4DxX zb`uHBub-MJ;^5vdRrK_EaM8INeX*tW^z|AA&3C3iG1C2dTG?s`af3{or&AfxsEQlCEDmj2Yb{f>ctz9hO}*J7;@DsishXIYk$!f2 z0VJh8CVH(HMD7)7`SwAgs;6A(S=RRMlPu?Yj2vcnHp?AsgTFjbK17L9Ga^o~+ zpC*QL7JEz#X>zl@BEw$iooYVV?4^0Q@v3LGI*~`~BrtI&U0qLrC%9q6cD36UMNilb z%E0>S=JNLYDtlio%fUI;A zG|)}iKgfFXmSf{an{c#vL$?r$VaL6VMI2-LpVA%dOG)USELx&KN-3|gpP2sU?Wx{2 z?;yTf^iCQEi8+P_606z9Pd0L3Y3PyyohORQl9lry&`$b&!9~^Oszb@y*{Lx)*D5jS zkptZIWo3{(fsVUIZ)IkJHy%a_JL-Gi=1|ddc4n9O_|)^Vp5ZBH*+T(w((#S;>vN-a zrnl3<=#p=5!v+9Y-On6-98;`mZqR>VIMldbCXQ=bZgx@8VDh;Wq*)=pbSzqV7N$iL z83WM$Ia&-A@5$2QTL$o0$$(nPMa2q>E_f3eX}G(nyULAbT!}0McE^BG+-R?*7X(%+ z*hDoPy!i;>_nzkR zIM9(PRw;_Xa)ezM7PBO&Q>O zrgGzO!WDW5_bnBg+xSfW9Yz=X?%5B-oPbW@ja7AE-Qah%5dy1w6!MaWn|Y|8MdP*Y z%c9P1^WljLxPSk|7S5PYyR`P4X4Bp!D{}HYBPXW2sZ3(u>R0^Xhgid`#4}4a^Oro< zY9v~e`cI6~9oy~Wo~yBeGr?c(Ds}zmVE^}6chTXsTkfWI8u%)Is@At>Dn2S6c4bhn z7w2@nH5gMLiSZVBq_s`BI6_cv^`^W~gfFbQb5FZmv+@OV>SVp^+O@6q{HVhiM9Q1h zd>3BQU3nX*cIBXa0yZcm`5KZ zRv$3$}^CpKsB?Hv?!G3kwq;hwb-H;XFL2pJf{$@)jcg)5b8#0CGw*b3eNx6*4R)**m-TuI zrz5JTAf!15Yt|TfpskHH#5u-g?uno7t_$SIP9{C&rrXpA+OHor_z7IFFUd<}1a(cC zx_s*eukE9Ek~)=ZOYt$8>p6V!;9fAnR$V05I&C+jZL2(d%D1CDKYHO~cR-(8ab%ucZ< zXtl!DlX~8WY9yyJl36GfFaUz!$h#*Huu6kq*lry2>9H(Fd7P0`{v`pS;!_~{9IgV$ zv$fmEja1V4dN;b8$=qvK(QRbq)dW<08d=5Lm)vaP(Fy{mQfZ11`+T~as<06xU2wcHsn38Ua}J99=o zC5~1T3tfbD{fm;b=ryBKQX|@ot5%6}=w6edKCxA6#Pa%yt%^lJ_qpUj*S6)BC1+i| zQXzPE+y25#wm?)xdcf#ioSd_hM zi|RhILI{`A*RSUIc-L8Qe?=TqpoGX4M7j#;DJ?bI)Z6{Lw}`%!!vf>7_iy^I;RmoLMqO=*$U8%jNk|Plc8m`1p&NOlyA(CH){f}kg>b38bY^%Zw;k>U{U0t3Pfbnjx9{nV)#&x( zND4H-$zhK*zYb!0gcA~WR0Ktq<#wp<7<`0VPIBDkm%pl5ch#DZ0>&)&bvu;2ISi!DjU+uZLv@-n-Q|Ll1yshAyNBMV{Q+RCy{*Dfd9v%LG2=Hfd^SSsw|Eb46te zFVH8tRb1D4&U4b%99pit>_G_L=EGsbcRjpgYigL!v>GUxC+pj& zomw&Ai}C<{xt*Z9Dj>5Pe8Kshnn};(+#JBW1S6u(@^S7)j2t_k#-cTOEnnjO-F!wA zfP)5BGtFot?FeA9=|T!LSsscXrLQ~EwKBr4aLiL&I!FcjoL(2;X}9a<&0pM$5)5Dk`f?iR ziypm1Hz2NT(ozhn=8{!eCb80*d-%@us<@Ry6a0D7cRv^@Qh6GYBfM#K*P-A5T2t}X zV{O;BzIC~CnKe#k0LfP8$-I8FS-s#9eTs(hZsE(_GId*6BF^;m_j{LYvCovDE{7CU zohY~2?yd}AEl^6hetau1*;Bt_g>Z+Q>AX zPqVk%h!#2B-OY0Goqv4%mFJs;Q<@y?FWr2xFVG<@FwAG-+JgtntN0UN9(0uquNm1^ zTFkMQMXpq8{M@k%Z2Wpy8)c*NkfRrY{Y7|*TaL!11LC=wDAsp!7rLdRcRnm^SodHx z4<9g!a{eH_t#Kjo;(}eAAD(nPGEPhg+P|;jW^Jx>$;Qj)##nh6V@;BJPd{Mc+0UKe zr7rv6NeG?p6z#^e3mv>+KJtwZIt*Stc^$d6GF#4@efKjfkGmgQ_G;yef{K~qO+*zw z>zbA1@zsQ`073zkkU_)Ivk^SL#q_!obT@HsPo9@%-aT8x^5$wP!EtX!%fkeRqH_j1 z4_fRy@?)k-w?(KRA#Xq9S=Iv(I{RN^;rgYH;Z3OyQe} z%t3}t57H(c7PLGIIpJrc?sh;WTxya=rkYX{x3)*6 z`i@7|&8VD#Q%2e}PsJkH;7>N^%1}RM$rC4g_`W;JThSwlM!MJ2 z@O=s?pL%w>XXI`-eNBzpC3);PjOYR4I|-w5OkYT!RH7J>swK ziZ#5!i`tFb$-HUj4z`!_tE3%eRvg!P*(Ed@yy}Qp2&eB6Ky#>HzTW`|8A@L2dZZk? z^YJ2;ye$t-nmAvDYA-j>?u%XJ%ctqHe#0v1xY*||__$YwCP1J8SY!WmsrN5M0V|e8 zuPeIqHf!?M=8l7#b%nip-Q3usVBj;wuxzNVZdIrlCEFW`_3>N-SuUMB1r#5j6M+N#+ar)Y@6vX+}QLW96 zw@p%jZZ0ZWpMe{$*GKI<@~kuNrJz|;rAN4l%yMYm{j?bO#McF++zzfCt%?td_~VBl z91k2x#!qkoYUj@ey{ci`wIUDynOSdOJ#|U&a?FkU%QcUN`=o(0@$LDM8WzCdanQXL zQLRl^qEqa@F7TPD7y7Zv z^2Vfc$x)QgxfhmRBW(?L0pnv3zJvWn?H%thLS@`>kp%5)4_Z3tTU=6FpIl-t>kSzq zzK;$FDqbxLhv+(Y1wHGbb2lyYK5dut{vL}fMrWwuP{3N!{UBvpzv_^d2e?=vbOIyV zo@E?uwy~ojM;ZELJ%%}YOxpX-T_fSr8lUxitwK!8=*`B=KW-0W@c=fAfcl4jei z<1y05lC!%ow_}jo<(=0CQJZyUT)r<}yfBoNeZ@g%XU&zf#}~7cBT8)e7$c_U);%rW zy8%AQ&2r6Ms{uqDpzfvTe-U6k?WyxpOGrrI3phtw03D&l4Hn&=qOkE~)tB5(@Hzm& zvo?MvI|Nh$ymKYl8ykV4o%xgl-u%veee!rR%b85hVR9&ItE30m=b19dK7dR z_(&TZ7vf0%us;rVwK5o!z;w;DUr7f% zE$U@>3eA^JW&&g(dLHFQU)tZu38ZNjGf2!~k$1=)y0FGKG&Iy=#d3IccAw{t+cNQH zMdt91geVhN%ht!ow_;UmU!z#*PWVU}A|4JJMC=CFIBpe1(D73RMJYj4z$c#)8F|+X z?)EK(hPFnKjOj2t&fF$4iEi;b7_o-2%N)o7G4OWl?r77x&Gq`wCF~JA7SR|#7N_Fu zwb9!-_xY`kZ(6e&fm!OGK@?;gNxhhVAjkVmEC*Wm(3d?z%rl<6v{g zD?!+#Xt(?6@lQvsA~IGuc;Bf=r-Wgy4q8@U`iEfB}7Uw$;<8a zaJeXWO}9f#dtcNgc4*!a;X)5bkruCOIrfKMy*rb?aYTHX8g1j)$}4^=CQh~>?^&+$D>v!RA8J>3aY#_D(2RN|8o z$aODb)edRd50l}OEicB?H$mMz0Y7Dpqvz-5<0LF%kask{uQ%mD?AWT~2$mefE&g{` zSP4}=V{vA8ONdQ zO;@g+Dhhs=9;iW;QLV?|)++ZtAxpM&M|s-zur#!7SGIo-7Y!}#N@nk;S%n(+*N=~n z8;?Y*WrmDad^nQ!{E$G?@Eh)?)oC8({u-)Wd$g$b*wCVd@d}trRMC#{uBMLnTcO4h zTT3C&R-(GYeK6p|!GeLR;~ocAJ~$cWUOr^1*gdsh&$KwGrG3L#`tp3WOfO>W;q1`Q zYR|KH6C`!Og1+!`yAMg?dTJFJsE3MDA}d-E{T|r9t@U;FccwfW^uj-vU-Dkjd(aKK zY+#v@N_~ZguXMD2cO^H~CAwfu{gxMo(VBtr@lQCO0+~2|?jDKFKvl=(K@v^N zg_S&7%fMw7lc}3`DdaO-?lt>NOy9lx2|}gTidpX{W7-KRFrAr9V$^N3Q+9!-vFiij zx9qgzCGQoacjp2wV0Kigl`RlAT*w8dn%vD9IwzeIt|lPH?vln(m~9lZs<7eYMRs~N zrIy~CQ7;~)JrdrsKW3M3+A~_6y~qqrSy_R1A2EBAH?Q30i{8o{V%W@hrTc}5Uq(+8 zpFeCgg;yEyG=hs1E3`W=%kb_AI@*5vbo!?DtskrTMD|2)y|EJr2@2>v*Hj2ZellD^ z$a2QWOxk+a4V#BZN3XZ56;M}WGE%*2 z-W?%OyaF@K%eZZD@QQ??JrLU=;ePJ~PnGI*to2XtcCx<4qXqW`JiD7t+-}y70=Ka_ zvDb%_)~=2n{2&yv=>t1H>9sur)2$VmZ5*$odhL(+cGwS98Equ0gOt@q4?x*tTjG=y ziI=vt2L%oBZLewau1Ts?xU0Ra5}3Qhb-q%8OuI8|%1@T28r^bH&9ZCLx$W^f@La(4 z<&w248&-LD;pHJ$s5hkLG1}d^WF=0D8cya(;48oUN%CDpkImJ%Ry+HRPX^yffd-C` zXV7&RPE z8)l`1NcNDtVqHJ!dtr}V8}^JVn+)7~%~!KazEANCkO9~ma3kxecz=#Rt@mV)>1Q_q z>+R+lIaeV&IZFEqqDq3^Z_SfVc2c!Wj~ZY5;DO6(VdqgHG;7H5nwm9Jd-Di8uFHa? zKQVNXN*|!nSv&Y0jcya#;I1|Ux}eP-L+#Cn&mOtAe-n(3Uop5^xj>2f#r9>S9+`%e z{NA>0>n~`Us2`$wkiGknRl!-`Bh_#2b{)^~E|2*j00q{a*aJgd&N;nbHCXTN;juyL zw%J~F7Th|shwltg8xn7@9OJlcTY;AhyDHN8>4w`7^3ckaMcv)YcMNptYlbtH3j?Oy zmb#|K1wZUUiik|=?7kl(EJ3uAUw2GlG(H$CYz@ddnUN9?8A0C6Hg1>Fh~}vQjEQ`pVp&iVP))3!L^; zQ{2AFkOqU%vf9AYvYIMoEabK75SIjT(5{4#nLQ=7Vf*W-cG}@$_`XlzXG}KvxP6yA?j?{wZqH8gqyU_IE1w7PmKF4`~I(qUFbvGLAfj@WIs%#|< zh6Y7r%;`G_e)y;j>!RFJ{pM3uvOZIz$3W6%QIFD8e#f{Yx)B72+es(F?H_*#A#!T~ zIV-B0^v@g|ImWJP3kZvh9%85-g>Kb(ZojH9N%=hXln;%sE}t{_;b#?D`RAjzz4mj| zj^H;O>K{C`n&1FExMS1WjKj8YbVn{v1J=mH7GcLAWl$~#(6Eu0XezLfx+>XvBeD8pbmbk(3Djpre~`P& zkhEK_T@_!is9C?to@eE;!-kAUWl#4>9`#YVRb+B|!eltm7+!wxt{!n;$cJ$Ch?qf7 z=38o6?`(S_hJ5oZnb)!H+qjMDGhL0#1iL{@0w&{-YtDh^x*t6y^VfA$PQa>Zvv=OE z%yJ6$qq`jL{$Ss+pd!KT8QV_pbJqzrOl0G3fPY@w-#jlYAjPCf;r(_hj&K`KcldR?kKsAK%Bryp4)P1CHY3)_3)io&yth9g z3PY<}TsRsDHTqzZ@B(!S)tMy6)x zS1Hzs;~m=9QlGn~i9FB`+bzDoihk46`g>0-bML)YsZ->vJTRcP&8T31DiIzrmUE?x zrszl`-MKaH412X-(QNjLn7jjoR>^cNj1QSg6*f1jSZ+AHS0*f%oB+oej7R0Pyt7|;Ik00qgF~S>D0PBkzyOFcm^x2l67;D$`p?<(bR;FKP zWMX=x^@xdjjQ#G)zGJjgpVs;9un+F^%({yEk!&FL+#_Y@};k-nwm zHS6X9W}nG>xa^LME>fAtFsvW7Z}l)|^EK+YE}UMMxMRd~Xi{%{ycOzR&nU;FDD9A9 zCY#63AUhsrdTKiFY~Awm@)qlk^tYW6%QowmW$;uD(>KPY)ZeIWqTMSUx>}#gz=qa8 zy-e#SgtcsYy6b_fpW4!@9{6AA+tsGxcdY+ywO)zJPJU~V-ktzz8b+rEV(I33hkCIR z`;RT})p-aKb;*(=Kp-%|SyovogswdM+^TBgZrhXr)V7UD@ZQA5c2d~M519f8x{5-1 z3@crfl(>LE<<9q6@$m}JKJt03ViZo^Z+PeV2L6NqDf!95RqpJUBUWxr8v$~HPSw&t&6`q>6EMXI_%*1sTbutI7CvilJpZ}UubM7*U@k+9{Cu}Hc_qfV#5dmSffI-b-uE{%NTU=*1(-s z!Ljpz|MCe8+xhX}yEg%5;wKK8A*Q_U*SJ`pmX6+~5y9nKMsKz&RA5a~RwIqx^3$7- zvZv9tdo>78HS`@)GeIGYAIW`=iP`j`sK^0Lur#7>fM?rD7jo%T8blZN;# zZJnb0EjRcY<#ui>9d=Z03SN6{%V4S|uwY5GoBqPBZtn&Uy>Z*szKsZxOElh*hR@dd zr=v}*< zPqw;4kGcb)p8%bi0qd!bwk^iNxh!3&A7F2DPOU0@to&{_J)0be>fu#V!~L{})@3&n zw$ z?hhPXn*2$~u`(VyDYP0T1bG;(IZ+qF7u)pX) z{&D5IyA?${u}`}5 zsqz{xZD{jC?s`;a;_>`O$Mcx0e%jnjRUrYTLn}PvO4?;(wS7f0%!8n>!E zPtlXx4(0{Q`Xq$=NQ28_uoJ}(=yNnQ6SRl6-xdC}!@aN4JV^1F%gGm~xtVMH!q@Wa z@sw?{!WA8MsLvhejI`L$)$=~bnUk-@u9|7sacWb0(1)`I7#hsB>=j-~s?HR)E{ zVcxwQ#0P##7uneSJWWUiIT?AIefP!&Dqna^H#|Ii*Y`rL`e0|@`yBDo%5EebG7Hw|NHnPaKF21@b9ss-V1j zI|IVF5Os5r_l<)Z#OJ{ks|t_V(4hAWfZ2;oXlT3z?=UUrZ_hAhR*{xm=O@*>GS^7> zqk*_OpmxUO%o=mEj9?wfHGVNHV4KIK8Cd4_icP+NpULkVuyTD8{jDh1DiNsx|IVko z%0as`_dn@aecq?AWS`0!U{wSb3UVnjV7ST=+sUSfGR+`VzBDh4Z9TOK_-Fw?7ZFwwp?8HZ?~Nv{^D$r`_v84F^Kcct)lHcH*KE zD9^+$wZq6F|1;f#@aCg355}IoLzRW=3>K2VUwYX z@=Y$CVL9zqSrH4cXbx_BbLR%h24ltjYML z^qr$yqkBdq8SZT?+jQmS-u>6(Ee`Vz1{nuE4BHZjJY;)VmgEOM%Iw5``_dEJxU*8A zk2rkjBlAtjGx;6cVgWGv!!E^G@9PLvXs#%)Fku++D}_rX=Ih^s6|qG1xcjzrs(=}p zdb+!wY(KR*jGNg*N|E-)dZ=;kaI*cYlq35&1RCz{=9GJYq_Z2XNI^bQhOD8^hHlhP z-EX`5Q|BcmzD-RTrIO<@>muKGdpq?9-E0 zXRHq_sqAcls&$;{sEfrU zE_d)0w&KdwGzW)sjccy-04q9RuOrPE(|Tlo-odpVt)78E*2DUOkRr7sJr8TZ5M)=y z^$88J1GL@@yWG*AUfLZ(4+mZ^4DYBWWtQK(8hKbzfKJExnPu)FKa6r#LCdz0v$XWl za-a%kMrpw@&Z=m?5W;AaeVR0*2l!oJ%fkuKg_k_^IgksEHo3AV9^8)2dmP|kDi>b( znvrc|B|K1`X8RRw;}do6w&s(tXXA(7VQ)FU5tH2R>%QFw(#x<)nP#drjYAAcmt3T0 zeJ)u8a;6u(QiDCQBltAh{4clG!JmbC{slnw1szEfAK-i))^D3-OXU_h2XbU7d{ zmE#mTzfrkibR zQ+0LFTD>>gmtrp>0Tw7lAcguIwS(UhO*JfFyWLuT;N|tIq^O8D8cbNzqfP12v=SD& z%)?EL*15+I1cw57i%N2%sOrlp;ZMQL(a!=8*}XXN;=O{be`m#>clyHB%RF*bD@GLs zUf-M?;r6swq9ri8Ka5*(&oWX8$WSwplh3mJH$xvY7r@TdHLD?^0jK->`#G9dLx*$C zLM!=sb(fp(qt#RKR#Ck#g*nX#&I{)|6#f1PAHze%C_s*j$ysL_X2DZF=fUZf9s#Km zYOJ3_Q$w2v>EtTQV*B5-WI<0EZB2(0=skt&^EQlB$F&CL^~pBt?4>ihqgJVIROAp7 zc~Uk!)mWfi+pZ^K5c4MM>Ur;t*(1IDE>I}6PI9?n*b(Q!p^wkbARi=Nz3E_d(?!ht zRYmqtU0bVHOHKAL>9aX=yLC_bI{FBR&#~U9*AG6$v2r~Um?U-Zyf=?3+!giwgE&pI zNLQo*Z*WY*3kLtmWkP)ejb-6XTVD%xhfUyQtP^-ARD|qbT{S=OOeFU8{U`YxBtE_S zao0RLH%ec~zm*zl^iho1p4jIjRPop#NEn6MA<<|NnJR;7dtVzn`l%<|MIt`PSUNNG zpb#oA-Z)f`9(y>$E%j4_-AA+fSN9DHE?+rovn9TvAT#eGHGL(7iZd3YM!2_O%PXp3 zgPbRl(3lKcd>#9mLGuZ}B5}bzE;fw!LEh>|!EaaQup}REFWKhxXnpU&1Is27PC|=l z3EfR7E#5UUo31>Pn+!Rz=g`WDhGlI`njPHTlAl^%9SFP?*yvJ|(NgQWe`56nv3MlA z7ssvY^;&#g_IZmo37W{7a~CGYZLi+NJ@)9zzu;8KNS3)D_O|i6 zwA9lb(q*lPP1UqHKfXtUyO`}|6@w9nv-*X&w043~v3LK~Pl4!EY2)((`la;Zw?;-s z^<$ofBo^(y=vCE`1IyA_Z8|V$Bu@L@RPAp22e)!TKVT_Fi+*D%$^I~bhj|4RrjhuO zW!G5#s^!8fIj0vS=+1(Ixc#@Ok$2wBezeG|A6#0lN9PtFe87I&fF%-}!c1U$(_A%q zU}b@yI^gQeVg&g�FTk@cUO;X$jFiFi}AI3q*fVmOAf)E3b~9Tl{HOui^x_tkxDEFnD!J=E>&3F=dhNSf2=U ynx?RO*NLlABM_FD&E>*_N@Bah4^xfG2 literal 0 HcmV?d00001 diff --git a/resources/enterprise/customer-directory.mdx b/resources/enterprise/customer-directory.mdx index 965a762..b4c1a44 100644 --- a/resources/enterprise/customer-directory.mdx +++ b/resources/enterprise/customer-directory.mdx @@ -679,6 +679,11 @@ Here's the modified version of your code with all images removed from the LogoCa href="http://www.scop.sa" /> + + From 73ab077b231d1478f350ab219eaf605d22e6666a Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Mon, 30 Jun 2025 12:27:36 -0700 Subject: [PATCH 02/34] Remove automated doc updates --- .github/workflows/update-docs.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 406f864..79f1b7c 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -2,8 +2,6 @@ name: Update Documentation on: workflow_dispatch: - schedule: - - cron: '0 20 * * *' jobs: update-docs: From 3a94190d5ec0e2feec4a816ffc56215c0549c780 Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Mon, 30 Jun 2025 13:14:41 -0700 Subject: [PATCH 03/34] Documentation edits made through Mintlify web editor --- snippets/logo_card.mdx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/snippets/logo_card.mdx b/snippets/logo_card.mdx index 2fca886..706fa7c 100644 --- a/snippets/logo_card.mdx +++ b/snippets/logo_card.mdx @@ -1,11 +1,14 @@ -export const LogoCard = ({ img, href, title, description }) => { +export const LogoCard = ({ img, href, title, description, backgroundColor = 'white' }) => { return (
-
+
{`${title} Date: Mon, 30 Jun 2025 13:20:53 -0700 Subject: [PATCH 04/34] Documentation edits made through Mintlify web editor --- images/o1-logo.png | Bin 21429 -> 0 bytes resources/enterprise/customer-directory.mdx | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 images/o1-logo.png diff --git a/images/o1-logo.png b/images/o1-logo.png deleted file mode 100644 index 6e8464f086abc5303558ccdc6a647af2bb753c4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21429 zcmeEtV|Sfh7jDyN$F^-djqRqf+t{|#*tVTCb{gAu8hgh!&(8CnkLM?x4|}Y!?{QTBsIpEd1Z}Yk1v(v@K zddc^P=ZnV0jhE8URAdnVNla|i=Kz=M2O2aXAOn#_hDoW3K?9~R7)c;<9RLdn0WhT)un8ENK7E z-%F46|GD^{Dk>q3<hW5klua`Rm(ik8H1l6t9lI+{--;QuHNm!zv~p)s>-3l+@6*Jf}tCLiaBO{U*(4 z^40J5PenwJCQoAz0^~;gAcKw_I33uveD7l#-W5DpyrgYf)Cub#9zJwOCo#Ve6^pKT z@HpF=u|gcX*l;IddMU|~LD57x09k#6`yiM1g#w>|yG6Ky!q9C#>Q0D0{J z;=Q*snX_I5#@%#5Bf;YddaUZFuVd!N&RwdW%LCj9qn~WjPN#3F>lUT`oC@M%mkx^- z97xvfZN1hK{_mSfDG9pczC2nu<535S{H5bVSr%}H4nFVVM4-O)8rHulHdb)D{5i}c z0*W&9B`|*0l@yZ?a)bO3-EH5+!wV=zS95z7M`(p~!<<=xmp1@Yb7RGGoCC2?vE@hGLwXEX$jN50U2C*NP=UsE!S(Qxf$f*b9H@EQm zm0+N#SeJ@_K~m(Z8kjCZ##*aiMGqOU(WW-&FD0LsSceRc=J5XC5>Pv;HHINV0z0qm z5?pTd{^{r{@gXC5<0Ln?w$(u|9{+b!_aB*71e~AoG<$`!K!%D%H04~QssbeMCmXyh zH2C0}MZZrgfLB-`47*v(;fmiI0ROYY;!db4M_FCaidTyTuaZfsFY{q2{%P07f2FWT zMQx`UD3zS1z#Z|l4*XJVG#vq9bb!SL);oB^O6bq|!vmBTYEUU0*(K9D^B{l*&Ldkay4`KS_k5Xyd#Z%nax060^@-!GvC3k_VB zSP+xJFS|{}Eg=~BBdthY5q%-VMAqhz1n~`A^F-)#y+~gnut~B-;Ig z?W7LgB194U6RstQj2QltcRVnbw4FR2jpi9&(>k!l6P|YcmVz6BDH8K^5M}U-_=BR# zk#_|oNa$;y+@Os48+<6`WT%dL2!2eWml+SWFd?jUY~6TIqOy&qx0l_7o8V7%OAMCs zhFu!7zrmi^n}+FW9!YByezU4zSNl7u$h#N-y2ZWU>k@&>SVN{3dV!n9fZ#CByQy`X z`hSxa<2y^+ zBd=bN=$pI6em4&WYvbGL-k)6Kq_n%XRS7qrxS)kn;F(5! z&+=pUWbX&p8bF^8ZimVD6L0T z;PLQ=a$RZ$0C9l;gVOtxhh5V!3ckk#bCq=8cc&!Ii`eN(ZB?=FZ28 z@tJI(0LI81<1;RQef7PAl;~xCb${li7N@52HX7p()CNQ`OaFNdkMlFM?_tz+U`(5; z&Bp$>=hpV#L;1Ew&NC_4z;8&}Y49J5*P#mJecA@PyN}k#50wi@dqlaR(4rcaAOy7M zfBp3Hf#CYqlpn}UX&58Cq{+T#_B!Uk)?XCqmolyPSPqJZ%!_?!`;;_axD^#ArW8Dm z{07id>}<45_JfJ=`e2#8m2IQ&@*Z+t60AsI`(w%e zNRCIyFTqkdAyeB@n#$a53bz*XTi2BNdq}gh-SUsR+-{ULZNGpupkF z9TJ5o2Qex7cU~1SZgg~?rQ>b<$W*vu}jX5*6gLBe)IyZ43& z85j%KJLJ29@l->l!%JVFSQvTx6x_pA+E9}ad?|)i5=ti?Qj#|4a~dFczIQ#{j)qmL z5zRvIPuY?-`-&w%PB1)bfM?3vrw;1VH~`5IAc9tNNwQ)#AU7R`?!5C8O^-y!%xnSLjSk73f9hC-*7T^gcZZgl0 z4FjZZN5Md5ci8w;6ZPNP=9(<)M(ElVjmRj>?}aU-?^P;XIJ?Kffu-H0m&2xJ*`kR@ zBFZhL#zc<*7N~(K?H6nJd;8P6^=nsAYJ!tbo6O&GN9fQ(qM|c*TwBA_MgzzMk^O*# zaYS+i8fn3}52S-)R<7;U!$)gW6k?`712m2={eL+|&9VsAGh`IC42s4r*RA7mtGU zm!mSdKGlnA+`T1+{VV9tgsO!D-@TyH`i$WOvOaypQh=3JcNv_AbgZ2%&`htZI7NB# z%?_WS-wxt*| z_r?9OF$!b0dSG0KcbTfFe`)cF<#ffnd(cogBi|0M;p;1X(uhi-{bOkm$Lx{~ zvW%Ni^~PGYm-I&XLVat{iN+KOvSpmGTzXJO2sOulf98hRh`>c3l`@W>V73sxGK)(k z5BW-Uo4kg8c|FzEo3p#4WtWdGd{hMS^qM@dW4}JMzY1K_kp^(LW>XIseghuqy7s3UL=I-CJMO??}zb!BreIf@PVv9-9Uz%f{LD@g*7Z-o&ZI~2|jkjNw zcyRi=!!g0c(IOQ*K}4lp4&5wa%b(+6^dmqrDhRgYAQzpg5*rbGzJfjd>UQ%+v8T`( z*XClpP#23P0|7;o=qP+iU&Ry5atg=Ak-SxnYnWbC)$Xf%CyzuwadxmjrGE>dKH~o- zfv#2F5$K~rVpmucVXGb6LX{es)|4V zQpU=~>tl)2%IeBnv#UDN)&EbVF^e?L5tQ49#YN^)%O6UwH>4EDO_DvxR=GCTH9WIe zZ*5pd+#M%wfZG@gee-^)clxZ=KTjZT&%gXzGtU@)g^2tQl<1(d0(I(kdF&0~Y^~FM zw?&AF8ND9?Yq6|~wrzI+9Q@UjuFVLApD4Jd0usBa${^d)mB@ge5MOd;&N6s zK7v;q68WcPz?zM(KYQ3xAV-+}G36`&=Nsgm$H*;2P(BmxrfZxs9wHZJk3+pHbkGWb zBOhHouy%S%;+DzmavJfD{?H%*Au}uhzE#RDzY+#%e<9m84f&~x$)9nUyicc3=R@8UV<@5mQ!`0MDchM=kpjP z<4$CDUUI22N(H^(Cr%?irhbPY!V4wBTc;KMjNgEN6k7)l!{ARHLJLh|e5y9E!>#?G z3JVVRsMA&13CIv;Pe1)GbW6jjU0ITI)%*&Z7ZJVS*uC+CyD?u@Mvx0r1&KH1g<7mF z+M6+mEcPY{WNnZ;rh3;R?k|&QV9@!L1wDP;I-!2*zbN>E8cWI|*KJg%rOFo>yHaeY3?fq1Pmh@Qv|Q4;@HD2I?2|I53-+7I!%q~1?I_}nzk5!{(I9W=H{ zDojfCXZ!Nh6J5Ia4tc^3p3MHVPUS6IsgXi)$^_Ru>uLBXa7ZKO8}Yc4y5MBLz3%CJ z=7pZede=3ksh9kcVN2gv=s_`OdbzZlV=yxqlpwNcbtNdM^W-+7BRibXsut4N-O`SR zOI=lT2GZC!hmf_W3ftdZquiUKewomY%}APY88)rbjJmB}ZtISxV`=gQO@mvtP)BR6 zE9rcCm@)RbZI00kzE%SqzEx&V(M1+}9p1QrDfmHU*7^9Cu=X>Chf&YXw^$u9fm1T3 zkslK&}2Z9x2c^Yr)r=B<9Dl=-ql*k*y=@x_VAMk7!S&M`_0(?Ki3VK z?`;l{xJClK&7RDzNV9q62k#4Zgyccl4A#lYBha;qzV!RNd@v})z1$5#i{jZ$vIVoHtn!?vG(!zKtlUF)Ip)0H#&l}v-6%7m zDLt)%*pcsV&{N4J?{B6=8@mr-(oWwTZ1LMtkY2{u=-ipk&o5law)h#8E{gc8-Of!f zAod7JfN+pT#*9BZ=>?x>Q%294H(44GCx9)rKQaOK`VoD}@N%_gwQTtapJ=Tx7Iq-on$3iRwt*Zl z+v>}HN2u4$!+U6KoZ#a`+rG2lt8R9I;PhsKK$yYpJt~%ULi}Ygr_gv&W00PzKtADx z>{$j)7Hphj(APRt*ERbg#tZwBziwhg$%p&_dV@ySTp4*$M5iyqhQnJmRgJwd&PrFN z9<+3Eg;u7d+yt(z*tiS>yfx)m36z0bFn9R@L`7aY(s6V_&tw==g(s7L)}iH%QLW%i z&nY2oK0HoJe)7Chk=ZW0lls;Yq1ckHJQRngT)i+q5W|lSHd(P3DH^3o&8A2oZIImx zfmnz-ROqYjyoUE~?BL2eiWI1hrXAM#B+{)5M?KO%c?9JN=kogu5za3woW8F^&PG)i zZ_|A=2C7>Ufq$jE5HnzY=J^>D=<;v}+Hh_kh2lVP4W2ZfMI!4p^JNdGc<MuIpw z-}mM=Ew^cl6sTZJRmZZCPcw#PK#z}4WOJ*e~oS?@h{XJ`1?IteC$VSS6Ev_xN zBWhwYe6`{32nu1ib-J-kr5vCRk`ynie4q`V{`*%hh-JReRG^I|AeLlUL zwEv*->NWnEkqm&2b8q4DChWOY?aJp((s##NZ}eES=BF{J0H_q->{c8!)z z$O~<&<|%OJxI=CtmzKwunwZZ1q_SD2L+4{Qosg)PnrSwu@){_@vSsvF za1mRd0Yv51xSFnch8USJE?&>3S0Cv}AxL7-u{$E_$L=JS0q!byREE6nh=gYk^zQfr z3BCKG+PsF1Nysi9*F7_`E?Upa0!@`vC>Hf?$h(qnL)R;BV^z_y`S1oVatMcM6@}Ek zipnztAmA0XKG|?G=sq>^x(pND;Kc0fiMmk*GhDSQbAGix?od&HtMFxO7kzDGTE#<_ z%jc>FB9n@WpLF1q1JwjF#tmoKhD{oVM|rfw=Gmu4A}Nn(tz7g)A2N3j>W_aUE1-G4 zdj5#}SCh0nj>YeT^@Kltqk#rHECWxH4$wa1D#l{9w&+Mtm-_VxpfF+Wz55N@XSS@d zWVJ^CgJG?ukQaezTy&0;CscUiPozRB@x##4{uEx;Sug1VaXS+JMVNy%z@>g9zxGJG zmLYThtK`vN&I-+z1;9E)l^-@f-u=Syv9ktZ9$of0nUS3APyh za*(~ps`$lh6&sUwihpvrrW&JZNKAA8Iof^SWVWzIXG*6NCk3Wt(X2e*4Wn!VnE-;%3YxhUWlIhkyBn8$^xv^kNEf3*%4iysI^*BpyqK#<#Dnay;CZC=3 zM#N?klUs?iyf2`-(R(dA_SBz?c!>Tv#GW3FV81%4LQt#F{Z-zv9th00n%5&skkZg4 z8ESoy*;pd2N60yHUp9FhV>a3+EO6RH>Z;(#^{WV$AxGNHnGcyf(0a3e9pEIQthTJn zF&A>wkuv391xK{hqJiJQZn*uHa7Mx+J4M~QRHQUK(H&rG*RCd0csoAQN-C`_qIk!f z^kWjrSnH6!?@~WZYV1L-b**hsLk-5P8tv(Y7y}jR=vm zh=?60F3NT&xeV_vEQP=0YUpi88LGmJz~?FbA>xM{4C7 z(7S*f+VQ|LZ6WuRe0?H3LM7o-crg!X{*7yku>pssE!aT+(RPtaolRW6c`8Swyq$>E z09-;dI)qBD(o{TG;aVJl42hEsLC@eg3E`V$I*agoVA_IAbO_4tZuPs-wUI*=$z3md zHN&oAb{Tc5lF_scH5e>65QIffKe_4b4i?^%!moFTfw}Vr?f&V0++d?7&&s?I@*zL4 z=UO%Nmxx^1;WRxKa&8?AFXl;`_X7Wo){-~J=w4xV`8F}bG9q80Y~8esB|TF&a;Y?K zFER!F6?(Lt>@F>)?S=d^SL4U^)pErC`LawbRcXv6E)ChRg(?KIUj;(fA+CNPsNyT6 z5d}P9U=#V{WeZDEyqQ|4qkd{pFihrfwVAgV*~aOJ{ea`|5G*d4M?rDGDD@*U0ut7C zw^STGm~e>6t>Z&QvxgRqVu)JxPqJGX=AW!olZ=1U!K(NS`@W!mYosEKto)%oh8-7+0cxo6^6+wE7E3ElDDW~w_KC=}NT|SJDZ4tj699GrZfwl7xZIn9ey=jkK zf+5L@Cw+Me(1Zh7cz+)<4+Q?SI@-1kHc|$k(KIQ9rv8!zni&pfd4w)S9DYp_q5L6i zxSwV?YG8-Mulx)!g8Q*yoyjLvgt2Lf2{_|*NrsE^)cYLfYPL`^4`r>XRm(ipR$fOv zqa&sD{_fz6#`8IKmqI6Y%4eu~D@_N+PqEjo7=^dpk-QE^Q$vuUaUyjNz?rRxDQNij zm@`c04DCH&PlTv{b)_y@uExlOAS?OcmRdFtA0-K`)7I+=H)(BG#H`T356FA&a-(1! za5tx6avY_Z4*;sJFIXIHcwM{3BK69XFF48dOp7_vs()vKgVHLtmBhB!0vkYfGDO+H4z#+Sbu|0Q|iS$zi;ohc2xI~Yv_yX8d(QSEOqEe-d^ z|1P~J_jp%ahiuJ3q!ArUB)Z`11PpBB4YdVvv9@VPjZ|nv9`x6?BxKBn#c~1FnBu^S z8oCNR|3ANY#^8m`-Plb38DCHY)jCCXID4cF{S)&4h%`+6?O$0DQu}ImBM}GBZb+2x z)m?WrqeAF8FCMD=W_kCZB~qn@L~{8RrS7PW3`EyyCYV%61W=-+q%acx?BysbTS3R$ z>DP)0JBc7-R<9nO#vQ^m2qfL%KGKITNSuI*Db6lVR+J=&i6<%P{C1ALQMaR-#5j62 zvQ_U)n6jts5a_gHml^MrMJv%B;Wo*gyL)fXBpfw#=V&?d1X6EUBusNCDxY6xal_x< zcVjr4Q{Q|x*{4Zs&yV2)d#7dhCeKQze3TQ0NdhFZtpjYrMmO%3l^wntBa0Ludb;73 zJ6(IuO}3KdWN9q?yeBoVUM6I&40s&G(B>&i1I%cH3f}g4jaGmGrDDIUMBZawED(=Y z{UZOOaDr%pr!}btC&%!iR@|QgxoX4NxlB#^Ph+S?6?S?JzTKt?zg5pt29 ziT9a>Y3#j4`y$~UyCZk$bd+Ui1~9n-(aHNbSbmiQ0+R`~QKD;j@4S#pM0903*j&6u?3UysCYOLOncb@Em8C zm(rh6x1mbR2NHdjD8!kWGgI=Ts#s5Z-$C_b6#933zv@=ekeAg3u*}U0%#PkkRfd72 z-dax31csjiwuF1sdp1$44OsFPhJk3bZ+^XNEFA=CFu=z+HYinb8i>-w0n!PHmIzqn}V%4c2wJ` zgk7C9^Q7YZCb-CYWQ%&8Z9LUMnRK9UUqb)E)y`RP>f&Q-{FZo)$^Q)Tbg1Q8(W-dQ zn#K^Z5i}adikuKSosxQM$lxHf8wb77jTyLMy^Bq4Gh;Xenb%Cku(qwwdAFO9hzMby z&FMlnXs!Wb^SMUrvtRf~95p<`f*)kiya8Cx-qEf?S^1J%dblAJ5~1UG=)^iVt~5MI zpx_Z_zw1-E&-oKkdrk8nxbBA=GC3CZMavG7tNU`JfJZP?J50}Qg%+^buRzH|-y9Zi zuwwmi%nbnoLZR`-V{5lur{hl3!?y88of`@^+QNlClug4dP;W{T^4y-9%f@LI6?@Kmn{C3s) zP%3#Vr1tx39p*&cl>D|IR2BCjWxhwHx58j_T-MuEpm)Womis?q`ja=|YJDmzR*&)q zq#*N7qClbar6gc*hfRCq5lI<(vxCykdIHsIV5LDAvo@yz8@!3xbow*^yX39Qw;e4u zW#b0=`rl8d62AN7F^3N28)?qxFEiAKJ)SEAMIHf91cVO^4L)~9kOES}yn!8AT8EfW zs>CitO{|L#jxff?+y^9Mx(>1O(~yDSjn-AnPb#?+~7^Y%@BkIbe;Mg04!SnSz1_fwk}uCw+y{)=_pl!wlj z?Z3q&Uh$hno&j^t>+V7EB$ z=1%mCK;?duCwU~^l(6>Qql%-16m=;QwT`g;nQnU!9Peu3CN*-j=Wl=Ylk`ziB1%f8 z1Sx8)&9oRV*}}yM!|lZO-5C;ylzUsLPUPy`zH{KeKGp4g)tvGc@FKG7*l9~0ZC%f( zs@LvlKi8u?j-_XsCJqgISbeapbheu+*Q5N{r`U8xPEy_lHG0JR-qm+8k!q3oDqZZi z1GND4?&ZN_oG?x;F2PF#RfZ_X<36u@j)K}7J{SBVlUTtuYK25oB*;3_Q{=m&Jg$m# zPucpnf4NUFI?-Ma^`CgA`jAJxPP+t*qvtD*GH-^7o?CYnGF3cP$ zQ!FvS%%(^;0bzZzriav(RwR-`>+HVMu#Q^D0DLd)Ffw#POZrZ#D4DX3Hc)C0} zM^+;ye5v{AU4U|Z_15co6qQ>%^R|}dmw6ic=-~iSp0HEKcv%P~*U6im>chjI z6ma_mKT@+R^)&`UOn#2PXd8cnTNFhKD;2Gq?P+rM?cN+Z@&l?&9bW^u4&0^x0CQ-$ zI5|3>V`Rf~s#yEv;PgTnNS`8O{+@`@C7Pb1%DY4F-8MCMRF}xI)~6CN*a6VC57*3S zKuPxteRw&z88M{5&UrI*!=R{5VH-l=wuPs$_E)!Cgc6KiSf&xtqE1Q&tN8qrlUH7U z)27CJ?tN_CpGa~zP3lE~6@br;Te{kEb^lIGXd6w9ct6^1e0D#21{OT+l9yzlLd87W zQaYt%wgec;b)sjFv z9tw(7)e;mY&v#JLL*WUZWX87~(XxU>>StvkM9Or7vpx9jUsw?1u{hTtM+L5zhMTbT zPlRTgyAisfq39*L@jPUcU1pT#o_kc8vnR$VwyoBsa@z3H>*oZ{Qv>hHz(u;EW;#^|(?)LBR?YXMzEb7Ml8UQ&$C=`hM0g7EUbrku!>&Z;9zn8oB~JDG$E z5gcrFKlm*stPx=-{rJ9Wjnu$#m2xA0S8Ot_#f|Q4J3#| zH1l0={?Qp}ADVR>j-6*sTC%n~%uk6f%wJ#OmrF^yG##9XkT5?M5 zM8f{SfhHDdZfkY7!nz4lgG(WOt_^NA-&YS(k?3D<{z0kDLIw;rq{i?8Ta6n(&*d4u z+0}MN)K4wu*8?^ZX8sf;NylIxM^0N+%}qd6r7gmZdAebMa=yXB%B)SG80nA|u}$ z9Pd5#a&nGhhCv~l~)0CeyguHJH95ImUxYvq!L+lHJFoh&K4fy z3B@mcyOC*+TLO{PxCtD*0+r%|li*yfk<@`wN_Lmf#f7&%BcdTLwO1|(g~V2zLrfYj z+CdldLX_w}-;55sDk%yUo;V!p8m4p-4n1okxLb{mjGY$dGnFE=xB0V!bici7Zbh|Y zqQ^FxVYUlMo%0V{m6xw-uAn7b@;99#G2KI+cmI(aUa0vykCQW$+L2Pn92mlyKN}+w zqu}blU-L?NJZkL`UuBSHL3OTPX^^kcXj$j(pJ zQdnWP=;#anU4b3VAfO&xU(6Sba0i=s{)W{xCcg~O`eX)w9W(o?+AUU_t;)%m$(Tfb z*t{+NG7vnuzu90g$oD#~f{BSvU07rJrt@r#qz5MA1cl})Vco_omplX;rx!*l4!zVTY3PF@9+f!3` zaj$=XDI~7$#2*uYC8+DdGT;2M5>G>M$jfchi3SWT1&M`PCC)^-qf~s7iC0ebLQkhps0oZar4InoFV`A2zc_Ms-sGu1LOfB)8S zwSNN4B$_aLU?^4lHm`S#Ad^>!G%or&;O4(EVC06JVs7R#dk}4OU#&NhU+L(<&lS$;%I0E?d`LUs!S7Vc1{sgCZq-JK7I#_z4U07-Tw*$pmjrzs0Iaz9WQWw5hvVg_EfNVU(YO?r1FPE`4g<2HiPho+CmYPZM!YKLgHflFHrAS z%|8CRn@L)r>NesJJO^Z>Qp_-kv)7;vHS|Vkv^{8x4yQ8(6Nq?ybPj3LG3&Zo(bu9h zK!G$?Q>A*eF>otE!V*^b%}M(hJRty_As?L3$G)1P7@G;H?1$K7cR~k;4yib{qP9-r z%h4Lrs)^PD;YwIfm~xL|(a~ke)7xW9%FB&V@V$eJK_zK{Qm^CDZ}AD%NCtC%6#XuF zs+zqukVF!LUSs9WybOjXY9d4&{(8r#x0g5D{o?SN!r-y^;PJ%RU+JGQe*Xs*d+)9I zPiGR+L@#FB?g$y6^5QX}!m^oQHvqxC5G$dSN86W2-_Qae?T|}Uvm~)r*+rR2x5Ujb z;;$z{Qnj&lU$df=PaUk~b=ZysD>oZ3T5&{+&9Bx!vYHZ+83S#~O?U40da5Yp_rO1a zX>V*|NQD66QB;G#)xf|s3;HynNM@NB$r?tRC41TSUn4}j<>H5IMQH61y;}Xvv>7PIt8^>*fu3@I!S*sb*p;0h-!6hRvSD8RW-ZDI-^s) zc{sCkp=Uc-9{rTvU_{ElGNg!tVY@TB3BsZz1kIKI^rxSCNq)9_s6)kY@wU*lw?w z@=ez|Y0Wyo$oTnWyqq?+9vz8P!N>D{tlAW9ALF+61sB@-tIeN(Uc^)D@M{@ENCdoYKNbbkL^G>YwH0eaR>MUVPbd&I zPRq1z+b?u%^o?!C9r<@!z3AhCaHKuxX#A}&i~zS697iNL*&pfKQWq_iC2?NF&8;?& z5+`A{le&{`Nd&r<<h*C@9rE!+Ku0!9*CJ5m$z!by98;A$ws5NVhtb|O2e z$d`>qE}dpw$8-n5)hl*%P~I#%RHg9zCOKlH7d%*zmbR@HD^YQ$+?v_+l6 z3iihEr<$VRRpko-^Kn3}jGWlQ)2MiVuu-ic=&>QzSV_Nqk^6WX{Q+dlh;~VYbw7QC z3nm8BNSS86I}$dBaFzwSu4z}$q<-kDD28oKj^Fe)i@EUDM+s~_ys zBo~;ws^gAMP)}JuwjF+C}rkwV|||eP|Ls7VKLLiwaQ8ECa1wXN`5)e zHqu-9eY@OFyf_9sVUL$nA*UWsV>|o z>btWbsRRW4rt+qD3gtm>3ITQT*P)6&_8#-eLP={+1)TOka~>#JV!_QHA<+GX^7%yDAj+me|kn089OoCR}mW+)FJ8 z+%D)5jj_B`s-Yqa$CvbuRm-&Oen*DcAk*81jAh3be0i8iR-X@orZynM6RuDA;u30W zBmOVA6m12ypViAK3Q{HOn!VpU zYoi50g)ap^hnyqF4poih+6N-E|4FGeSv&Gqt_d0Y>-`~8?-_U$syCuJi-*y#M=h(> z60MxZ(r=+mum5EZk-6fE;bE>s>PZ}8Z!4=1sbPARluoREJ8GCjM6LFBa1bJys-$WO z)Qr+7^gERySCL)Uw~x}kRu+e9kcDDD_KIo=JEzT3L>mA{CNncBAsSB74?sDvEhK8& zfR#z&uYP?$6g%uMK~d*F1Y)4FR;b6M=2Svvt=J8+&^;ra2oDq^|qN8fjm8Ny6g? zwwA;#mb{2-5~&ST?dzGuLbfAWFAJUDd-P8ny_Vc}|YJV++2ZMJ_*fzU{lu%{PwAFSG2AD8!gYvK&;y=gq(F+}K@ zZ`xd_$o1>U`s+rB^Vyrk9I)3b&Xbt1E=Uw`ap(*p?Seu$SGs1?&%}rcD|Z^Dq?J5c zhO@-zH<+FHI?C!gT%zVN9X>i5T(iz-m#}m@dLn9P5g#lNZXo7hc_z}pE85f@7Xxl9 z^5)!}*{=z0JezT6=caipW2~DE?8c8XE~E9pL0bZ94}jf^ln9kBa}S-qPshbUlOo`zukVoS*D{_mwaN;i4i#K;>GL zYd}zCjnt_`gxawmyMX0VEA`>R4>|={*x^wlIA;$f=0UiiesD$QP#oI^2Ma%FXDAxxa=!48@#K-hGxYw zxYKp;slb8UK5N4T;oI&Sdo2vEN1X8ME3k#>q3APyx$mT?Z^ycd-8dubV|bh=(JX+9 z1Niz~FB8UV4oOybB3|v55X`Y9L$zo@xdb25TOSF4xc1;6JR&DP6l~c=#%c!%hHJ^T z(=(JQal5yAASfE@qc!nlN%zN*m>=$b4Ug-A;A4b?jY+mAUJmaAMw3+3Um?rsoR|P) zsbTZgH;Opmb1pDB@*Dfq+}<`yo-O_S1paRDJh zbA`7C>sv%W$=}MvALTJYLGY7Nl(Xi zg1t-O)P#v;D|q{QI`6!HmFhN6|J;THO@j zj!R_rFyS;d&AOs2dhwKqxwU@|_wsgMxAvfzo5#d*2y7yni2h%gh#j^(#eQ)h)8`e&B2p%>(ZMDm`%csAf&FKAVU1kmzn})|}GU)jwPBDO3wsu`OCL%%TIcEG6i)X_} zul=ejjHVVS{*6WmujRL7rB~6v4z7DNnnCoS4;8ni4{xFO9e$)B=G$!^q@JW7PjkUa z-_O4Cp{UQWS^<7k$MbH6pgrt=+*&`t{MQC}^}N*O!+uJFokvXi_)B8U3Ey&So&2Gr zwfGvjz-9rPzR=O&n&PKRNo<_9;9K}Olss{T(fTz$cJis?;J+K#u>i%i;XemLJ~zPg z`1m2a3mS-~jQ;vIfyNgHVAyXg6SnLek?hNf>Q33u)4ggt;!GZK?I*eyqZky+t9moL z%w}Q9dxoBhT+3fG!+iVSQyVe~SBFk}+0o3oTTVM@ z=h9}KL41B)gBBUJ@5wE{QE>wno#DSGwb;J1KlW|5Yx_J=>1DcV`~LCU32MYJ?k<{# zN(6?;5L{6;gE~ULV|Qvrbv3J+##a_@x_ozS+)vIwXs$eMy(&LXc#b6q9L*WoP4HfjFsZtV>Q#1t zuS6LOEX^>J58<*5lw@mvQemG-2$jO`E(;tNZ3|2@WN|{Em})-L*5$ z;UL^b0UtIV)BAYdCqQ+)uG$MHKLfl6sz42d zr7^n>zSgDPCHu|YnmQ|)x-7K zCgHTsA0YuV_wLbnHtqJ5Ra^_Z&PT5^(_+mAZ4a@TTR;0JHGU95`2mtT&m zw3QIf>#?GS)*Yk;+*6o8K1-&AZ+ToITf==cX&;xySZ1f$-yU=y?^c=?A2ILC?~47z zkc!WjtDk$YM$1759(X_pFkyxzy+<+Jug|7pGX$>d_>S!uio$jwHVpszWHeh8hivhl zx&tpZ>5$&5Jzb=4QtDUF!-T+Eq8|&tcglAjoOIdCq-qO{D>w8@mX_31$})G6&S8hfPL?OlzeWBa*;3!L3zQopIVOZ43vZH2tA>posC!(i6#}` zTC~Ij^24%Yi&ctvaZkA*9s?^o6zBg>J7?Y21lxvjd_bLJlp+$s*l0mI9NjG;(jgs6 zNHZ8BIAG#{5mGX6?x7_l1}KPw(Ip@)JfO(v?tJ&WU*Y}t{Ra1aALnr%*L_^)`TJZb z4jgWd$t@G?_L6*cO z!5n`&Y^=rAE}=YMXFcN}Py61#4kw97xu|`P|4fv7kZP?YHmD>$#N6$*x62dvG#0g} z>-lz40-PgpadDRL9++1H%!}HHzrZB)Ik>5h#r_q5-Pvkm=+2BZh@rSX}3+`imCTGwQ`n3;v@ngY{u#J zO-bib4ms`@^b@+H?w=%~zoJy`DCaEb8{j#67az}Of9!PO)ZY2B%_8j7Jmqq4P&-}< zmkxqB!IG0st7#5eT)=c&=pj+>22W8uqlg}PMs#y83E+q zh3-A18}iIYUGXT)C8O0IO7zNzijKgnyE935T{2ogUgxl&&e4tUd@BVyMxO3(Ik!L4 zbQqD|YkdYU(BNKT+N>B>ZBL*vrh@gk^X1a7Y|&mfcGsew@hbgQA07GF{ovuI6M6_g z_MzUlUNq{agBoqKR~)IZ{9(h#@T=_kmHa2S30h&G!N3D($ZZ2oRe>#7)%B^1P#dTK zzS)&2fZas3D|(Wqs{Vpl1*cZF*(;y>@v7SyKEC@ot%5wn5ij%%w=b09Oi@bCGysG85ET+ z#(B%u)p1>uy_W}i(ybEqK${qETCCyP#{+7N*?UfZ8V9g`j8UpfijV?E(KYd2iah9& znBAm13z@zBEj#7>wu)sKe_#bty|u}X-1w0eQbZ})cg;mPR`R3``w%kHmX4)QZO3ck z1M*!9tIO7>N%-{F8E~oE^NWNQPO*Ts>+e65`LV9ujr!$wyG?I`&oW5+cVW19*N9^= zki;@ZNh5Bb?_%LTfPcq^za6oVG<1*dGO$c4FGiQOuSBb*rP(ouaZt;1fcNg{v3ikt z-gSUqyZ08)qGpjiSAu`xiiF;#PkIfTvaRnmG2KFX>ZKvqYOavwN^6)Q5a+&gLxl#* z7!Y8hs$0`*(S%wGqzU;5p2Rxni@G?UiWAffdsue>y+} z!&m^(F}G#C+!27E{#fv-wwSt!j;$o|;^`Sr6H>+#n2?O?!nZassDPP~^BQA;FT zB{H{UF<@gwSU*`@izhb*XY%c8``MYT!}SPjp}0o(0A3;4Y#t^((`CG={|4Os`Xjuo zj|#InM^ml!U@Ybq1*F2SE}ml`PUniMN?`ddG?|d;3k+kOHldS5Vn}7*e{t5v{!}pt zdA++4X44x2HbnHrfk%vm$P+zh8kS0^C(}YrcbL#y%Td2%EW@!{JC9)-Ys|Ud|2UCY0c$Z|zxVD&@F5M9JQN@b<2ETPdI>HaiQn06 z*2wcbVcs5T>0j5~)Np03QD;ErvNAJ5eH$e2`LTtp(BSD=4do!Mniw>}`Dox~+T(NweS;{u;PQ=l==m!%{a{c01vc&npeaIu{2{A_>< zGFP_F4a{||;};ZE;AZc)-UMAF;%XXVhoXiOUA*udE-tai%aw20jEG^afh z+;+M9Su`=GX8sOfMzw+8=C>elio=#w2{)TxCO2!PLzXyN%wqnOhgV}m^rJHMIonbd zKBEfG{r-P^@dX9@Ey~LEFe`#E7bnRA5_UUm03~d1BXPBUJTdG7|D$ zzP%+~I}n^HK77mpeiWgtr3AG=yd(rHfiUkBpFm1N**?+YW;*CM>b!=cV#+ZkN^ zVi?XjXG`*b7d~1tQxM{J@Raze8lM-PH2z}{Z1bU zW0RYULNvz;cd`_^O4LfJCGMm$W!ERLJZ0)!YGU%P86U8)fA#`x608HXPW_ah7E6{& zs_p#j@kgWw)P1n=d$Zo}erHiw$}sjAWc&srLuom~d;R`VxG!Dyj&9@YpH+44@3v*a zWSmgS@b6M~Ri(D#-jAM3eR)}7oiVHxtq=d$&DH2qww(v*0z5VyUq~>kF>=1bz*Ww- zqGk@W1R7X);Ow-)P{h+|@X^dEW%8sjRTlb1xj8#+n#bz0PH93eWOY3jAPD3!3YR~I zmYNIp4dr^Y{~$kEtTdG()tXDT|@|^-=S8_m_lzY^CZOngL8X z4q2ROzT_MD9O#@gUE67^H+i(F*&ZYeWg;YCGRB^>URcEEYlxv)PfB;vzF2@te-vW- zvHr>Wf1|G+?;a}hR)%+n-hdQ!JefYfG=hvPQDT7?ZL1!N>-1K%N|nP#`u%psn}IRv zdcT({ecaeWhiLl@C+?{$TiEWw#6|_}xK7we+L6QBeF~(ZX+m}&#wNaH!jMU^C0Fw5 zL7ie=(3`xdoCB}Z`V)tfn99uhi;fv}ijuBCh#ZGbB3Mn=Y7fWx9JM>dqpuzO(l1bI zkE5n-rd_fOJ#06pEXU*PezDG}fygN%6)vp`tL+Sh(3;uD3Z0bT(M&+-_(;`Lc_epD=DK!W3!R1CE-V%Y7t&@bXEqGLU@>%MVQkQJHj znskO4)V`J4zb!ZIQYhW$R7S%=!+?FY>5Qf4_xAUrFVV_Din8UiI#EesAXe^)DE`Xv z9$0X1o~8<+Wt`49gXkgV>w};&t-2?<9 z3ad=UOEVflFUR(MYu}7JO9gj5m$NYDOP2oGfc?Z`m^)~RT^$VjYt0Idg)NS*H0U2U zTm2i}>&=(6HWCF;8vPVVnWLD<|KWlEXD3p$@ITWgw=b#GG`A|(zE($4D4SGzT1J`` I>W(r00TY&uIsgCw diff --git a/resources/enterprise/customer-directory.mdx b/resources/enterprise/customer-directory.mdx index b4c1a44..1941541 100644 --- a/resources/enterprise/customer-directory.mdx +++ b/resources/enterprise/customer-directory.mdx @@ -418,7 +418,8 @@ Here's the modified version of your code with all images removed from the LogoCa + href="https://www.o1.exchange/" + backgroundColor="black"/> Date: Tue, 1 Jul 2025 11:54:58 -0700 Subject: [PATCH 05/34] Added docs for community notes endpoints Added docs for community notes endpoints --- docs.json | 10 + openapi.json | 41386 ++++++++-------- .../community-note-lookup-by-post-id.mdx | 3 - .../create-a-community-note.mdx | 3 + x-api/community-notes/introduction.mdx | 23 + x-api/community-notes/quickstart.mdx | 331 + .../search-for-community-notes-written.mdx | 3 + ...for-posts-eligible-for-community-notes.mdx | 3 + 8 files changed, 21256 insertions(+), 20506 deletions(-) delete mode 100644 x-api/community-notes/community-note-lookup-by-post-id.mdx create mode 100644 x-api/community-notes/create-a-community-note.mdx create mode 100644 x-api/community-notes/introduction.mdx create mode 100644 x-api/community-notes/quickstart.mdx create mode 100644 x-api/community-notes/search-for-community-notes-written.mdx create mode 100644 x-api/community-notes/search-for-posts-eligible-for-community-notes.mdx diff --git a/docs.json b/docs.json index ce43e4c..910b881 100644 --- a/docs.json +++ b/docs.json @@ -745,6 +745,16 @@ } ] }, + { + "group": "Community Notes", + "pages": [ + "x-api/community-notes/introduction", + "x-api/community-notes/quickstart", + "x-api/community-notes/search-for-posts-eligible-for-community-notes", + "x-api/community-notes/search-for-community-notes-written", + "x-api/community-notes/create-a-community-note" + ] + }, { "group": "Trends", "pages": [ diff --git a/openapi.json b/openapi.json index 761a122..718bc94 100644 --- a/openapi.json +++ b/openapi.json @@ -1,20756 +1,21136 @@ { - "openapi" : "3.0.0", - "info" : { - "description" : "Twitter API v2 available endpoints", - "version" : "2.142", - "title" : "Twitter API v2", - "termsOfService" : "https://developer.twitter.com/en/developer-terms/agreement-and-policy.html", - "contact" : { - "name" : "Twitter Developers", - "url" : "https://developer.twitter.com/" - }, - "license" : { - "name" : "Twitter Developer Agreement and Policy", - "url" : "https://developer.twitter.com/en/developer-terms/agreement-and-policy.html" - } - }, - "paths" : { - "/2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all" : { - "post" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "AAASubscriptions" - ], - "summary" : "Request Activity Replay", - "description" : "Submits a request to retrieve activities from up to the past five days for all subscriptions associated with the specified webhook during the date and time windows provided.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId" : "postAccountActivityReplay", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The unique identifier for the webhook configuration.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - }, - { - "name" : "from_date", - "in" : "query", - "description" : "The oldest (starting) UTC timestamp (inclusive) from which events will be provided, in `yyyymmddhhmm` format.", - "required" : true, - "schema" : { - "type" : "string", - "pattern" : "^\\d{12}$", - "example" : "202504242000" - }, - "style" : "form" - }, - { - "name" : "to_date", - "in" : "query", - "description" : "The latest (ending) UTC timestamp (exclusive) up to which events will be provided, in `yyyymmddhhmm` format.", - "required" : true, - "schema" : { - "type" : "string", - "pattern" : "^\\d{12}$", - "example" : "202504242200" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ReplayJobCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/account_activity/subscriptions/count" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "AAASubscriptions" - ], - "summary" : "Get a count of subscriptions that are currently active on your account", - "description" : "Get a count of subscriptions that are currently active on your account.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" + "openapi": "3.0.0", + "info": { + "description": "Twitter API v2 available endpoints", + "version": "2.142", + "title": "Twitter API v2", + "termsOfService": "https://developer.twitter.com/en/developer-terms/agreement-and-policy.html", + "contact": { + "name": "Twitter Developers", + "url": "https://developer.twitter.com/" }, - "operationId" : "getSubscriptionCount", - "parameters" : [ ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsCountGetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } + "license": { + "name": "Twitter Developer Agreement and Policy", + "url": "https://developer.twitter.com/en/developer-terms/agreement-and-policy.html" } - } }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/all" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "AAASubscriptions" - ], - "summary" : "Check if a subscription exists for a given webhook and user", - "description" : "Check if a subscription exists for a given webhook and user.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId" : "getSubscription", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The webhook ID to check subscription against.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsGetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "AAASubscriptions" - ], - "summary" : "Subscribes the provided application to all events for the provided user context for all message types", - "description" : "Subscribes the provided application to all events for the provided user context for all message types.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId" : "postSubscription", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The webhook ID to check subscription against.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsCreateRequest" - } + "paths": { + "/2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all": { + "post": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "AAASubscriptions" + ], + "summary": "Request Activity Replay", + "description": "Submits a request to retrieve activities from up to the past five days for all subscriptions associated with the specified webhook during the date and time windows provided.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "postAccountActivityReplay", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The unique identifier for the webhook configuration.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + }, + { + "name": "from_date", + "in": "query", + "description": "The oldest (starting) UTC timestamp (inclusive) from which events will be provided, in `yyyymmddhhmm` format.", + "required": true, + "schema": { + "type": "string", + "pattern": "^\\d{12}$", + "example": "202504242000" + }, + "style": "form" + }, + { + "name": "to_date", + "in": "query", + "description": "The latest (ending) UTC timestamp (exclusive) up to which events will be provided, in `yyyymmddhhmm` format.", + "required": true, + "schema": { + "type": "string", + "pattern": "^\\d{12}$", + "example": "202504242200" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReplayJobCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/account_activity/subscriptions/count": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "AAASubscriptions" + ], + "summary": "Get a count of subscriptions that are currently active on your account", + "description": "Get a count of subscriptions that are currently active on your account.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "getSubscriptionCount", + "parameters": [], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsCountGetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/all/list" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "AAASubscriptions" - ], - "summary" : "Get a list of the current All Activity type subscriptions for the specified webhook", - "description" : "Get a list of the current All Activity type subscriptions for the specified webhook.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "operationId" : "getSubscriptionList", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The webhook ID to pull subscriptions for.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsListGetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/account_activity/webhooks/{webhook_id}/subscriptions/all": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "AAASubscriptions" + ], + "summary": "Check if a subscription exists for a given webhook and user", + "description": "Check if a subscription exists for a given webhook and user.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "getSubscription", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The webhook ID to check subscription against.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsGetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "AAASubscriptions" + ], + "summary": "Subscribes the provided application to all events for the provided user context for all message types", + "description": "Subscribes the provided application to all events for the provided user context for all message types.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "postSubscription", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The webhook ID to check subscription against.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all" : { - "delete" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "AAASubscriptions" - ], - "summary" : "Deactivates a subscription for the specified webhook and user id", - "description" : "Deactivates a subscription for the specified webhook and user id.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "operationId" : "deleteSubscription", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The webhook ID to check subscription against.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - }, - { - "name" : "user_id", - "in" : "path", - "description" : "User ID to unsubscribe from.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/account_activity/webhooks/{webhook_id}/subscriptions/all/list": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "AAASubscriptions" + ], + "summary": "Get a list of the current All Activity type subscriptions for the specified webhook", + "description": "Get a list of the current All Activity type subscriptions for the specified webhook.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "getSubscriptionList", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The webhook ID to pull subscriptions for.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsListGetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/communities/search" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Communities" - ], - "summary" : "Search Communities", - "description" : "Returns Communities that match search query", - "externalDocs" : { - "url" : "https://developer.x.com" }, - "operationId" : "communitiesSearch", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "Query to search communities.", - "required" : true, - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 4096, - "example" : "Love" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of search results to be returned by a request.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 10, - "maximum" : 100, - "format" : "int32", - "default" : 10 - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/NextToken" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/NextToken" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/CommunityFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2CommunitiesSearchResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all": { + "delete": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "AAASubscriptions" + ], + "summary": "Deactivates a subscription for the specified webhook and user id", + "description": "Deactivates a subscription for the specified webhook and user id.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "deleteSubscription", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The webhook ID to check subscription against.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + }, + { + "name": "user_id", + "in": "path", + "description": "User ID to unsubscribe from.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/communities/{id}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Communities" - ], - "summary" : "Communities lookup by Community ID.", - "description" : "Returns a Community.", - "externalDocs" : { - "url" : "https://developer.x.com/en/docs/x-api/communities/api-reference/get-communities-id" }, - "operationId" : "communityIdGet", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Community.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/CommunityId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/CommunityFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2CommunitiesIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/communities/search": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Communities" + ], + "summary": "Search Communities", + "description": "Returns Communities that match search query", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "communitiesSearch", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "Query to search communities.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 4096, + "example": "Love" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of search results to be returned by a request.", + "required": false, + "schema": { + "type": "integer", + "minimum": 10, + "maximum": 100, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/NextToken" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/NextToken" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/CommunityFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2CommunitiesSearchResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/compliance/jobs" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Compliance" - ], - "summary" : "List Compliance Jobs", - "description" : "Returns recent Compliance Jobs for a given job type and optional job status", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs" }, - "operationId" : "listBatchComplianceJobs", - "parameters" : [ - { - "name" : "type", - "in" : "query", - "description" : "Type of Compliance Job to list.", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ - "tweets", - "users" - ] - }, - "style" : "form" - }, - { - "name" : "status", - "in" : "query", - "description" : "Status of Compliance Job to list.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "created", - "in_progress", - "failed", - "complete" - ] - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/ComplianceJobFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ComplianceJobsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/communities/{id}": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Communities" + ], + "summary": "Communities lookup by Community ID.", + "description": "Returns a Community.", + "externalDocs": { + "url": "https://developer.x.com/en/docs/x-api/communities/api-reference/get-communities-id" + }, + "operationId": "communityIdGet", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Community.", + "required": true, + "schema": { + "$ref": "#/components/schemas/CommunityId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/CommunityFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2CommunitiesIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "post" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Compliance" - ], - "summary" : "Create compliance job", - "description" : "Creates a compliance for the given job type", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs" }, - "operationId" : "createBatchComplianceJob", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateComplianceJobRequest" - } + "/2/compliance/jobs": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Compliance" + ], + "summary": "List Compliance Jobs", + "description": "Returns recent Compliance Jobs for a given job type and optional job status", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs" + }, + "operationId": "listBatchComplianceJobs", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Type of Compliance Job to list.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "tweets", + "users" + ] + }, + "style": "form" + }, + { + "name": "status", + "in": "query", + "description": "Status of Compliance Job to list.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "in_progress", + "failed", + "complete" + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/ComplianceJobFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ComplianceJobsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Compliance" + ], + "summary": "Create compliance job", + "description": "Creates a compliance for the given job type", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs" + }, + "operationId": "createBatchComplianceJob", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateComplianceJobRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateComplianceJobResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - }, - "required" : true }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateComplianceJobResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/compliance/jobs/{id}": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Compliance" + ], + "summary": "Get Compliance Job", + "description": "Returns a single Compliance Job by ID", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id" + }, + "operationId": "getBatchComplianceJob", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Compliance Job to retrieve.", + "required": true, + "schema": { + "$ref": "#/components/schemas/JobId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/ComplianceJobFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ComplianceJobsIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/compliance/jobs/{id}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Compliance" - ], - "summary" : "Get Compliance Job", - "description" : "Returns a single Compliance Job by ID", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id" }, - "operationId" : "getBatchComplianceJob", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Compliance Job to retrieve.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/JobId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/ComplianceJobFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ComplianceJobsIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/connections/all": { + "delete": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Connection" + ], + "summary": "Force kills all streaming connections of the authenticated application.", + "description": "Force kills all streaming connections of the authenticated application.", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "killAllAppConnections", + "parameters": [], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KillAllConnectionsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/connections/all" : { - "delete" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Connection" - ], - "summary" : "Force kills all streaming connections of the authenticated application.", - "description" : "Force kills all streaming connections of the authenticated application.", - "externalDocs" : { - "url" : "https://developer.x.com" }, - "operationId" : "killAllAppConnections", - "parameters" : [ ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/KillAllConnectionsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_conversations" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Create a new DM Conversation", - "description" : "Creates a new DM Conversation.", - "operationId" : "dmConversationIdCreate", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateDmConversationRequest" - } + "/2/dm_conversations": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Create a new DM Conversation", + "description": "Creates a new DM Conversation.", + "operationId": "dmConversationIdCreate", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDmConversationRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "201" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_conversations/with/{participant_id}/dm_events" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Get DM Events for a DM Conversation", - "description" : "Returns DM Events for a DM Conversation", - "operationId" : "getDmEventsByParticipantId", - "parameters" : [ - { - "name" : "participant_id", - "in" : "path", - "description" : "The ID of the participant user for the One to One DM conversation.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "name" : "event_types", - "in" : "query", - "description" : "The set of event_types to include in the results.", - "required" : false, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default" : [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example" : [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref" : "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2DmConversationsWithParticipantIdDmEventsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_conversations/with/{participant_id}/messages" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Send a new message to a user", - "description" : "Creates a new message for a DM Conversation with a participant user by ID", - "operationId" : "dmConversationWithUserEventIdCreate", - "parameters" : [ - { - "name" : "participant_id", - "in" : "path", - "description" : "The ID of the recipient user that will receive the DM.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateMessageRequest" - } + "/2/dm_conversations/with/{participant_id}/dm_events": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Get DM Events for a DM Conversation", + "description": "Returns DM Events for a DM Conversation", + "operationId": "getDmEventsByParticipantId", + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The ID of the participant user for the One to One DM conversation.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "name": "event_types", + "in": "query", + "description": "The set of event_types to include in the results.", + "required": false, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default": [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example": [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref": "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2DmConversationsWithParticipantIdDmEventsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "201" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_conversations/{dm_conversation_id}/messages" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Send a new message to a DM Conversation", - "description" : "Creates a new message for a DM Conversation specified by DM Conversation ID", - "operationId" : "dmConversationByIdEventIdCreate", - "parameters" : [ - { - "name" : "dm_conversation_id", - "in" : "path", - "description" : "The DM Conversation ID.", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateMessageRequest" - } + "/2/dm_conversations/with/{participant_id}/messages": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Send a new message to a user", + "description": "Creates a new message for a DM Conversation with a participant user by ID", + "operationId": "dmConversationWithUserEventIdCreate", + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The ID of the recipient user that will receive the DM.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMessageRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "201" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_conversations/{id}/dm_events" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Get DM Events for a DM Conversation", - "description" : "Returns DM Events for a DM Conversation", - "operationId" : "getDmConversationsIdDmEvents", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The DM Conversation ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/DmConversationId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "name" : "event_types", - "in" : "query", - "description" : "The set of event_types to include in the results.", - "required" : false, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default" : [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example" : [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref" : "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2DmConversationsIdDmEventsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_events" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Get recent DM Events", - "description" : "Returns recent DM Events across DM conversations", - "operationId" : "getDmEvents", - "parameters" : [ - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "name" : "event_types", - "in" : "query", - "description" : "The set of event_types to include in the results.", - "required" : false, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default" : [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example" : [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref" : "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2DmEventsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_events/{event_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "dm.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Delete Dm", - "description" : "Delete a Dm Event that you own.", - "operationId" : "dmEventDelete", - "parameters" : [ - { - "name" : "event_id", - "in" : "path", - "description" : "The ID of the direct-message event to delete.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/DmEventId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/DeleteDmResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Get DM Events by id", - "description" : "Returns DM Events by event id.", - "operationId" : "getDmEventsById", - "parameters" : [ - { - "name" : "event_id", - "in" : "path", - "description" : "dm event id.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/DmEventId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref" : "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2DmEventsEventIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/insights/28hr" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get Last 28hr Metrics for Posts", - "description" : "Get 28hr Metrics for Posts.", - "operationId" : "TwentyEightHoursEngagementApi", - "parameters" : [ - { - "name" : "tweet_ids", - "in" : "query", - "description" : "List of PostIds for 28hr metrics.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 25, - "uniqueItems" : true, - "items" : { - "$ref" : "#/components/schemas/TweetId" - }, - "example" : [ - "20" - ] - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "granularity of metrics response.", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ - "Daily", - "Hourly", - "Weekly", - "Total" - ], - "example" : "Total" - }, - "style" : "form" - }, - { - "name" : "requested_metrics", - "in" : "query", - "description" : "request metrics for historical request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "AppInstallAttempts", - "AppOpens", - "DetailExpands", - "EmailTweet", - "Engagements", - "Follows", - "HashtagClicks", - "Impressions", - "Likes", - "LinkClicks", - "MediaEngagements", - "MediaViews", - "PermalinkClicks", - "ProfileVisits", - "QuoteTweets", - "Replies", - "Retweets", - "UniqueVideoViews", - "UrlClicks", - "UserProfileClicks", - "VideoCompletions", - "VideoPlayed25Percent", - "VideoPlayed50Percent", - "VideoPlayed75Percent", - "VideoStarts", - "VideoViews" - ] - } - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/EngagementFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2Insights28hrResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/insights/historical" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get Historical Metrics for Posts", - "description" : "Get Historical Metrics for Posts.", - "operationId" : "HistoricalEngagementApi", - "parameters" : [ - { - "name" : "tweet_ids", - "in" : "query", - "description" : "List of PostIds for historical metrics.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 25, - "uniqueItems" : true, - "items" : { - "$ref" : "#/components/schemas/TweetId" - }, - "example" : [ - "20" - ] - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "granularity of metrics response.", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ - "Daily", - "Hourly", - "Weekly", - "Total" - ], - "example" : "Total" - }, - "style" : "form" - }, - { - "name" : "requested_metrics", - "in" : "query", - "description" : "request metrics for historical request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "AppInstallAttempts", - "AppOpens", - "DetailExpands", - "EmailTweet", - "Engagements", - "Follows", - "HashtagClicks", - "Impressions", - "Likes", - "LinkClicks", - "MediaEngagements", - "MediaViews", - "PermalinkClicks", - "ProfileVisits", - "QuoteTweets", - "Replies", - "Retweets", - "UniqueVideoViews", - "UrlClicks", - "UserProfileClicks", - "VideoCompletions", - "VideoPlayed25Percent", - "VideoPlayed50Percent", - "VideoPlayed75Percent", - "VideoStarts", - "VideoViews" - ] - } - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/EngagementFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2InsightsHistoricalResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/likes/compliance/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Compliance" - ], - "summary" : "Likes Compliance stream", - "description" : "Streams 100% of compliance data for Users", - "operationId" : "getLikesComplianceStream", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Likes Compliance events will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Likes Compliance events will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/LikesComplianceStreamResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/dm_conversations/{dm_conversation_id}/messages": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Send a new message to a DM Conversation", + "description": "Creates a new message for a DM Conversation specified by DM Conversation ID", + "operationId": "dmConversationByIdEventIdCreate", + "parameters": [ + { + "name": "dm_conversation_id", + "in": "path", + "description": "The DM Conversation ID.", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMessageRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/likes/firehose/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Likes" - ], - "summary" : "Likes Firehose stream", - "description" : "Streams 100% of public Likes.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-likes-firehose-stream" }, - "operationId" : "likesFirehoseStream", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 20, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/LikeWithTweetAuthorFieldsParameter" - }, - { - "$ref" : "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingLikeResponseV2" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/dm_conversations/{id}/dm_events": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Get DM Events for a DM Conversation", + "description": "Returns DM Events for a DM Conversation", + "operationId": "getDmConversationsIdDmEvents", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The DM Conversation ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/DmConversationId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "name": "event_types", + "in": "query", + "description": "The set of event_types to include in the results.", + "required": false, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default": [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example": [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref": "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2DmConversationsIdDmEventsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/likes/sample10/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Likes" - ], - "summary" : "Likes Sample 10 stream", - "description" : "Streams 10% of public Likes.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/likes/firehose/api-reference/get-likes-sample10-stream" }, - "operationId" : "likesSample10Stream", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 2, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/LikeWithTweetAuthorFieldsParameter" - }, - { - "$ref" : "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingLikeResponseV2" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/dm_events": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Get recent DM Events", + "description": "Returns recent DM Events across DM conversations", + "operationId": "getDmEvents", + "parameters": [ + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "name": "event_types", + "in": "query", + "description": "The set of event_types to include in the results.", + "required": false, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default": [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example": [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref": "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2DmEventsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "x-twitter-streaming" : true - } - }, - "/2/lists" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.read", - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Create List", - "description" : "Creates a new List.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists" - }, - "operationId" : "listIdCreate", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListCreateRequest" - } + "/2/dm_events/{event_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "dm.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Delete Dm", + "description": "Delete a Dm Event that you own.", + "operationId": "dmEventDelete", + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "The ID of the direct-message event to delete.", + "required": true, + "schema": { + "$ref": "#/components/schemas/DmEventId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteDmResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "get": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Get DM Events by id", + "description": "Returns DM Events by event id.", + "operationId": "getDmEventsById", + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "dm event id.", + "required": true, + "schema": { + "$ref": "#/components/schemas/DmEventId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref": "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2DmEventsEventIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/insights/28hr": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get Last 28hr Metrics for Posts", + "description": "Get 28hr Metrics for Posts.", + "operationId": "TwentyEightHoursEngagementApi", + "parameters": [ + { + "name": "tweet_ids", + "in": "query", + "description": "List of PostIds for 28hr metrics.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 25, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/TweetId" + }, + "example": [ + "20" + ] + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "granularity of metrics response.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "Daily", + "Hourly", + "Weekly", + "Total" + ], + "example": "Total" + }, + "style": "form" + }, + { + "name": "requested_metrics", + "in": "query", + "description": "request metrics for historical request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "AppInstallAttempts", + "AppOpens", + "DetailExpands", + "EmailTweet", + "Engagements", + "Follows", + "HashtagClicks", + "Impressions", + "Likes", + "LinkClicks", + "MediaEngagements", + "MediaViews", + "PermalinkClicks", + "ProfileVisits", + "QuoteTweets", + "Replies", + "Retweets", + "UniqueVideoViews", + "UrlClicks", + "UserProfileClicks", + "VideoCompletions", + "VideoPlayed25Percent", + "VideoPlayed50Percent", + "VideoPlayed75Percent", + "VideoStarts", + "VideoViews" + ] + } + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/EngagementFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2Insights28hrResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/lists/{id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Delete List", - "description" : "Delete a List that you own.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id" }, - "operationId" : "listIdDelete", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List to delete.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/insights/historical": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get Historical Metrics for Posts", + "description": "Get Historical Metrics for Posts.", + "operationId": "HistoricalEngagementApi", + "parameters": [ + { + "name": "tweet_ids", + "in": "query", + "description": "List of PostIds for historical metrics.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 25, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/TweetId" + }, + "example": [ + "20" + ] + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "granularity of metrics response.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "Daily", + "Hourly", + "Weekly", + "Total" + ], + "example": "Total" + }, + "style": "form" + }, + { + "name": "requested_metrics", + "in": "query", + "description": "request metrics for historical request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "AppInstallAttempts", + "AppOpens", + "DetailExpands", + "EmailTweet", + "Engagements", + "Follows", + "HashtagClicks", + "Impressions", + "Likes", + "LinkClicks", + "MediaEngagements", + "MediaViews", + "PermalinkClicks", + "ProfileVisits", + "QuoteTweets", + "Replies", + "Retweets", + "UniqueVideoViews", + "UrlClicks", + "UserProfileClicks", + "VideoCompletions", + "VideoPlayed25Percent", + "VideoPlayed50Percent", + "VideoPlayed75Percent", + "VideoStarts", + "VideoViews" + ] + } + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/EngagementFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2InsightsHistoricalResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "List lookup by List ID.", - "description" : "Returns a List.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id" }, - "operationId" : "listIdGet", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/ListFieldsParameter" - }, - { - "$ref" : "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ListsIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/likes/compliance/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Compliance" + ], + "summary": "Likes Compliance stream", + "description": "Streams 100% of compliance data for Users", + "operationId": "getLikesComplianceStream", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Likes Compliance events will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Likes Compliance events will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LikesComplianceStreamResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - }, - "put" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Update List.", - "description" : "Update a List that you own.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id" }, - "operationId" : "listIdUpdate", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List to modify.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListUpdateRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListUpdateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/lists/{id}/followers" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Returns User objects that follow a List by the provided List ID", - "description" : "Returns a list of Users that follow a List by the provided List ID", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" - }, - "operationId" : "listGetFollowers", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ListsIdFollowersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/likes/firehose/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Likes" + ], + "summary": "Likes Firehose stream", + "description": "Streams 100% of public Likes.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-likes-firehose-stream" + }, + "operationId": "likesFirehoseStream", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 20, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" + }, + { + "$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingLikeResponseV2" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - } - }, - "/2/lists/{id}/members" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Returns User objects that are members of a List by the provided List ID.", - "description" : "Returns a list of Users that are members of a List by the provided List ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" }, - "operationId" : "listGetMembers", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ListsIdMembersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/likes/sample10/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Likes" + ], + "summary": "Likes Sample 10 stream", + "description": "Streams 10% of public Likes.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/likes/firehose/api-reference/get-likes-sample10-stream" + }, + "operationId": "likesSample10Stream", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 2, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" + }, + { + "$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingLikeResponseV2" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Add a List member", - "description" : "Causes a User to become a member of a List.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members" }, - "operationId" : "listAddMember", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List for which to add a member.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListAddUserRequest" - } + "/2/lists": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "list.read", + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Create List", + "description": "Creates a new List.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists" + }, + "operationId": "listIdCreate", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListMutateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/lists/{id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Delete List", + "description": "Delete a List that you own.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id" + }, + "operationId": "listIdDelete", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List to delete.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "List lookup by List ID.", + "description": "Returns a List.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id" + }, + "operationId": "listIdGet", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/ListFieldsParameter" + }, + { + "$ref": "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ListsIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "put": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Update List.", + "description": "Update a List that you own.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id" + }, + "operationId": "listIdUpdate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List to modify.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListUpdateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListUpdateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/lists/{id}/members/{user_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Remove a List member", - "description" : "Causes a User to be removed from the members of a List.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id" }, - "operationId" : "listRemoveMember", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List to remove a member.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - }, - { - "name" : "user_id", - "in" : "path", - "description" : "The ID of User that will be removed from the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListMutateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/lists/{id}/followers": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Returns User objects that follow a List by the provided List ID", + "description": "Returns a list of Users that follow a List by the provided List ID", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" + }, + "operationId": "listGetFollowers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ListsIdFollowersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/lists/{id}/tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "List Posts timeline by List ID.", - "description" : "Returns a list of Posts associated with the provided List ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets" }, - "operationId" : "listsIdTweets", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ListsIdTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/lists/{id}/members": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Returns User objects that are members of a List by the provided List ID.", + "description": "Returns a list of Users that are members of a List by the provided List ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" + }, + "operationId": "listGetMembers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ListsIdMembersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Add a List member", + "description": "Causes a User to become a member of a List.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members" + }, + "operationId": "listAddMember", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List for which to add a member.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListAddUserRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListMutateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/media" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Media lookup by Media Key", - "description" : "Returns a variety of information about the Media specified by the requested Media Key.", - "externalDocs" : { - "url" : "https://developer.x.com" }, - "operationId" : "findMediaByMediaKeys", - "parameters" : [ - { - "name" : "media_keys", - "in" : "query", - "description" : "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/MediaKey" - } - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2MediaResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/media/analytics" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Analytics of Media", - "description" : "Returns analytics of Media.", - "operationId" : "MediaAnalytics", - "parameters" : [ - { - "name" : "media_keys", - "in" : "query", - "description" : "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/MediaKey" - } - }, - "explode" : false, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "The granularity for the search counts results.", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ - "hourly", - "daily", - "total" - ], - "default" : "daily" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/MediaAnalyticsFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaAnalytics" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/lists/{id}/members/{user_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Remove a List member", + "description": "Causes a User to be removed from the members of a List.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id" + }, + "operationId": "listRemoveMember", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List to remove a member.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + }, + { + "name": "user_id", + "in": "path", + "description": "The ID of User that will be removed from the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListMutateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/media/metadata" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "MediaUpload" - ], - "summary" : "Metadata Create", - "description" : "MetadataCreate", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-metadata-create#metadata-create" }, - "operationId" : "metadataCreate", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MetadataCreateRequest" - } + "/2/lists/{id}/tweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "List Posts timeline by List ID.", + "description": "Returns a list of Posts associated with the provided List ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets" + }, + "operationId": "listsIdTweets", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ListsIdTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MetadataCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/media/subtitles" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "MediaUpload" - ], - "summary" : "Subtitle Delete", - "description" : "SubtitleDelete", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-subtitles-delete" - }, - "operationId" : "deleteSubtitles", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubtitlesDeleteRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubtitlesDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/media": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Media lookup by Media Key", + "description": "Returns a variety of information about the Media specified by the requested Media Key.", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "findMediaByMediaKeys", + "parameters": [ + { + "name": "media_keys", + "in": "query", + "description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/MediaKey" + } + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2MediaResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "MediaUpload" - ], - "summary" : "Subtitle Create", - "description" : "SubtitleCreate", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-subtitles-create" }, - "operationId" : "createSubtitles", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubtitlesCreateRequest" - } + "/2/media/analytics": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Analytics of Media", + "description": "Returns analytics of Media.", + "operationId": "MediaAnalytics", + "parameters": [ + { + "name": "media_keys", + "in": "query", + "description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/MediaKey" + } + }, + "explode": false, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "The granularity for the search counts results.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "hourly", + "daily", + "total" + ], + "default": "daily" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/MediaAnalyticsFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaAnalytics" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubtitlesCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/media/metadata": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "MediaUpload" + ], + "summary": "Metadata Create", + "description": "MetadataCreate", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-metadata-create#metadata-create" + }, + "operationId": "metadataCreate", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/media/upload" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "MediaUpload" - ], - "summary" : "Media Upload Status", - "description" : "Get MediaUpload Status", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-upload-status#media-upload-status" }, - "operationId" : "uploadMediaStatus", - "parameters" : [ - { - "name" : "media_id", - "in" : "query", - "description" : "Media id for the requested media upload status.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/MediaId" - }, - "style" : "form" - }, - { - "name" : "command", - "in" : "query", - "description" : "The command for the media upload request.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "STATUS" - ] - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/media/subtitles": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "MediaUpload" + ], + "summary": "Subtitle Delete", + "description": "SubtitleDelete", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-subtitles-delete" + }, + "operationId": "deleteSubtitles", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubtitlesDeleteRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubtitlesDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "MediaUpload" + ], + "summary": "Subtitle Create", + "description": "SubtitleCreate", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-subtitles-create" + }, + "operationId": "createSubtitles", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubtitlesCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubtitlesCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "MediaUpload" - ], - "summary" : "Image or subtitle media upload", - "description" : "Uploads an image or a subtitle using a single API call.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-upload" }, - "operationId" : "uploadMedia", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadRequestOneShot" - } - }, - "multipart/form-data" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadRequestOneShot" - } + "/2/media/upload": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "MediaUpload" + ], + "summary": "Media Upload Status", + "description": "Get MediaUpload Status", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-upload-status#media-upload-status" + }, + "operationId": "uploadMediaStatus", + "parameters": [ + { + "name": "media_id", + "in": "query", + "description": "Media id for the requested media upload status.", + "required": true, + "schema": { + "$ref": "#/components/schemas/MediaId" + }, + "style": "form" + }, + { + "name": "command", + "in": "query", + "description": "The command for the media upload request.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "STATUS" + ] + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "MediaUpload" + ], + "summary": "Image or subtitle media upload", + "description": "Uploads an image or a subtitle using a single API call.", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-upload" + }, + "operationId": "uploadMedia", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadRequestOneShot" + } + }, + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/MediaUploadRequestOneShot" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/media/upload/initialize": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "MediaUpload" + ], + "summary": "Initialize a media upload request.", + "description": "Initialize a media upload request.", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-upload" + }, + "operationId": "initializeMediaUpload", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadConfigRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/media/upload/initialize" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "MediaUpload" - ], - "summary" : "Initialize a media upload request.", - "description" : "Initialize a media upload request.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-upload" }, - "operationId" : "initializeMediaUpload", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadConfigRequest" - } + "/2/media/upload/{id}/append": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "MediaUpload" + ], + "summary": "Media upload resumable upload append endpoint.", + "description": "MediaUpload", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-upload" + }, + "operationId": "appendMediaUpload", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The media identifier for the media to perform the append operation.", + "required": true, + "schema": { + "$ref": "#/components/schemas/MediaId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadAppendRequest" + } + }, + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/MediaUploadAppendRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadAppendResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/media/upload/{id}/finalize": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "MediaUpload" + ], + "summary": "Finalize a media upload request.", + "description": "Finalize a media upload request.", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-upload" + }, + "operationId": "finalizeMediaUpload", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The media id of the targeted media to finalize.", + "required": true, + "schema": { + "$ref": "#/components/schemas/MediaId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/media/upload/{id}/append" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "MediaUpload" - ], - "summary" : "Media upload resumable upload append endpoint.", - "description" : "MediaUpload", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-upload" }, - "operationId" : "appendMediaUpload", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The media identifier for the media to perform the append operation.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/MediaId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadAppendRequest" - } - }, - "multipart/form-data" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadAppendRequest" - } + "/2/media/{media_key}": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Media lookup by Media Key", + "description": "Returns a variety of information about the Media specified by the requested Media Key.", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "findMediaByMediaKey", + "parameters": [ + { + "name": "media_key", + "in": "path", + "description": "A single Media Key.", + "required": true, + "schema": { + "$ref": "#/components/schemas/MediaKey" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2MediaMediaKeyResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadAppendResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/notes": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Community Notes" + ], + "summary": "Create a Community Note", + "description": "Creates a community note endpoint for LLM use case.", + "externalDocs": { + "url": "https://communitynotes.x.com/guide/api/overview" + }, + "operationId": "createNote", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNoteRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteNoteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/media/upload/{id}/finalize" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "MediaUpload" - ], - "summary" : "Finalize a media upload request.", - "description" : "Finalize a media upload request.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-upload" }, - "operationId" : "finalizeMediaUpload", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The media id of the targeted media to finalize.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/MediaId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/notes/search/notes_written": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Community Notes" + ], + "summary": "Search for Community Notes Written", + "description": "Returns all the community notes written by the user.", + "externalDocs": { + "url": "https://communitynotes.x.com/guide/api/overview" + }, + "operationId": "searchNotesWritten", + "parameters": [ + { + "name": "test_mode", + "in": "query", + "description": "If true, return the notes the caller wrote for the test. If false, return the notes the caller wrote on the product.", + "required": true, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "Pagination token to get next set of posts eligible for notes.", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "Max results to return.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/NoteFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2NotesSearchNotesWrittenResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/media/{media_key}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Media lookup by Media Key", - "description" : "Returns a variety of information about the Media specified by the requested Media Key.", - "externalDocs" : { - "url" : "https://developer.x.com" }, - "operationId" : "findMediaByMediaKey", - "parameters" : [ - { - "name" : "media_key", - "in" : "path", - "description" : "A single Media Key.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/MediaKey" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2MediaMediaKeyResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/openapi.json" : { - "get" : { - "tags" : [ - "General" - ], - "summary" : "Returns the OpenAPI Specification document.", - "description" : "Full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", - "operationId" : "getOpenApiSpec", - "parameters" : [ ], - "responses" : { - "200" : { - "description" : "The request was successful", - "content" : { - "application/json" : { - "schema" : { - "type" : "object" - } - } - } - } - } - } - }, - "/2/spaces" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces" - ], - "summary" : "Space lookup up Space IDs", - "description" : "Returns a variety of information about the Spaces specified by the requested IDs", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces" - }, - "operationId" : "findSpacesByIds", - "parameters" : [ - { - "name" : "ids", - "in" : "query", - "description" : "The list of Space IDs to return.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "type" : "string", - "description" : "The unique identifier of this Space.", - "pattern" : "^[a-zA-Z0-9]{1,13}$", - "example" : "1SLjjRYNejbKM" - } - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref" : "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TopicFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/spaces/by/creator_ids" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces" - ], - "summary" : "Space lookup by their creators", - "description" : "Returns a variety of information about the Spaces created by the provided User IDs", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids" - }, - "operationId" : "findSpacesByCreatorIds", - "parameters" : [ - { - "name" : "user_ids", - "in" : "query", - "description" : "The IDs of Users to search through.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref" : "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TopicFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesByCreatorIdsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/spaces/search" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces" - ], - "summary" : "Search for Spaces", - "description" : "Returns Spaces that match the provided query.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search" - }, - "operationId" : "searchSpaces", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "The search query.", - "required" : true, - "example" : "crypto", - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 2048, - "example" : "crypto" - }, - "style" : "form" - }, - { - "name" : "state", - "in" : "query", - "description" : "The state of Spaces to search for.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "live", - "scheduled", - "all" - ], - "default" : "all" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The number of results to return.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref" : "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TopicFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesSearchResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/spaces/{id}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces" - ], - "summary" : "Space lookup by Space ID", - "description" : "Returns a variety of information about the Space specified by the requested ID", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id" - }, - "operationId" : "findSpaceById", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Space to be retrieved.", - "required" : true, - "example" : "1YqKDqWqdPLsV", - "schema" : { - "type" : "string", - "description" : "The unique identifier of this Space.", - "pattern" : "^[a-zA-Z0-9]{1,13}$", - "example" : "1SLjjRYNejbKM" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref" : "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TopicFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/spaces/{id}/buyers" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces", - "Tweets" - ], - "summary" : "Retrieve the list of Users who purchased a ticket to the given space", - "description" : "Retrieves the list of Users who purchased a ticket to the given space", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers" - }, - "operationId" : "spaceBuyers", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Space to be retrieved.", - "required" : true, - "example" : "1YqKDqWqdPLsV", - "schema" : { - "type" : "string", - "description" : "The unique identifier of this Space.", - "pattern" : "^[a-zA-Z0-9]{1,13}$", - "example" : "1SLjjRYNejbKM" - }, - "style" : "simple" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesIdBuyersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/spaces/{id}/tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces", - "Tweets" - ], - "summary" : "Retrieve Posts from a Space.", - "description" : "Retrieves Posts shared in the specified Space.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets" - }, - "operationId" : "spaceTweets", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Space to be retrieved.", - "required" : true, - "example" : "1YqKDqWqdPLsV", - "schema" : { - "type" : "string", - "description" : "The unique identifier of this Space.", - "pattern" : "^[a-zA-Z0-9]{1,13}$", - "example" : "1SLjjRYNejbKM" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The number of Posts to fetch from the provided space. If not provided, the value will default to the maximum of 100.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100, - "example" : 25 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesIdTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/notes/search/posts_eligible_for_notes": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Community Notes" + ], + "summary": "Search for Posts Eligible for Community Notes", + "description": "Returns all the posts that are eligible for community notes.", + "externalDocs": { + "url": "https://communitynotes.x.com/guide/api/overview" + }, + "operationId": "searchPostsEligibleForNotes", + "parameters": [ + { + "name": "test_mode", + "in": "query", + "description": "If true, return a list of posts that are for the test. If false, return a list of posts that the bots can write proposed notes on the product.", + "required": true, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "Pagination token to get next set of posts eligible for notes.", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "Max results to return.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2NotesSearchPostsEligibleForNotesResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/trends/by/woeid/{woeid}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Trends" - ], - "summary" : "Trends", - "description" : "Returns the Trend associated with the supplied WoeId.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/trends/api-reference/get-trends-by-woeid" }, - "operationId" : "getTrends", - "parameters" : [ - { - "name" : "woeid", - "in" : "path", - "description" : "The WOEID of the place to lookup a trend for.", - "required" : true, - "example" : "2244994945", - "schema" : { - "type" : "integer", - "format" : "int32" - }, - "style" : "simple" - }, - { - "name" : "max_trends", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 50, - "format" : "int32", - "default" : 20 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TrendFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TrendsByWoeidWoeidResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/notes/{id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Community Notes" + ], + "summary": "Delete a Community Note", + "description": "Deletes a community note.", + "externalDocs": { + "url": "https://communitynotes.x.com/guide/api/overview" + }, + "operationId": "deleteNote", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The community note id to delete.", + "required": true, + "schema": { + "$ref": "#/components/schemas/NoteId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNoteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Post lookup by Post IDs", - "description" : "Returns a variety of information about the Post specified by the requested ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets" }, - "operationId" : "findTweetsById", - "parameters" : [ - { - "name" : "ids", - "in" : "query", - "description" : "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/openapi.json": { + "get": { + "tags": [ + "General" + ], + "summary": "Returns the OpenAPI Specification document.", + "description": "Full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", + "operationId": "getOpenApiSpec", + "parameters": [], + "responses": { + "200": { + "description": "The request was successful", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + } } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Creation of a Post", - "description" : "Causes the User to create a Post under the authorized account.", - "externalDocs" : { - "url" : "https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets" }, - "operationId" : "createTweet", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetCreateRequest" - } + "/2/spaces": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces" + ], + "summary": "Space lookup up Space IDs", + "description": "Returns a variety of information about the Spaces specified by the requested IDs", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces" + }, + "operationId": "findSpacesByIds", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "The list of Space IDs to return.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "type": "string", + "description": "The unique identifier of this Space.", + "pattern": "^[a-zA-Z0-9]{1,13}$", + "example": "1SLjjRYNejbKM" + } + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref": "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TopicFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - }, - "required" : true }, - "responses" : { - "201" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/analytics" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Analytics of posts", - "description" : "Returns analytics of posts.", - "operationId" : "postAnalytics2", - "parameters" : [ - { - "name" : "ids", - "in" : "query", - "description" : "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "explode" : false, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "The granularity for the search counts results.", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ - "hourly", - "daily", - "weekly", - "total" - ], - "default" : "total" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/AnalyticsFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Analytics" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/compliance/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Compliance" - ], - "summary" : "Posts Compliance stream", - "description" : "Streams 100% of compliance data for Posts", - "operationId" : "getTweetsComplianceStream", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 4, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post Compliance events will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Post Compliance events will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetComplianceStreamResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/spaces/by/creator_ids": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces" + ], + "summary": "Space lookup by their creators", + "description": "Returns a variety of information about the Spaces created by the provided User IDs", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids" + }, + "operationId": "findSpacesByCreatorIds", + "parameters": [ + { + "name": "user_ids", + "in": "query", + "description": "The IDs of Users to search through.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref": "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TopicFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesByCreatorIdsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/counts/all" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Full archive search counts", - "description" : "Returns Post Counts that match a search query.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" }, - "operationId" : "tweetCountsFullArchiveSearch", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required" : true, - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 4096, - "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "The granularity for the search counts results.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "minute", - "hour", - "day" - ], - "default" : "hour" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/SearchCountFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsCountsAllResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/spaces/search": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces" + ], + "summary": "Search for Spaces", + "description": "Returns Spaces that match the provided query.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search" + }, + "operationId": "searchSpaces", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "The search query.", + "required": true, + "example": "crypto", + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "example": "crypto" + }, + "style": "form" + }, + { + "name": "state", + "in": "query", + "description": "The state of Spaces to search for.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "live", + "scheduled", + "all" + ], + "default": "all" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The number of results to return.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref": "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TopicFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesSearchResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/tweets/counts/recent" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Recent search counts", - "description" : "Returns Post Counts from the last 7 days that match a search query.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent" }, - "operationId" : "tweetCountsRecentSearch", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required" : true, - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 4096, - "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "The granularity for the search counts results.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "minute", - "hour", - "day" - ], - "default" : "hour" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/SearchCountFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsCountsRecentResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/firehose/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Firehose stream", - "description" : "Streams 100% of public Posts.", - "operationId" : "getTweetsFirehoseStream", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 20, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/spaces/{id}": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces" + ], + "summary": "Space lookup by Space ID", + "description": "Returns a variety of information about the Space specified by the requested ID", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id" + }, + "operationId": "findSpaceById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Space to be retrieved.", + "required": true, + "example": "1YqKDqWqdPLsV", + "schema": { + "type": "string", + "description": "The unique identifier of this Space.", + "pattern": "^[a-zA-Z0-9]{1,13}$", + "example": "1SLjjRYNejbKM" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref": "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TopicFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/firehose/stream/lang/en" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "English Language Firehose stream", - "description" : "Streams 100% of English Language public Posts.", - "operationId" : "getTweetsFirehoseStreamLangEn", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 8, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/spaces/{id}/buyers": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces", + "Tweets" + ], + "summary": "Retrieve the list of Users who purchased a ticket to the given space", + "description": "Retrieves the list of Users who purchased a ticket to the given space", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers" + }, + "operationId": "spaceBuyers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Space to be retrieved.", + "required": true, + "example": "1YqKDqWqdPLsV", + "schema": { + "type": "string", + "description": "The unique identifier of this Space.", + "pattern": "^[a-zA-Z0-9]{1,13}$", + "example": "1SLjjRYNejbKM" + }, + "style": "simple" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesIdBuyersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/firehose/stream/lang/ja" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Japanese Language Firehose stream", - "description" : "Streams 100% of Japanese Language public Posts.", - "operationId" : "getTweetsFirehoseStreamLangJa", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 2, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/spaces/{id}/tweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces", + "Tweets" + ], + "summary": "Retrieve Posts from a Space.", + "description": "Retrieves Posts shared in the specified Space.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets" + }, + "operationId": "spaceTweets", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Space to be retrieved.", + "required": true, + "example": "1YqKDqWqdPLsV", + "schema": { + "type": "string", + "description": "The unique identifier of this Space.", + "pattern": "^[a-zA-Z0-9]{1,13}$", + "example": "1SLjjRYNejbKM" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The number of Posts to fetch from the provided space. If not provided, the value will default to the maximum of 100.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100, + "example": 25 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesIdTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/firehose/stream/lang/ko" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Korean Language Firehose stream", - "description" : "Streams 100% of Korean Language public Posts.", - "operationId" : "getTweetsFirehoseStreamLangKo", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 2, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/trends/by/woeid/{woeid}": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Trends" + ], + "summary": "Trends", + "description": "Returns the Trend associated with the supplied WoeId.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/trends/api-reference/get-trends-by-woeid" + }, + "operationId": "getTrends", + "parameters": [ + { + "name": "woeid", + "in": "path", + "description": "The WOEID of the place to lookup a trend for.", + "required": true, + "example": "2244994945", + "schema": { + "type": "integer", + "format": "int32" + }, + "style": "simple" + }, + { + "name": "max_trends", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 50, + "format": "int32", + "default": 20 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TrendFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TrendsByWoeidWoeidResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/firehose/stream/lang/pt" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Portuguese Language Firehose stream", - "description" : "Streams 100% of Portuguese Language public Posts.", - "operationId" : "getTweetsFirehoseStreamLangPt", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 2, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/label/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Compliance" - ], - "summary" : "Posts Label stream", - "description" : "Streams 100% of labeling events applied to Posts", - "operationId" : "getTweetsLabelStream", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post labels will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Post labels will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetLabelStreamResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/sample/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Sample stream", - "description" : "Streams a deterministic 1% of public Posts.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/api-reference/get-tweets-sample-stream" - }, - "operationId" : "sampleStream", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/sample10/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Sample 10% stream", - "description" : "Streams a deterministic 10% of public Posts.", - "operationId" : "getTweetsSample10Stream", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 2, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsSample10StreamResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/search/all" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Full-archive search", - "description" : "Returns Posts that match a search query.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" - }, - "operationId" : "tweetsFullarchiveSearch", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required" : true, - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 4096, - "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of search results to be returned by a request.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 10, - "maximum" : 500, - "format" : "int32", - "default" : 10 - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "sort_order", - "in" : "query", - "description" : "This order in which to return results.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "recency", - "relevancy" - ] - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsSearchAllResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/search/recent" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Recent search", - "description" : "Returns Posts from the last 7 days that match a search query.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent" - }, - "operationId" : "tweetsRecentSearch", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required" : true, - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 4096, - "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of search results to be returned by a request.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 10, - "maximum" : 100, - "format" : "int32", - "default" : 10 - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "sort_order", - "in" : "query", - "description" : "This order in which to return results.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "recency", - "relevancy" - ] - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsSearchRecentResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Post lookup by Post IDs", + "description": "Returns a variety of information about the Post specified by the requested ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets" + }, + "operationId": "findTweetsById", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/TweetId" + } + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Creation of a Post", + "description": "Causes the User to create a Post under the authorized account.", + "externalDocs": { + "url": "https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets" + }, + "operationId": "createTweet", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/tweets/search/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Filtered stream", - "description" : "Streams Posts matching the stream's active rule set.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream" }, - "operationId" : "searchStream", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/FilteredStreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/analytics": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Analytics of posts", + "description": "Returns analytics of posts.", + "operationId": "postAnalytics2", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/TweetId" + } + }, + "explode": false, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "The granularity for the search counts results.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "hourly", + "daily", + "weekly", + "total" + ], + "default": "total" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/AnalyticsFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Analytics" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/search/stream/rules" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Rules lookup", - "description" : "Returns rules from a User's active rule set. Users can fetch all of their rules or a subset, specified by the provided rule ids.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules" - }, - "operationId" : "getRules", - "parameters" : [ - { - "name" : "ids", - "in" : "query", - "description" : "A comma-separated list of Rule IDs.", - "required" : false, - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/RuleId" - } - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32", - "default" : 1000 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This value is populated by passing the 'next_token' returned in a request to paginate through results.", - "required" : false, - "schema" : { - "type" : "string", - "minLength" : 16, - "maxLength" : 16 - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/RulesLookupResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/compliance/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Compliance" + ], + "summary": "Posts Compliance stream", + "description": "Streams 100% of compliance data for Posts", + "operationId": "getTweetsComplianceStream", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 4, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post Compliance events will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Post Compliance events will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetComplianceStreamResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - }, - "post" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Add/Delete rules", - "description" : "Add or delete rules from a User's active rule set. Users can provide unique, optionally tagged rules to add. Users can delete their entire rule set or a subset specified by rule ids or values.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/post-tweets-search-stream-rules" }, - "operationId" : "addOrDeleteRules", - "parameters" : [ - { - "name" : "dry_run", - "in" : "query", - "description" : "Dry Run can be used with both the add and delete action, with the expected result given, but without actually taking any action in the system (meaning the end state will always be as it was when the request was submitted). This is particularly useful to validate rule changes.", - "required" : false, - "schema" : { - "type" : "boolean" - }, - "style" : "form" - }, - { - "name" : "delete_all", - "in" : "query", - "description" : "Delete All can be used to delete all of the rules associated this client app, it should be specified with no other parameters. Once deleted, rules cannot be recovered.", - "required" : false, - "schema" : { - "type" : "boolean" - }, - "style" : "form" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/AddOrDeleteRulesRequest" - } + "/2/tweets/counts/all": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Full archive search counts", + "description": "Returns Post Counts that match a search query.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" + }, + "operationId": "tweetCountsFullArchiveSearch", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 4096, + "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "since_id", + "in": "query", + "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "The granularity for the search counts results.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "minute", + "hour", + "day" + ], + "default": "hour" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/SearchCountFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsCountsAllResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - }, - "required" : true }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/AddOrDeleteRulesResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/counts/recent": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Recent search counts", + "description": "Returns Post Counts from the last 7 days that match a search query.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent" + }, + "operationId": "tweetCountsRecentSearch", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 4096, + "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "since_id", + "in": "query", + "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "The granularity for the search counts results.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "minute", + "hour", + "day" + ], + "default": "hour" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/SearchCountFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsCountsRecentResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/tweets/search/stream/rules/counts" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "General" - ], - "summary" : "Rules Count", - "description" : "Returns the counts of rules from a User's active rule set, to reflect usage by project and application.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules-counts" }, - "operationId" : "getRuleCount", - "parameters" : [ - { - "$ref" : "#/components/parameters/RulesCountFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsSearchStreamRulesCountsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/firehose/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Firehose stream", + "description": "Streams 100% of public Posts.", + "operationId": "getTweetsFirehoseStream", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 20, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - } - }, - "/2/tweets/{id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Post delete by Post ID", - "description" : "Delete specified Post (in the path) by ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id" }, - "operationId" : "deleteTweetById", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Post to be deleted.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/firehose/stream/lang/en": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "English Language Firehose stream", + "description": "Streams 100% of English Language public Posts.", + "operationId": "getTweetsFirehoseStreamLangEn", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 8, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - }, - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Post lookup by Post ID", - "description" : "Returns a variety of information about the Post specified by the requested ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id" }, - "operationId" : "findTweetById", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "A single Post ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/firehose/stream/lang/ja": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Japanese Language Firehose stream", + "description": "Streams 100% of Japanese Language public Posts.", + "operationId": "getTweetsFirehoseStreamLangJa", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 2, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - } - }, - "/2/tweets/{id}/liking_users" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "like.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Returns User objects that have liked the provided Post ID", - "description" : "Returns a list of Users that have liked the provided Post ID", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-tweets-id-liking_users" }, - "operationId" : "tweetsIdLikingUsers", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "A single Post ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsIdLikingUsersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/{id}/quote_tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Retrieve Posts that quote a Post.", - "description" : "Returns a variety of information about each Post that quotes the Post specified by the requested ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets" - }, - "operationId" : "findTweetsThatQuoteATweet", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "A single Post ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results to be returned.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 10, - "maximum" : 100, - "format" : "int32", - "default" : 10 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "exclude", - "in" : "query", - "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required" : false, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "replies", - "retweets" - ] - }, - "example" : [ - "replies", - "retweets" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsIdQuoteTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/{id}/retweeted_by" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Returns User objects that have retweeted the provided Post ID", - "description" : "Returns a list of Users that have retweeted the provided Post ID", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweeted_by" - }, - "operationId" : "tweetsIdRetweetingUsers", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "A single Post ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsIdRetweetedByResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/{id}/retweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Retrieve Posts that repost a Post.", - "description" : "Returns a variety of information about each Post that has retweeted the Post specified by the requested ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets" - }, - "operationId" : "findTweetsThatRetweetATweet", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "A single Post ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsIdRetweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/firehose/stream/lang/ko": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Korean Language Firehose stream", + "description": "Streams 100% of Korean Language public Posts.", + "operationId": "getTweetsFirehoseStreamLangKo", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 2, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - } - }, - "/2/tweets/{tweet_id}/hidden" : { - "put" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.moderate.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Hide replies", - "description" : "Hides or unhides a reply to an owned conversation.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden" }, - "operationId" : "hideReplyById", - "parameters" : [ - { - "name" : "tweet_id", - "in" : "path", - "description" : "The ID of the reply that you want to hide or unhide.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetHideRequest" - } + "/2/tweets/firehose/stream/lang/pt": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Portuguese Language Firehose stream", + "description": "Streams 100% of Portuguese Language public Posts.", + "operationId": "getTweetsFirehoseStreamLangPt", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 2, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetHideResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/label/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Compliance" + ], + "summary": "Posts Label stream", + "description": "Streams 100% of labeling events applied to Posts", + "operationId": "getTweetsLabelStream", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post labels will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Post labels will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetLabelStreamResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - } - }, - "/2/usage/tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Usage" - ], - "summary" : "Post Usage", - "description" : "Returns the Post Usage.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets" }, - "operationId" : "getUsageTweets", - "parameters" : [ - { - "name" : "days", - "in" : "query", - "description" : "The number of days for which you need usage for.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 90, - "format" : "int32", - "default" : 7 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UsageFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsageTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/sample/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Sample stream", + "description": "Streams a deterministic 1% of public Posts.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/api-reference/get-tweets-sample-stream" + }, + "operationId": "sampleStream", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - } - }, - "/2/users" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "User lookup by IDs", - "description" : "This endpoint returns information about Users. Specify Users by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users" }, - "operationId" : "findUsersById", - "parameters" : [ - { - "name" : "ids", - "in" : "query", - "description" : "A list of User IDs, comma-separated. You can specify up to 100 IDs.", - "required" : true, - "example" : "2244994945,6253282,12", - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/sample10/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Sample 10% stream", + "description": "Streams a deterministic 10% of public Posts.", + "operationId": "getTweetsSample10Stream", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 2, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsSample10StreamResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - } - }, - "/2/users/by" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "User lookup by usernames", - "description" : "This endpoint returns information about Users. Specify Users by their username.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by" }, - "operationId" : "findUsersByUsername", - "parameters" : [ - { - "name" : "usernames", - "in" : "query", - "description" : "A list of usernames, comma-separated.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "type" : "string", - "description" : "The X handle (screen name) of this User.", - "pattern" : "^[A-Za-z0-9_]{1,15}$" - }, - "example" : "TwitterDev,TwitterAPI" - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersByResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/search/all": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Full-archive search", + "description": "Returns Posts that match a search query.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" + }, + "operationId": "tweetsFullarchiveSearch", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 4096, + "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "since_id", + "in": "query", + "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of search results to be returned by a request.", + "required": false, + "schema": { + "type": "integer", + "minimum": 10, + "maximum": 500, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "sort_order", + "in": "query", + "description": "This order in which to return results.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "recency", + "relevancy" + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsSearchAllResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/by/username/{username}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "User lookup by username", - "description" : "This endpoint returns information about a User. Specify User by username.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username" }, - "operationId" : "findUserByUsername", - "parameters" : [ - { - "name" : "username", - "in" : "path", - "description" : "A username.", - "required" : true, - "example" : "TwitterDev", - "schema" : { - "type" : "string", - "pattern" : "^[A-Za-z0-9_]{1,15}$" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersByUsernameUsernameResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/compliance/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Compliance" - ], - "summary" : "Users Compliance stream", - "description" : "Streams 100% of compliance data for Users", - "operationId" : "getUsersComplianceStream", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 4, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the User Compliance events will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the User Compliance events will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UserComplianceStreamResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/search/recent": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Recent search", + "description": "Returns Posts from the last 7 days that match a search query.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent" + }, + "operationId": "tweetsRecentSearch", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 4096, + "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "since_id", + "in": "query", + "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of search results to be returned by a request.", + "required": false, + "schema": { + "type": "integer", + "minimum": 10, + "maximum": 100, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "sort_order", + "in": "query", + "description": "This order in which to return results.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "recency", + "relevancy" + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsSearchRecentResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/users/me" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "User lookup me", - "description" : "This endpoint returns information about the requesting User.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me" }, - "operationId" : "findMyUser", - "parameters" : [ - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersMeResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/search/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Filtered stream", + "description": "Streams Posts matching the stream's active rule set.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream" + }, + "operationId": "searchStream", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FilteredStreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - } - }, - "/2/users/personalized_trends" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Trends" - ], - "summary" : "Get personalized Trends", - "description" : "Returns Personalized trends for the authenticated user", - "externalDocs" : { - "url" : "https://developer.x.com/" }, - "operationId" : "personalizedTrends", - "parameters" : [ - { - "$ref" : "#/components/parameters/PersonalizedTrendFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersPersonalizedTrendsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/reposts_of_me" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "timeline.read", - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Returns repost of user", - "description" : "This endpoint returns reposts of the requesting User.", - "operationId" : "listOfRepostOfUser", - "parameters" : [ - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersRepostsOfMeResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/search" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "User search", - "description" : "Returns Users that match a search query.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-search" - }, - "operationId" : "searchUserByQuery", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "TThe the query string by which to query for users.", - "required" : true, - "example" : "someXUser", - "schema" : { - "$ref" : "#/components/schemas/UserSearchQueryVnext" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersSearchResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "User lookup by ID", - "description" : "This endpoint returns information about a User. Specify User by ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id" - }, - "operationId" : "findUserById", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/search/stream/rules": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Rules lookup", + "description": "Returns rules from a User's active rule set. Users can fetch all of their rules or a subset, specified by the provided rule ids.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules" + }, + "operationId": "getRules", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "A comma-separated list of Rule IDs.", + "required": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RuleId" + } + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32", + "default": 1000 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This value is populated by passing the 'next_token' returned in a request to paginate through results.", + "required": false, + "schema": { + "type": "string", + "minLength": 16, + "maxLength": 16 + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RulesLookupResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Add/Delete rules", + "description": "Add or delete rules from a User's active rule set. Users can provide unique, optionally tagged rules to add. Users can delete their entire rule set or a subset specified by rule ids or values.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/post-tweets-search-stream-rules" + }, + "operationId": "addOrDeleteRules", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "description": "Dry Run can be used with both the add and delete action, with the expected result given, but without actually taking any action in the system (meaning the end state will always be as it was when the request was submitted). This is particularly useful to validate rule changes.", + "required": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "name": "delete_all", + "in": "query", + "description": "Delete All can be used to delete all of the rules associated this client app, it should be specified with no other parameters. Once deleted, rules cannot be recovered.", + "required": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddOrDeleteRulesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddOrDeleteRulesResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/blocking" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "block.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Returns User objects that are blocked by provided User ID", - "description" : "Returns a list of Users that are blocked by the provided User ID", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking" }, - "operationId" : "usersIdBlocking", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdBlockingResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/search/stream/rules/counts": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "General" + ], + "summary": "Rules Count", + "description": "Returns the counts of rules from a User's active rule set, to reflect usage by project and application.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules-counts" + }, + "operationId": "getRuleCount", + "parameters": [ + { + "$ref": "#/components/parameters/RulesCountFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsSearchStreamRulesCountsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/bookmarks" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "bookmark.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Bookmarks" - ], - "summary" : "Bookmarks by User", - "description" : "Returns Post objects that have been bookmarked by the requesting User", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks" }, - "operationId" : "getUsersIdBookmarks", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdBookmarksResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/{id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Post delete by Post ID", + "description": "Delete specified Post (in the path) by ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id" + }, + "operationId": "deleteTweetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Post to be deleted.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Post lookup by Post ID", + "description": "Returns a variety of information about the Post specified by the requested ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id" + }, + "operationId": "findTweetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "A single Post ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "bookmark.write", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Bookmarks" - ], - "summary" : "Add Post to Bookmarks", - "description" : "Adds a Post (ID in the body) to the requesting User's (in the path) bookmarks", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks" }, - "operationId" : "postUsersIdBookmarks", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to add bookmarks.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BookmarkAddRequest" - } + "/2/tweets/{id}/liking_users": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "like.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Returns User objects that have liked the provided Post ID", + "description": "Returns a list of Users that have liked the provided Post ID", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-tweets-id-liking_users" + }, + "operationId": "tweetsIdLikingUsers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "A single Post ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsIdLikingUsersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - }, - "required" : true }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BookmarkMutationResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/{id}/quote_tweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Retrieve Posts that quote a Post.", + "description": "Returns a variety of information about each Post that quotes the Post specified by the requested ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets" + }, + "operationId": "findTweetsThatQuoteATweet", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "A single Post ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results to be returned.", + "required": false, + "schema": { + "type": "integer", + "minimum": 10, + "maximum": 100, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "exclude", + "in": "query", + "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required": false, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "replies", + "retweets" + ] + }, + "example": [ + "replies", + "retweets" + ] + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsIdQuoteTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/bookmarks/folders" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "bookmark.read", - "users.read" - ] - } - ], - "tags" : [ - "Bookmarks" - ], - "summary" : "Bookmark folders by User", - "description" : "Returns metadata about Bookmark folders that have been created by the requesting User", - "externalDocs" : { - "url" : "https://developer.x.com" }, - "operationId" : "getUsersIdBookmarkFolders", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BookmarkFoldersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/{id}/retweeted_by": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Returns User objects that have retweeted the provided Post ID", + "description": "Returns a list of Users that have retweeted the provided Post ID", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweeted_by" + }, + "operationId": "tweetsIdRetweetingUsers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "A single Post ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsIdRetweetedByResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/bookmarks/folders/{folder_id}" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "bookmark.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Bookmarks" - ], - "summary" : "Bookmark Folder Posts by User and Folder id", - "description" : "Returns posts belonging to input bookmarks folder id that have been created by the requesting User", - "externalDocs" : { - "url" : "https://developer.x.com" }, - "operationId" : "getUsersIdBookmarkFolderPosts", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "folder_id", - "in" : "path", - "description" : "The ID of the Bookmark Folder that the authenticated User is trying to fetch Posts for.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/BookmarkFolderId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BookmarkFolderPostsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/{id}/retweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Retrieve Posts that repost a Post.", + "description": "Returns a variety of information about each Post that has retweeted the Post specified by the requested ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets" + }, + "operationId": "findTweetsThatRetweetATweet", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "A single Post ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsIdRetweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/bookmarks/{tweet_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "bookmark.write", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Bookmarks" - ], - "summary" : "Remove a bookmarked Post", - "description" : "Removes a Post from the requesting User's bookmarked Posts.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id" }, - "operationId" : "usersIdBookmarksDelete", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User whose bookmark is to be removed.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "tweet_id", - "in" : "path", - "description" : "The ID of the Post that the source User is removing from bookmarks.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BookmarkMutationResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/tweets/{tweet_id}/hidden": { + "put": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.moderate.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Hide replies", + "description": "Hides or unhides a reply to an owned conversation.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden" + }, + "operationId": "hideReplyById", + "parameters": [ + { + "name": "tweet_id", + "in": "path", + "description": "The ID of the reply that you want to hide or unhide.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetHideRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetHideResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/dm/block" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Causes DMs to/from the target User (in the path) to be blocked by the authenticated request user", - "description" : "Causes DMs to/from the target User (in the path) to be blocked by the authenticated request user", - "externalDocs" : { - "url" : "https://developer.x.com/" }, - "operationId" : "usersIdDMBlock", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the target User that the authenticated user requesting to block dms for.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersDMBlockCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/usage/tweets": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Usage" + ], + "summary": "Post Usage", + "description": "Returns the Post Usage.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets" + }, + "operationId": "getUsageTweets", + "parameters": [ + { + "name": "days", + "in": "query", + "description": "The number of days for which you need usage for.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 90, + "format": "int32", + "default": 7 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UsageFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsageTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/dm/unblock" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Causes DMs to/from the target User (in the path) to be unblocked by the authenticated request user", - "description" : "Causes DMs to/from the target User (in the path) to be unblocked by the authenticated request user", - "externalDocs" : { - "url" : "https://developer.x.com/" }, - "operationId" : "usersIdDMUnBlock", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the target User that the authenticated user requesting to unblock dms for.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersDMUnBlockCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "User lookup by IDs", + "description": "This endpoint returns information about Users. Specify Users by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users" + }, + "operationId": "findUsersById", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "A list of User IDs, comma-separated. You can specify up to 100 IDs.", + "required": true, + "example": "2244994945,6253282,12", + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/followed_lists" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Get User's Followed Lists", - "description" : "Returns a User's followed Lists.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists" }, - "operationId" : "userFollowedLists", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/ListFieldsParameter" - }, - { - "$ref" : "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdFollowedListsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/by": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "User lookup by usernames", + "description": "This endpoint returns information about Users. Specify Users by their username.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by" + }, + "operationId": "findUsersByUsername", + "parameters": [ + { + "name": "usernames", + "in": "query", + "description": "A list of usernames, comma-separated.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "type": "string", + "description": "The X handle (screen name) of this User.", + "pattern": "^[A-Za-z0-9_]{1,15}$" + }, + "example": "TwitterDev,TwitterAPI" + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersByResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Follow a List", - "description" : "Causes a User to follow a List.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/post-users-id-followed-lists" }, - "operationId" : "listUserFollow", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that will follow the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListFollowedRequest" - } + "/2/users/by/username/{username}": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "User lookup by username", + "description": "This endpoint returns information about a User. Specify User by username.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username" + }, + "operationId": "findUserByUsername", + "parameters": [ + { + "name": "username", + "in": "path", + "description": "A username.", + "required": true, + "example": "TwitterDev", + "schema": { + "type": "string", + "pattern": "^[A-Za-z0-9_]{1,15}$" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersByUsernameUsernameResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListFollowedResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/compliance/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Compliance" + ], + "summary": "Users Compliance stream", + "description": "Streams 100% of compliance data for Users", + "operationId": "getUsersComplianceStream", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 4, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the User Compliance events will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the User Compliance events will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserComplianceStreamResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true } - } - } - } - }, - "/2/users/{id}/followed_lists/{list_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Unfollow a List", - "description" : "Causes a User to unfollow a List.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/delete-users-id-followed-lists-list_id" }, - "operationId" : "listUserUnfollow", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that will unfollow the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "list_id", - "in" : "path", - "description" : "The ID of the List to unfollow.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListFollowedResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/me": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "User lookup me", + "description": "This endpoint returns information about the requesting User.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me" + }, + "operationId": "findMyUser", + "parameters": [ + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersMeResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/followers" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "follows.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Followers by User ID", - "description" : "Returns a list of Users who are followers of the specified User ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" }, - "operationId" : "usersIdFollowers", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdFollowersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/personalized_trends": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Trends" + ], + "summary": "Get personalized Trends", + "description": "Returns Personalized trends for the authenticated user", + "externalDocs": { + "url": "https://developer.x.com/" + }, + "operationId": "personalizedTrends", + "parameters": [ + { + "$ref": "#/components/parameters/PersonalizedTrendFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersPersonalizedTrendsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/following" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "follows.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Following by User ID", - "description" : "Returns a list of Users that are being followed by the provided User ID", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following" }, - "operationId" : "usersIdFollowing", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdFollowingResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/reposts_of_me": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "timeline.read", + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Returns repost of user", + "description": "This endpoint returns reposts of the requesting User.", + "operationId": "listOfRepostOfUser", + "parameters": [ + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersRepostsOfMeResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "follows.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Follow User", - "description" : "Causes the User(in the path) to follow, or “request to follow” for protected Users, the target User. The User(in the path) must match the User context authorizing the request", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following" }, - "operationId" : "usersIdFollow", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to follow the target User.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersFollowingCreateRequest" - } + "/2/users/search": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "User search", + "description": "Returns Users that match a search query.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-search" + }, + "operationId": "searchUserByQuery", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "TThe the query string by which to query for users.", + "required": true, + "example": "someXUser", + "schema": { + "$ref": "#/components/schemas/UserSearchQueryVnext" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersSearchResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersFollowingCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "User lookup by ID", + "description": "This endpoint returns information about a User. Specify User by ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id" + }, + "operationId": "findUserById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/liked_tweets" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "like.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Returns Post objects liked by the provided User ID", - "description" : "Returns a list of Posts liked by the provided User ID", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets" }, - "operationId" : "usersIdLikedTweets", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 5, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdLikedTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/blocking": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "block.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Returns User objects that are blocked by provided User ID", + "description": "Returns a list of Users that are blocked by the provided User ID", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking" + }, + "operationId": "usersIdBlocking", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdBlockingResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/likes" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "like.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Causes the User (in the path) to like the specified Post", - "description" : "Causes the User (in the path) to like the specified Post. The User in the path must match the User context authorizing the request.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-id-likes" }, - "operationId" : "usersIdLike", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to like the Post.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersLikesCreateRequest" - } + "/2/users/{id}/bookmarks": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "bookmark.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Bookmarks" + ], + "summary": "Bookmarks by User", + "description": "Returns Post objects that have been bookmarked by the requesting User", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks" + }, + "operationId": "getUsersIdBookmarks", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdBookmarksResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "bookmark.write", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Bookmarks" + ], + "summary": "Add Post to Bookmarks", + "description": "Adds a Post (ID in the body) to the requesting User's (in the path) bookmarks", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks" + }, + "operationId": "postUsersIdBookmarks", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to add bookmarks.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookmarkAddRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookmarkMutationResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersLikesCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/bookmarks/folders": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "bookmark.read", + "users.read" + ] + } + ], + "tags": [ + "Bookmarks" + ], + "summary": "Bookmark folders by User", + "description": "Returns metadata about Bookmark folders that have been created by the requesting User", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "getUsersIdBookmarkFolders", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookmarkFoldersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/likes/{tweet_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "like.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Causes the User (in the path) to unlike the specified Post", - "description" : "Causes the User (in the path) to unlike the specified Post. The User must match the User context authorizing the request", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id" }, - "operationId" : "usersIdUnlike", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to unlike the Post.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "tweet_id", - "in" : "path", - "description" : "The ID of the Post that the User is requesting to unlike.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersLikesDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/bookmarks/folders/{folder_id}": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "bookmark.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Bookmarks" + ], + "summary": "Bookmark Folder Posts by User and Folder id", + "description": "Returns posts belonging to input bookmarks folder id that have been created by the requesting User", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "getUsersIdBookmarkFolderPosts", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "folder_id", + "in": "path", + "description": "The ID of the Bookmark Folder that the authenticated User is trying to fetch Posts for.", + "required": true, + "schema": { + "$ref": "#/components/schemas/BookmarkFolderId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookmarkFolderPostsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/list_memberships" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Get a User's List Memberships", - "description" : "Get a User's List Memberships.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" }, - "operationId" : "getUserListMemberships", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/ListFieldsParameter" - }, - { - "$ref" : "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdListMembershipsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/bookmarks/{tweet_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "bookmark.write", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Bookmarks" + ], + "summary": "Remove a bookmarked Post", + "description": "Removes a Post from the requesting User's bookmarked Posts.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id" + }, + "operationId": "usersIdBookmarksDelete", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User whose bookmark is to be removed.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "tweet_id", + "in": "path", + "description": "The ID of the Post that the source User is removing from bookmarks.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookmarkMutationResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/mentions" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "User mention timeline by User ID", - "description" : "Returns Post objects that mention username associated to the provided User ID", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions" }, - "operationId" : "usersIdMentions", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required" : false, - "example" : "1346889436626259968", - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 5, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdMentionsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/dm/block": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Causes DMs to/from the target User (in the path) to be blocked by the authenticated request user", + "description": "Causes DMs to/from the target User (in the path) to be blocked by the authenticated request user", + "externalDocs": { + "url": "https://developer.x.com/" + }, + "operationId": "usersIdDMBlock", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the target User that the authenticated user requesting to block dms for.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersDMBlockCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/muting" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "mute.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Returns User objects that are muted by the provided User ID", - "description" : "Returns a list of Users that are muted by the provided User ID", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting" }, - "operationId" : "usersIdMuting", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdMutingResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/dm/unblock": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Causes DMs to/from the target User (in the path) to be unblocked by the authenticated request user", + "description": "Causes DMs to/from the target User (in the path) to be unblocked by the authenticated request user", + "externalDocs": { + "url": "https://developer.x.com/" + }, + "operationId": "usersIdDMUnBlock", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the target User that the authenticated user requesting to unblock dms for.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersDMUnBlockCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "mute.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Mute User by User ID.", - "description" : "Causes the User (in the path) to mute the target User. The User (in the path) must match the User context authorizing the request.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting" }, - "operationId" : "usersIdMute", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to mute the target User.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MuteUserRequest" - } + "/2/users/{id}/followed_lists": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Get User's Followed Lists", + "description": "Returns a User's followed Lists.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists" + }, + "operationId": "userFollowedLists", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/ListFieldsParameter" + }, + { + "$ref": "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdFollowedListsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Follow a List", + "description": "Causes a User to follow a List.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/post-users-id-followed-lists" + }, + "operationId": "listUserFollow", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that will follow the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFollowedRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFollowedResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MuteUserMutationResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/followed_lists/{list_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Unfollow a List", + "description": "Causes a User to unfollow a List.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/delete-users-id-followed-lists-list_id" + }, + "operationId": "listUserUnfollow", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that will unfollow the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "list_id", + "in": "path", + "description": "The ID of the List to unfollow.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFollowedResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/owned_lists" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Get a User's Owned Lists.", - "description" : "Get a User's Owned Lists.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists" }, - "operationId" : "listUserOwnedLists", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/ListFieldsParameter" - }, - { - "$ref" : "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdOwnedListsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/followers": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "follows.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Followers by User ID", + "description": "Returns a list of Users who are followers of the specified User ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" + }, + "operationId": "usersIdFollowers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdFollowersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/pinned_lists" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Get a User's Pinned Lists", - "description" : "Get a User's Pinned Lists.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/get-users-id-pinned_lists" }, - "operationId" : "listUserPinnedLists", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/ListFieldsParameter" - }, - { - "$ref" : "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdPinnedListsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/following": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "follows.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Following by User ID", + "description": "Returns a list of Users that are being followed by the provided User ID", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following" + }, + "operationId": "usersIdFollowing", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdFollowingResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "follows.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Follow User", + "description": "Causes the User(in the path) to follow, or “request to follow” for protected Users, the target User. The User(in the path) must match the User context authorizing the request", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following" + }, + "operationId": "usersIdFollow", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to follow the target User.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersFollowingCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersFollowingCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Pin a List", - "description" : "Causes a User to pin a List.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/post-users-id-pinned-lists" }, - "operationId" : "listUserPin", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that will pin the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListPinnedRequest" - } + "/2/users/{id}/liked_tweets": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "like.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Returns Post objects liked by the provided User ID", + "description": "Returns a list of Posts liked by the provided User ID", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets" + }, + "operationId": "usersIdLikedTweets", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 5, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdLikedTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - }, - "required" : true }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListPinnedResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/pinned_lists/{list_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Unpin a List", - "description" : "Causes a User to remove a pinned List.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/delete-users-id-pinned-lists-list_id" - }, - "operationId" : "listUserUnpin", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "list_id", - "in" : "path", - "description" : "The ID of the List to unpin.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListUnpinResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/retweets" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Causes the User (in the path) to repost the specified Post.", - "description" : "Causes the User (in the path) to repost the specified Post. The User in the path must match the User context authorizing the request.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets" - }, - "operationId" : "usersIdRetweets", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to repost the Post.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersRetweetsCreateRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersRetweetsCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/retweets/{source_tweet_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Causes the User (in the path) to unretweet the specified Post", - "description" : "Causes the User (in the path) to unretweet the specified Post. The User must match the User context authorizing the request", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id" - }, - "operationId" : "usersIdUnretweets", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to repost the Post.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "source_tweet_id", - "in" : "path", - "description" : "The ID of the Post that the User is requesting to unretweet.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersRetweetsDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/timelines/reverse_chronological" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "User home timeline by User ID", - "description" : "Returns Post objects that appears in the provided User ID's home timeline", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological" - }, - "operationId" : "usersIdTimeline", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User to list Reverse Chronological Timeline Posts of.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required" : false, - "example" : "791775337160081409", - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required" : false, - "example" : "1346889436626259968", - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "exclude", - "in" : "query", - "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required" : false, - "schema" : { - "type" : "array", - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "replies", - "retweets" - ] - }, - "example" : [ - "replies", - "retweets" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdTimelinesReverseChronologicalResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/likes": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "like.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Causes the User (in the path) to like the specified Post", + "description": "Causes the User (in the path) to like the specified Post. The User in the path must match the User context authorizing the request.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-id-likes" + }, + "operationId": "usersIdLike", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to like the Post.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersLikesCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersLikesCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{id}/tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "User Posts timeline by User ID", - "description" : "Returns a list of Posts authored by the provided User ID", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets" }, - "operationId" : "usersIdTweets", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required" : false, - "example" : "791775337160081409", - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required" : false, - "example" : "1346889436626259968", - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 5, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "exclude", - "in" : "query", - "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required" : false, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "replies", - "retweets" - ] - }, - "example" : [ - "replies", - "retweets" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/likes/{tweet_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "like.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Causes the User (in the path) to unlike the specified Post", + "description": "Causes the User (in the path) to unlike the specified Post. The User must match the User context authorizing the request", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id" + }, + "operationId": "usersIdUnlike", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to unlike the Post.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "tweet_id", + "in": "path", + "description": "The ID of the Post that the User is requesting to unlike.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersLikesDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{source_user_id}/following/{target_user_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "follows.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Unfollow User", - "description" : "Causes the source User to unfollow the target User. The source User must match the User context authorizing the request", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following" }, - "operationId" : "usersIdUnfollow", - "parameters" : [ - { - "name" : "source_user_id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to unfollow the target User.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "target_user_id", - "in" : "path", - "description" : "The ID of the User that the source User is requesting to unfollow.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersFollowingDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/list_memberships": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Get a User's List Memberships", + "description": "Get a User's List Memberships.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" + }, + "operationId": "getUserListMemberships", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/ListFieldsParameter" + }, + { + "$ref": "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdListMembershipsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/users/{source_user_id}/muting/{target_user_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "mute.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Unmute User by User ID", - "description" : "Causes the source User to unmute the target User. The source User must match the User context authorizing the request", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting" }, - "operationId" : "usersIdUnmute", - "parameters" : [ - { - "name" : "source_user_id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to unmute the target User.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "target_user_id", - "in" : "path", - "description" : "The ID of the User that the source User is requesting to unmute.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MuteUserMutationResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/mentions": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "User mention timeline by User ID", + "description": "Returns Post objects that mention username associated to the provided User ID", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions" + }, + "operationId": "usersIdMentions", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "since_id", + "in": "query", + "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required": false, + "example": "1346889436626259968", + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 5, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdMentionsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/webhooks" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Webhooks" - ], - "summary" : "Get a list of webhook configs associated with a client app", - "description" : "Get a list of webhook configs associated with a client app.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/webhooks/introduction" }, - "operationId" : "getWebhooksConfig", - "parameters" : [ - { - "$ref" : "#/components/parameters/WebhookConfigFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2WebhooksResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/muting": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "mute.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Returns User objects that are muted by the provided User ID", + "description": "Returns a list of Users that are muted by the provided User ID", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting" + }, + "operationId": "usersIdMuting", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdMutingResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "mute.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Mute User by User ID.", + "description": "Causes the User (in the path) to mute the target User. The User (in the path) must match the User context authorizing the request.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting" + }, + "operationId": "usersIdMute", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to mute the target User.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MuteUserRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MuteUserMutationResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "post" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Webhooks" - ], - "summary" : "Create Webhook Config", - "description" : "Creates a new webhook config.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/webhooks/introduction" }, - "operationId" : "createWebhooksConfig", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigCreateRequest" - } + "/2/users/{id}/owned_lists": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Get a User's Owned Lists.", + "description": "Get a User's Owned Lists.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists" + }, + "operationId": "listUserOwnedLists", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/ListFieldsParameter" + }, + { + "$ref": "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdOwnedListsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/pinned_lists": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Get a User's Pinned Lists", + "description": "Get a User's Pinned Lists.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/get-users-id-pinned_lists" + }, + "operationId": "listUserPinnedLists", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/ListFieldsParameter" + }, + { + "$ref": "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdPinnedListsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Pin a List", + "description": "Causes a User to pin a List.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/post-users-id-pinned-lists" + }, + "operationId": "listUserPin", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that will pin the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListPinnedRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListPinnedResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - } - }, - "/2/webhooks/{webhook_id}" : { - "delete" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Webhooks" - ], - "summary" : "Delete Webhook Config", - "description" : "Deletes a webhook config.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/webhooks/introduction" }, - "operationId" : "deleteWebhooksConfig", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The ID of the webhook to delete.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } + "/2/users/{id}/pinned_lists/{list_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Unpin a List", + "description": "Causes a User to remove a pinned List.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/delete-users-id-pinned-lists-list_id" + }, + "operationId": "listUserUnpin", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "list_id", + "in": "path", + "description": "The ID of the List to unpin.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListUnpinResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "put" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Webhooks" - ], - "summary" : "Webhook CRC Check", - "description" : "Manually trigger a CRC check for a webhook.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/webhooks/introduction" }, - "operationId" : "putWebhooksConfig", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The ID of the webhook to check.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigPutResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - } - }, - "servers" : [ - { - "description" : "Twitter API", - "url" : "https://api.twitter.com" - } - ], - "tags" : [ - { - "name" : "Bookmarks", - "description" : "Endpoints related to retrieving, managing bookmarks of a user", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/bookmarks" - } - }, - { - "name" : "Compliance", - "description" : "Endpoints related to keeping X data in your systems compliant", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-tweet/introduction" - } - }, - { - "name" : "Direct Messages", - "description" : "Endpoints related to retrieving, managing Direct Messages", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/direct-messages" - } - }, - { - "name" : "General", - "description" : "Miscellaneous endpoints for general API functionality", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api" - } - }, - { - "name" : "Lists", - "description" : "Endpoints related to retrieving, managing Lists", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists" - } - }, - { - "name" : "Media", - "description" : "Endpoints related to Media", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.x.com" - } - }, - { - "name" : "MediaUpload", - "description" : "Endpoints related to uploading Media", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.x.com" - } - }, - { - "name" : "Spaces", - "description" : "Endpoints related to retrieving, managing Spaces", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces" - } - }, - { - "name" : "Tweets", - "description" : "Endpoints related to retrieving, searching, and modifying Tweets", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup" - } - }, - { - "name" : "Users", - "description" : "Endpoints related to retrieving, managing relationships of Users", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup" - } - } - ], - "components" : { - "securitySchemes" : { - "BearerToken" : { - "type" : "http", - "scheme" : "bearer" - }, - "OAuth2UserToken" : { - "type" : "oauth2", - "flows" : { - "authorizationCode" : { - "authorizationUrl" : "https://api.twitter.com/2/oauth2/authorize", - "tokenUrl" : "https://api.twitter.com/2/oauth2/token", - "scopes" : { - "block.read" : "Accounts you’ve blocked.", - "bookmark.read" : "Allows an app to read bookmarked Tweets", - "bookmark.write" : "Allows an app to create and delete bookmarks", - "dm.read" : "All your Direct Messages", - "dm.write" : "Send and manage Direct Messages for you", - "follows.read" : "People who follow you and people who you follow.", - "follows.write" : "Follow and unfollow people for you.", - "like.read" : "Tweets you’ve liked and likes you can view.", - "like.write" : "Like and un-like Tweets for you.", - "list.read" : "Lists, list members, and list followers of lists you’ve created or are a member of, including private lists.", - "list.write" : "Create and manage Lists for you.", - "media.write" : "Upload media like photos and videos for you.", - "mute.read" : "Accounts you’ve muted.", - "mute.write" : "Mute and unmute accounts for you.", - "offline.access" : "App can request refresh token.", - "space.read" : "Access all of the Spaces you can see.", - "timeline.read" : "All the Custom Timelines you can see, including public Custom Timelines from other developers.", - "tweet.moderate.write" : "Hide and unhide replies to your Tweets.", - "tweet.read" : "All the Tweets you can see, including Tweets from protected accounts.", - "tweet.write" : "Tweet and retweet for you.", - "users.read" : "Any account you can see, including protected accounts. Any account you can see, including protected accounts." - } - } - } - }, - "UserToken" : { - "type" : "http", - "scheme" : "OAuth" - } - }, - "schemas" : { - "AddOrDeleteRulesRequest" : { - "oneOf" : [ - { - "$ref" : "#/components/schemas/AddRulesRequest" - }, - { - "$ref" : "#/components/schemas/DeleteRulesRequest" - } - ] - }, - "AddOrDeleteRulesResponse" : { - "type" : "object", - "description" : "A response from modifying user-specified stream filtering rules.", - "required" : [ - "meta" - ], - "properties" : { - "data" : { - "type" : "array", - "description" : "All user-specified stream filtering rules that were created.", - "items" : { - "$ref" : "#/components/schemas/Rule" + "/2/users/{id}/retweets": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Causes the User (in the path) to repost the specified Post.", + "description": "Causes the User (in the path) to repost the specified Post. The User in the path must match the User context authorizing the request.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets" + }, + "operationId": "usersIdRetweets", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to repost the Post.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersRetweetsCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersRetweetsCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" + }, + "/2/users/{id}/retweets/{source_tweet_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Causes the User (in the path) to unretweet the specified Post", + "description": "Causes the User (in the path) to unretweet the specified Post. The User must match the User context authorizing the request", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id" + }, + "operationId": "usersIdUnretweets", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to repost the Post.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "source_tweet_id", + "in": "path", + "description": "The ID of the Post that the User is requesting to unretweet.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersRetweetsDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - }, - "meta" : { - "$ref" : "#/components/schemas/RulesResponseMetadata" - } - } - }, - "AddRulesRequest" : { - "type" : "object", - "description" : "A request to add a user-specified stream filtering rule.", - "required" : [ - "add" - ], - "properties" : { - "add" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/RuleNoId" + }, + "/2/users/{id}/timelines/reverse_chronological": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "User home timeline by User ID", + "description": "Returns Post objects that appears in the provided User ID's home timeline", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological" + }, + "operationId": "usersIdTimeline", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User to list Reverse Chronological Timeline Posts of.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "since_id", + "in": "query", + "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required": false, + "example": "791775337160081409", + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required": false, + "example": "1346889436626259968", + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "exclude", + "in": "query", + "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required": false, + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "replies", + "retweets" + ] + }, + "example": [ + "replies", + "retweets" + ] + }, + "explode": false, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdTimelinesReverseChronologicalResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "Aggregate" : { - "type" : "integer", - "description" : "The sum of results returned in this response.", - "format" : "int32" - }, - "AllProjectClientApps" : { - "type" : "array", - "description" : "Client App Rule Counts for all applications in the project", - "items" : { - "$ref" : "#/components/schemas/AppRulesCount" - } - }, - "AllowDownloadStatus" : { - "type" : "object", - "properties" : { - "allow_download" : { - "type" : "boolean", - "example" : true - } - } - }, - "AltText" : { - "type" : "object", - "properties" : { - "text" : { - "type" : "string", - "description" : "Description of media ( <= 1000 characters )", - "maxLength" : 1000, - "example" : "A dancing cat" - } - } - }, - "Analytics" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "timestamped_metrics" : { - "type" : "array", - "title" : "Timestamped Metrics", - "description" : "Array containing metrics data along with the timestamps of their recording.", - "items" : { - "$ref" : "#/components/schemas/TimestampedMetrics" - } - } + }, + "/2/users/{id}/tweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "User Posts timeline by User ID", + "description": "Returns a list of Posts authored by the provided User ID", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets" + }, + "operationId": "usersIdTweets", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "since_id", + "in": "query", + "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required": false, + "example": "791775337160081409", + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required": false, + "example": "1346889436626259968", + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 5, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "exclude", + "in": "query", + "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required": false, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "replies", + "retweets" + ] + }, + "example": [ + "replies", + "retweets" + ] + }, + "explode": false, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" + }, + "/2/users/{source_user_id}/following/{target_user_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "follows.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Unfollow User", + "description": "Causes the source User to unfollow the target User. The source User must match the User context authorizing the request", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following" + }, + "operationId": "usersIdUnfollow", + "parameters": [ + { + "name": "source_user_id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to unfollow the target User.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "target_user_id", + "in": "path", + "description": "The ID of the User that the source User is requesting to unfollow.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersFollowingDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "AnimatedGif" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/Media" - }, - { - "type" : "object", - "properties" : { - "preview_image_url" : { - "type" : "string", - "format" : "uri" - }, - "variants" : { - "$ref" : "#/components/schemas/Variants" - } + }, + "/2/users/{source_user_id}/muting/{target_user_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "mute.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Unmute User by User ID", + "description": "Causes the source User to unmute the target User. The source User must match the User context authorizing the request", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting" + }, + "operationId": "usersIdUnmute", + "parameters": [ + { + "name": "source_user_id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to unmute the target User.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "target_user_id", + "in": "path", + "description": "The ID of the User that the source User is requesting to unmute.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MuteUserMutationResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - ] - }, - "AppRulesCount" : { - "type" : "object", - "description" : "A count of user-provided stream filtering rules at the client application level.", - "properties" : { - "client_app_id" : { - "$ref" : "#/components/schemas/ClientAppId" - }, - "rule_count" : { - "type" : "integer", - "description" : "Number of rules for client application", - "format" : "int32" - } - } - }, - "AudiencePolicy" : { - "type" : "object", - "properties" : { - "creator_subscriptions" : { - "type" : "array", - "items" : { - "type" : "string", - "enum" : [ - "Any" - ] + }, + "/2/webhooks": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Webhooks" + ], + "summary": "Get a list of webhook configs associated with a client app", + "description": "Get a list of webhook configs associated with a client app.", + "externalDocs": { + "url": "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId": "getWebhooksConfig", + "parameters": [ + { + "$ref": "#/components/parameters/WebhookConfigFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2WebhooksResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "BearerToken": [] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Webhooks" + ], + "summary": "Create Webhook Config", + "description": "Creates a new webhook config.", + "externalDocs": { + "url": "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId": "createWebhooksConfig", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfigCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfigCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - }, - "x_subscriptions" : { - "type" : "array", - "items" : { - "type" : "string", - "enum" : [ - "Any" - ] + }, + "/2/webhooks/{webhook_id}": { + "delete": { + "security": [ + { + "BearerToken": [] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Webhooks" + ], + "summary": "Delete Webhook Config", + "description": "Deletes a webhook config.", + "externalDocs": { + "url": "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId": "deleteWebhooksConfig", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The ID of the webhook to delete.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfigDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "put": { + "security": [ + { + "BearerToken": [] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Webhooks" + ], + "summary": "Webhook CRC Check", + "description": "Manually trigger a CRC check for a webhook.", + "externalDocs": { + "url": "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId": "putWebhooksConfig", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The ID of the webhook to check.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfigPutResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } } - } - } - }, - "BookmarkAddRequest" : { - "type" : "object", - "required" : [ - "tweet_id" - ], - "properties" : { - "tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - } } - }, - "BookmarkFolderId" : { - "type" : "string", - "description" : "The unique identifier of this Bookmark folder.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "BookmarkFolderPostsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - } + }, + "servers": [ + { + "description": "Twitter API", + "url": "https://api.twitter.com" + } + ], + "tags": [ + { + "name": "Bookmarks", + "description": "Endpoints related to retrieving, managing bookmarks of a user", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/bookmarks" } - } - } - }, - "BookmarkFoldersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/BookmarkFolderId" - }, - "name" : { - "type" : "string" - } + }, + { + "name": "Compliance", + "description": "Endpoints related to keeping X data in your systems compliant", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-tweet/introduction" } - } - } - }, - "BookmarkMutationResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "bookmarked" : { - "type" : "boolean" - } + }, + { + "name": "Direct Messages", + "description": "Endpoints related to retrieving, managing Direct Messages", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/direct-messages" } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" + }, + { + "name": "General", + "description": "Miscellaneous endpoints for general API functionality", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api" } - } - } - }, - "CashtagEntity" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref" : "#/components/schemas/CashtagFields" - } - ] - }, - "CashtagFields" : { - "type" : "object", - "description" : "Represent the portion of text recognized as a Cashtag, and its start and end position within the text.", - "required" : [ - "tag" - ], - "properties" : { - "tag" : { - "type" : "string", - "example" : "TWTR" - } - } - }, - "ClientAppId" : { - "type" : "string", - "description" : "The ID of the client application", - "minLength" : 1, - "maxLength" : 19 - }, - "ClientAppUsage" : { - "type" : "object", - "description" : "Usage per client app", - "properties" : { - "client_app_id" : { - "type" : "string", - "description" : "The unique identifier for this project", - "format" : "^[0-9]{1,19}$" - }, - "usage" : { - "type" : "array", - "description" : "The usage value", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UsageFields" + }, + { + "name": "Lists", + "description": "Endpoints related to retrieving, managing Lists", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/lists" } - }, - "usage_result_count" : { - "type" : "integer", - "description" : "The number of results returned", - "format" : "int32" - } - } - }, - "ClientDisconnectedProblem" : { - "description" : "Your client has gone away.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "ClientForbiddenProblem" : { - "description" : "A problem that indicates your client is forbidden from making this request.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "reason" : { - "type" : "string", - "enum" : [ - "official-client-forbidden", - "client-not-enrolled" - ] - }, - "registration_url" : { - "type" : "string", - "format" : "uri" - } + }, + { + "name": "Media", + "description": "Endpoints related to Media", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.x.com" } - } - ] - }, - "Community" : { - "type" : "object", - "description" : "A X Community is a curated group of Posts.", - "required" : [ - "id", - "name" - ], - "properties" : { - "created_at" : { - "type" : "string", - "format" : "date-time" - }, - "id" : { - "$ref" : "#/components/schemas/CommunityId" - }, - "name" : { - "type" : "string", - "description" : "The name of this Community." - } - } - }, - "CommunityId" : { - "type" : "string", - "description" : "The unique identifier of this Community.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "ComplianceJob" : { - "type" : "object", - "required" : [ - "id", - "type", - "created_at", - "upload_url", - "download_url", - "upload_expires_at", - "download_expires_at", - "status" - ], - "properties" : { - "created_at" : { - "$ref" : "#/components/schemas/CreatedAt" - }, - "download_expires_at" : { - "$ref" : "#/components/schemas/DownloadExpiration" - }, - "download_url" : { - "$ref" : "#/components/schemas/DownloadUrl" - }, - "id" : { - "$ref" : "#/components/schemas/JobId" - }, - "name" : { - "$ref" : "#/components/schemas/ComplianceJobName" - }, - "status" : { - "$ref" : "#/components/schemas/ComplianceJobStatus" - }, - "type" : { - "$ref" : "#/components/schemas/ComplianceJobType" - }, - "upload_expires_at" : { - "$ref" : "#/components/schemas/UploadExpiration" - }, - "upload_url" : { - "$ref" : "#/components/schemas/UploadUrl" - } - } - }, - "ComplianceJobName" : { - "type" : "string", - "description" : "User-provided name for a compliance job.", - "maxLength" : 64, - "example" : "my-job" - }, - "ComplianceJobStatus" : { - "type" : "string", - "description" : "Status of a compliance job.", - "enum" : [ - "created", - "in_progress", - "failed", - "complete", - "expired" - ] - }, - "ComplianceJobType" : { - "type" : "string", - "description" : "Type of compliance job to list.", - "enum" : [ - "tweets", - "users" - ] - }, - "ConflictProblem" : { - "description" : "You cannot create a new job if one is already in progress.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "ConnectionExceptionProblem" : { - "description" : "A problem that indicates something is wrong with the connection.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "connection_issue" : { - "type" : "string", - "enum" : [ - "TooManyConnections", - "ProvisioningSubscription", - "RuleConfigurationIssue", - "RulesInvalidIssue" - ] - } + }, + { + "name": "MediaUpload", + "description": "Endpoints related to uploading Media", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.x.com" } - } - ] - }, - "ContentExpiration" : { - "type" : "object", - "properties" : { - "timestamp_sec" : { - "type" : "number", - "description" : "Expiration time for content as a Unix timestamp in seconds", - "format" : "long", - "example" : 1740787200 - } - } - }, - "ContextAnnotation" : { - "type" : "object", - "description" : "Annotation inferred from the Tweet text.", - "required" : [ - "domain", - "entity" - ], - "properties" : { - "domain" : { - "$ref" : "#/components/schemas/ContextAnnotationDomainFields" - }, - "entity" : { - "$ref" : "#/components/schemas/ContextAnnotationEntityFields" - } - } - }, - "ContextAnnotationDomainFields" : { - "type" : "object", - "description" : "Represents the data for the context annotation domain.", - "required" : [ - "id" - ], - "properties" : { - "description" : { - "type" : "string", - "description" : "Description of the context annotation domain." - }, - "id" : { - "type" : "string", - "description" : "The unique id for a context annotation domain.", - "pattern" : "^[0-9]{1,19}$" - }, - "name" : { - "type" : "string", - "description" : "Name of the context annotation domain." - } - } - }, - "ContextAnnotationEntityFields" : { - "type" : "object", - "description" : "Represents the data for the context annotation entity.", - "required" : [ - "id" - ], - "properties" : { - "description" : { - "type" : "string", - "description" : "Description of the context annotation entity." - }, - "id" : { - "type" : "string", - "description" : "The unique id for a context annotation entity.", - "pattern" : "^[0-9]{1,19}$" - }, - "name" : { - "type" : "string", - "description" : "Name of the context annotation entity." - } - } - }, - "CountryCode" : { - "type" : "string", - "description" : "A two-letter ISO 3166-1 alpha-2 country code.", - "pattern" : "^[A-Z]{2}$", - "example" : "US" - }, - "CreateAttachmentsMessageRequest" : { - "type" : "object", - "required" : [ - "attachments" - ], - "properties" : { - "attachments" : { - "$ref" : "#/components/schemas/DmAttachments" - }, - "text" : { - "type" : "string", - "description" : "Text of the message.", - "minLength" : 1 - } - } - }, - "CreateComplianceJobRequest" : { - "type" : "object", - "description" : "A request to create a new batch compliance job.", - "required" : [ - "type" - ], - "properties" : { - "name" : { - "$ref" : "#/components/schemas/ComplianceJobName" - }, - "resumable" : { - "type" : "boolean", - "description" : "If true, this endpoint will return a pre-signed URL with resumable uploads enabled." - }, - "type" : { - "type" : "string", - "description" : "Type of compliance job to list.", - "enum" : [ - "tweets", - "users" - ] - } - } - }, - "CreateComplianceJobResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/ComplianceJob" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" + }, + { + "name": "Spaces", + "description": "Endpoints related to retrieving, managing Spaces", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces" } - } - } - }, - "CreateDmConversationRequest" : { - "type" : "object", - "required" : [ - "conversation_type", - "participant_ids", - "message" - ], - "properties" : { - "conversation_type" : { - "type" : "string", - "description" : "The conversation type that is being created.", - "enum" : [ - "Group" - ] - }, - "message" : { - "$ref" : "#/components/schemas/CreateMessageRequest" - }, - "participant_ids" : { - "$ref" : "#/components/schemas/DmParticipants" - } }, - "additionalProperties" : false - }, - "CreateDmEventResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "dm_conversation_id", - "dm_event_id" - ], - "properties" : { - "dm_conversation_id" : { - "$ref" : "#/components/schemas/DmConversationId" - }, - "dm_event_id" : { - "$ref" : "#/components/schemas/DmEventId" - } + { + "name": "Tweets", + "description": "Endpoints related to retrieving, searching, and modifying Tweets", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup" } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "CreateMessageRequest" : { - "anyOf" : [ - { - "$ref" : "#/components/schemas/CreateTextMessageRequest" - }, - { - "$ref" : "#/components/schemas/CreateAttachmentsMessageRequest" - } - ] - }, - "CreateTextMessageRequest" : { - "type" : "object", - "required" : [ - "text" - ], - "properties" : { - "attachments" : { - "$ref" : "#/components/schemas/DmAttachments" - }, - "text" : { - "type" : "string", - "description" : "Text of the message.", - "minLength" : 1 - } - } - }, - "CreatedAt" : { - "type" : "string", - "description" : "Creation time of the compliance job.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "DeleteDmResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "deleted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "DeleteRulesRequest" : { - "type" : "object", - "description" : "A response from deleting user-specified stream filtering rules.", - "required" : [ - "delete" - ], - "properties" : { - "delete" : { - "type" : "object", - "description" : "IDs and values of all deleted user-specified stream filtering rules.", - "properties" : { - "ids" : { - "type" : "array", - "description" : "IDs of all deleted user-specified stream filtering rules.", - "items" : { - "$ref" : "#/components/schemas/RuleId" - } - }, - "values" : { - "type" : "array", - "description" : "Values of all deleted user-specified stream filtering rules.", - "items" : { - "$ref" : "#/components/schemas/RuleValue" - } - } + }, + { + "name": "Users", + "description": "Endpoints related to retrieving, managing relationships of Users", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup" + } + } + ], + "components": { + "securitySchemes": { + "BearerToken": { + "type": "http", + "scheme": "bearer" + }, + "OAuth2UserToken": { + "type": "oauth2", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://api.twitter.com/2/oauth2/authorize", + "tokenUrl": "https://api.twitter.com/2/oauth2/token", + "scopes": { + "block.read": "Accounts you’ve blocked.", + "bookmark.read": "Allows an app to read bookmarked Tweets", + "bookmark.write": "Allows an app to create and delete bookmarks", + "dm.read": "All your Direct Messages", + "dm.write": "Send and manage Direct Messages for you", + "follows.read": "People who follow you and people who you follow.", + "follows.write": "Follow and unfollow people for you.", + "like.read": "Tweets you’ve liked and likes you can view.", + "like.write": "Like and un-like Tweets for you.", + "list.read": "Lists, list members, and list followers of lists you’ve created or are a member of, including private lists.", + "list.write": "Create and manage Lists for you.", + "media.write": "Upload media like photos and videos for you.", + "mute.read": "Accounts you’ve muted.", + "mute.write": "Mute and unmute accounts for you.", + "offline.access": "App can request refresh token.", + "space.read": "Access all of the Spaces you can see.", + "timeline.read": "All the Custom Timelines you can see, including public Custom Timelines from other developers.", + "tweet.moderate.write": "Hide and unhide replies to your Tweets.", + "tweet.read": "All the Tweets you can see, including Tweets from protected accounts.", + "tweet.write": "Tweet and retweet for you.", + "users.read": "Any account you can see, including protected accounts. Any account you can see, including protected accounts." + } + } + } + }, + "UserToken": { + "type": "http", + "scheme": "OAuth" } - } - } - }, - "DisallowedResourceProblem" : { - "description" : "A problem that indicates that the resource requested violates the precepts of this API.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "required" : [ - "resource_id", - "resource_type", - "section" - ], - "properties" : { - "resource_id" : { - "type" : "string" - }, - "resource_type" : { - "type" : "string", - "enum" : [ - "user", - "tweet", - "media", - "list", - "space" + }, + "schemas": { + "AddOrDeleteRulesRequest": { + "oneOf": [ + { + "$ref": "#/components/schemas/AddRulesRequest" + }, + { + "$ref": "#/components/schemas/DeleteRulesRequest" + } ] - }, - "section" : { - "type" : "string", - "enum" : [ - "data", - "includes" + }, + "AddOrDeleteRulesResponse": { + "type": "object", + "description": "A response from modifying user-specified stream filtering rules.", + "required": [ + "meta" + ], + "properties": { + "data": { + "type": "array", + "description": "All user-specified stream filtering rules that were created.", + "items": { + "$ref": "#/components/schemas/Rule" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "$ref": "#/components/schemas/RulesResponseMetadata" + } + } + }, + "AddRulesRequest": { + "type": "object", + "description": "A request to add a user-specified stream filtering rule.", + "required": [ + "add" + ], + "properties": { + "add": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RuleNoId" + } + } + } + }, + "Aggregate": { + "type": "integer", + "description": "The sum of results returned in this response.", + "format": "int32" + }, + "AllProjectClientApps": { + "type": "array", + "description": "Client App Rule Counts for all applications in the project", + "items": { + "$ref": "#/components/schemas/AppRulesCount" + } + }, + "AllowDownloadStatus": { + "type": "object", + "properties": { + "allow_download": { + "type": "boolean", + "example": true + } + } + }, + "AltText": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "Description of media ( <= 1000 characters )", + "maxLength": 1000, + "example": "A dancing cat" + } + } + }, + "Analytics": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "timestamped_metrics": { + "type": "array", + "title": "Timestamped Metrics", + "description": "Array containing metrics data along with the timestamps of their recording.", + "items": { + "$ref": "#/components/schemas/TimestampedMetrics" + } + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "AnimatedGif": { + "allOf": [ + { + "$ref": "#/components/schemas/Media" + }, + { + "type": "object", + "properties": { + "preview_image_url": { + "type": "string", + "format": "uri" + }, + "variants": { + "$ref": "#/components/schemas/Variants" + } + } + } ] - } - } - } - ] - }, - "DisplayTextRange" : { - "type" : "array", - "description" : "Represent a boundary range (start and end zero-based indices) for the portion of text that is displayed for a post. `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", - "minItems" : 2, - "maxItems" : 2, - "items" : { - "type" : "integer", - "minimum" : 0 - } - }, - "DmAttachments" : { - "type" : "array", - "description" : "Attachments to a DM Event.", - "items" : { - "$ref" : "#/components/schemas/DmMediaAttachment" - } - }, - "DmConversationId" : { - "type" : "string", - "description" : "Unique identifier of a DM conversation. This can either be a numeric string, or a pair of numeric strings separated by a '-' character in the case of one-on-one DM Conversations.", - "pattern" : "^([0-9]{1,19}-[0-9]{1,19}|[0-9]{15,19})$", - "example" : "123123123-456456456" - }, - "DmEvent" : { - "type" : "object", - "required" : [ - "id", - "event_type" - ], - "properties" : { - "attachments" : { - "type" : "object", - "description" : "Specifies the type of attachments (if any) present in this DM.", - "properties" : { - "card_ids" : { - "type" : "array", - "description" : "A list of card IDs (if cards are attached).", - "minItems" : 1, - "items" : { - "type" : "string" - } - }, - "media_keys" : { - "type" : "array", - "description" : "A list of Media Keys for each one of the media attachments (if media are attached).", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/MediaKey" - } - } - } - }, - "cashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/CashtagEntity" - } - }, - "created_at" : { - "type" : "string", - "format" : "date-time" - }, - "dm_conversation_id" : { - "$ref" : "#/components/schemas/DmConversationId" - }, - "event_type" : { - "type" : "string", - "example" : "MessageCreate" - }, - "hashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/HashtagEntity" - } - }, - "id" : { - "$ref" : "#/components/schemas/DmEventId" - }, - "mentions" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/MentionEntity" - } - }, - "participant_ids" : { - "type" : "array", - "description" : "A list of participants for a ParticipantsJoin or ParticipantsLeave event_type.", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "referenced_tweets" : { - "type" : "array", - "description" : "A list of Posts this DM refers to.", - "minItems" : 1, - "items" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - } - }, - "sender_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "text" : { - "type" : "string" - }, - "urls" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UrlEntityDm" - } - } - } - }, - "DmEventId" : { - "type" : "string", - "description" : "Unique identifier of a DM Event.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "DmMediaAttachment" : { - "type" : "object", - "required" : [ - "media_id" - ], - "properties" : { - "media_id" : { - "$ref" : "#/components/schemas/MediaId" - } - } - }, - "DmParticipants" : { - "type" : "array", - "description" : "Participants for the DM Conversation.", - "minItems" : 2, - "maxItems" : 49, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "DomainRestrictions" : { - "type" : "object", - "properties" : { - "whitelist" : { - "type" : "array", - "description" : "List of whitelisted domains", - "items" : { - "type" : "string" - } - } - } - }, - "DownloadExpiration" : { - "type" : "string", - "description" : "Expiration time of the download URL.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "DownloadUrl" : { - "type" : "string", - "description" : "URL from which the user will retrieve their compliance results.", - "format" : "uri" - }, - "DuplicateRuleProblem" : { - "description" : "The rule you have submitted is a duplicate.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "id" : { - "type" : "string" - }, - "value" : { - "type" : "string" - } - } - } - ] - }, - "End" : { - "type" : "string", - "description" : "The end time of the bucket.", - "format" : "date-time" - }, - "Engagement" : { - "type" : "object", - "description" : "An Engagement Api Response.", - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "type" : "object", - "properties" : { - "error" : { - "type" : "string" - }, - "tweets" : { - "type" : "array", - "items" : { - "type" : "string" - } + }, + "AppRulesCount": { + "type": "object", + "description": "A count of user-provided stream filtering rules at the client application level.", + "properties": { + "client_app_id": { + "$ref": "#/components/schemas/ClientAppId" + }, + "rule_count": { + "type": "integer", + "description": "Number of rules for client application", + "format": "int32" + } } - } - } - }, - "measurement" : { - "type" : "object", - "properties" : { - "metrics_time_series" : { - "type" : "array", - "minItems" : 1, - "items" : { - "type" : "object", - "properties" : { - "tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "value" : { - "type" : "object", - "properties" : { - "metric_values" : { - "type" : "array", - "items" : { - "type" : "object", - "properties" : { - "metric_type" : { - "type" : "string" - }, - "metric_value" : { - "type" : "number" - } - } - } - }, - "timestamp" : { - "type" : "object", - "properties" : { - "iso8601_time" : { - "type" : "string" - } - } - } - } - } - } - } - }, - "metrics_total" : { - "type" : "array", - "minItems" : 1, - "items" : { - "type" : "object", - "properties" : { - "tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "value" : { - "type" : "array", - "minItems" : 1, - "items" : { - "type" : "object", - "properties" : { - "metric_type" : { - "type" : "string" - }, - "metric_value" : { - "type" : "number" - } - } - } - } - } - } - } - } - } - } - }, - "EntityIndicesInclusiveExclusive" : { - "type" : "object", - "description" : "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", - "required" : [ - "start", - "end" - ], - "properties" : { - "end" : { - "type" : "integer", - "description" : "Index (zero-based) at which position this entity ends. The index is exclusive.", - "minimum" : 0, - "example" : 61 - }, - "start" : { - "type" : "integer", - "description" : "Index (zero-based) at which position this entity starts. The index is inclusive.", - "minimum" : 0, - "example" : 50 - } - } - }, - "EntityIndicesInclusiveInclusive" : { - "type" : "object", - "description" : "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is inclusive.", - "required" : [ - "start", - "end" - ], - "properties" : { - "end" : { - "type" : "integer", - "description" : "Index (zero-based) at which position this entity ends. The index is inclusive.", - "minimum" : 0, - "example" : 61 - }, - "start" : { - "type" : "integer", - "description" : "Index (zero-based) at which position this entity starts. The index is inclusive.", - "minimum" : 0, - "example" : 50 - } - } - }, - "Error" : { - "type" : "object", - "required" : [ - "code", - "message" - ], - "properties" : { - "code" : { - "type" : "integer", - "format" : "int32" - }, - "message" : { - "type" : "string" - } - } - }, - "Expansions" : { - "type" : "object", - "properties" : { - "media" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Media" - } - }, - "places" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Place" - } - }, - "polls" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Poll" - } - }, - "topics" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Topic" - } - }, - "tweets" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "users" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - } - } - }, - "FieldUnauthorizedProblem" : { - "description" : "A problem that indicates that you are not allowed to see a particular field on a Tweet, User, etc.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "required" : [ - "resource_type", - "field", - "section" - ], - "properties" : { - "field" : { - "type" : "string" - }, - "resource_type" : { - "type" : "string", - "enum" : [ - "user", - "tweet", - "media", - "list", - "space" + }, + "AudiencePolicy": { + "type": "object", + "properties": { + "creator_subscriptions": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Any" + ] + } + }, + "x_subscriptions": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Any" + ] + } + } + } + }, + "BookmarkAddRequest": { + "type": "object", + "required": [ + "tweet_id" + ], + "properties": { + "tweet_id": { + "$ref": "#/components/schemas/TweetId" + } + } + }, + "BookmarkFolderId": { + "type": "string", + "description": "The unique identifier of this Bookmark folder.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "BookmarkFolderPostsResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + } + }, + "BookmarkFoldersResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/BookmarkFolderId" + }, + "name": { + "type": "string" + } + } + } + } + }, + "BookmarkMutationResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "bookmarked": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "CashtagEntity": { + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref": "#/components/schemas/CashtagFields" + } ] - }, - "section" : { - "type" : "string", - "enum" : [ - "data", - "includes" + }, + "CashtagFields": { + "type": "object", + "description": "Represent the portion of text recognized as a Cashtag, and its start and end position within the text.", + "required": [ + "tag" + ], + "properties": { + "tag": { + "type": "string", + "example": "TWTR" + } + } + }, + "ClientAppId": { + "type": "string", + "description": "The ID of the client application", + "minLength": 1, + "maxLength": 19 + }, + "ClientAppUsage": { + "type": "object", + "description": "Usage per client app", + "properties": { + "client_app_id": { + "type": "string", + "description": "The unique identifier for this project", + "format": "^[0-9]{1,19}$" + }, + "usage": { + "type": "array", + "description": "The usage value", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UsageFields" + } + }, + "usage_result_count": { + "type": "integer", + "description": "The number of results returned", + "format": "int32" + } + } + }, + "ClientDisconnectedProblem": { + "description": "Your client has gone away.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } ] - } - } - } - ] - }, - "FilteredStreamingTweetResponse" : { - "type" : "object", - "description" : "A Tweet or error that can be returned by the streaming Tweet API. The values returned with a successful streamed Tweet includes the user provided rules that the Tweet matched.", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "matching_rules" : { - "type" : "array", - "description" : "The list of rules which matched the Tweet", - "items" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/RuleId" + }, + "ClientForbiddenProblem": { + "description": "A problem that indicates your client is forbidden from making this request.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "reason": { + "type": "string", + "enum": [ + "official-client-forbidden", + "client-not-enrolled" + ] + }, + "registration_url": { + "type": "string", + "format": "uri" + } + } + } + ] + }, + "Community": { + "type": "object", + "description": "A X Community is a curated group of Posts.", + "required": [ + "id", + "name" + ], + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "$ref": "#/components/schemas/CommunityId" + }, + "name": { + "type": "string", + "description": "The name of this Community." + } + } + }, + "CommunityId": { + "type": "string", + "description": "The unique identifier of this Community.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "ComplianceJob": { + "type": "object", + "required": [ + "id", + "type", + "created_at", + "upload_url", + "download_url", + "upload_expires_at", + "download_expires_at", + "status" + ], + "properties": { + "created_at": { + "$ref": "#/components/schemas/CreatedAt" + }, + "download_expires_at": { + "$ref": "#/components/schemas/DownloadExpiration" + }, + "download_url": { + "$ref": "#/components/schemas/DownloadUrl" + }, + "id": { + "$ref": "#/components/schemas/JobId" + }, + "name": { + "$ref": "#/components/schemas/ComplianceJobName" + }, + "status": { + "$ref": "#/components/schemas/ComplianceJobStatus" + }, + "type": { + "$ref": "#/components/schemas/ComplianceJobType" + }, + "upload_expires_at": { + "$ref": "#/components/schemas/UploadExpiration" + }, + "upload_url": { + "$ref": "#/components/schemas/UploadUrl" + } + } + }, + "ComplianceJobName": { + "type": "string", + "description": "User-provided name for a compliance job.", + "maxLength": 64, + "example": "my-job" + }, + "ComplianceJobStatus": { + "type": "string", + "description": "Status of a compliance job.", + "enum": [ + "created", + "in_progress", + "failed", + "complete", + "expired" + ] + }, + "ComplianceJobType": { + "type": "string", + "description": "Type of compliance job to list.", + "enum": [ + "tweets", + "users" + ] + }, + "ConflictProblem": { + "description": "You cannot create a new job if one is already in progress.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "ConnectionExceptionProblem": { + "description": "A problem that indicates something is wrong with the connection.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "connection_issue": { + "type": "string", + "enum": [ + "TooManyConnections", + "ProvisioningSubscription", + "RuleConfigurationIssue", + "RulesInvalidIssue" + ] + } + } + } + ] + }, + "ContentExpiration": { + "type": "object", + "properties": { + "timestamp_sec": { + "type": "number", + "description": "Expiration time for content as a Unix timestamp in seconds", + "format": "long", + "example": 1740787200 + } + } + }, + "ContextAnnotation": { + "type": "object", + "description": "Annotation inferred from the Tweet text.", + "required": [ + "domain", + "entity" + ], + "properties": { + "domain": { + "$ref": "#/components/schemas/ContextAnnotationDomainFields" + }, + "entity": { + "$ref": "#/components/schemas/ContextAnnotationEntityFields" + } + } + }, + "ContextAnnotationDomainFields": { + "type": "object", + "description": "Represents the data for the context annotation domain.", + "required": [ + "id" + ], + "properties": { + "description": { + "type": "string", + "description": "Description of the context annotation domain." + }, + "id": { + "type": "string", + "description": "The unique id for a context annotation domain.", + "pattern": "^[0-9]{1,19}$" + }, + "name": { + "type": "string", + "description": "Name of the context annotation domain." + } + } + }, + "ContextAnnotationEntityFields": { + "type": "object", + "description": "Represents the data for the context annotation entity.", + "required": [ + "id" + ], + "properties": { + "description": { + "type": "string", + "description": "Description of the context annotation entity." + }, + "id": { + "type": "string", + "description": "The unique id for a context annotation entity.", + "pattern": "^[0-9]{1,19}$" + }, + "name": { + "type": "string", + "description": "Name of the context annotation entity." + } + } + }, + "CountryCode": { + "type": "string", + "description": "A two-letter ISO 3166-1 alpha-2 country code.", + "pattern": "^[A-Z]{2}$", + "example": "US" + }, + "CreateAttachmentsMessageRequest": { + "type": "object", + "required": [ + "attachments" + ], + "properties": { + "attachments": { + "$ref": "#/components/schemas/DmAttachments" + }, + "text": { + "type": "string", + "description": "Text of the message.", + "minLength": 1 + } + } + }, + "CreateComplianceJobRequest": { + "type": "object", + "description": "A request to create a new batch compliance job.", + "required": [ + "type" + ], + "properties": { + "name": { + "$ref": "#/components/schemas/ComplianceJobName" + }, + "resumable": { + "type": "boolean", + "description": "If true, this endpoint will return a pre-signed URL with resumable uploads enabled." + }, + "type": { + "type": "string", + "description": "Type of compliance job to list.", + "enum": [ + "tweets", + "users" + ] + } + } + }, + "CreateComplianceJobResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ComplianceJob" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "CreateDmConversationRequest": { + "type": "object", + "required": [ + "conversation_type", + "participant_ids", + "message" + ], + "properties": { + "conversation_type": { + "type": "string", + "description": "The conversation type that is being created.", + "enum": [ + "Group" + ] + }, + "message": { + "$ref": "#/components/schemas/CreateMessageRequest" + }, + "participant_ids": { + "$ref": "#/components/schemas/DmParticipants" + } }, - "tag" : { - "$ref" : "#/components/schemas/RuleTag" + "additionalProperties": false + }, + "CreateDmEventResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "dm_conversation_id", + "dm_event_id" + ], + "properties": { + "dm_conversation_id": { + "$ref": "#/components/schemas/DmConversationId" + }, + "dm_event_id": { + "$ref": "#/components/schemas/DmEventId" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } } - } - } - } - } - }, - "FoundMediaOrigin" : { - "type" : "object", - "properties" : { - "id" : { - "type" : "string", - "description" : "Unique Identifier of media within provider ( <= 24 characters ))", - "example" : "u5BzatR15TZ04" - }, - "provider" : { - "type" : "string", - "description" : "The media provider (e.g., 'giphy') that sourced the media ( <= 8 Characters )", - "example" : "giphy" - } - } - }, - "FullTextEntities" : { - "type" : "object", - "properties" : { - "annotations" : { - "type" : "array", - "minItems" : 1, - "items" : { - "description" : "Annotation for entities based on the Tweet text.", - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveInclusive" + }, + "CreateMessageRequest": { + "anyOf": [ + { + "$ref": "#/components/schemas/CreateTextMessageRequest" + }, + { + "$ref": "#/components/schemas/CreateAttachmentsMessageRequest" + } + ] + }, + "CreateNoteRequest": { + "type": "object", + "title": "Note", + "required": [ + "test_mode", + "post_id", + "info" + ], + "properties": { + "info": { + "$ref": "#/components/schemas/NoteInfo" + }, + "post_id": { + "$ref": "#/components/schemas/TweetId" + }, + "test_mode": { + "type": "boolean", + "description": "If true, the note being submitted is only for testing the capability of the bot, and won't be publicly visible. If false, the note being submitted will be a new proposed note on the product." + } }, - { - "type" : "object", - "description" : "Represents the data for the annotation.", - "properties" : { - "normalized_text" : { - "type" : "string", - "description" : "Text used to determine annotation.", - "example" : "Barack Obama" - }, - "probability" : { - "type" : "number", - "description" : "Confidence factor for annotation type.", - "minimum" : 0, - "maximum" : 1, - "format" : "double" - }, - "type" : { - "type" : "string", - "description" : "Annotation type.", - "example" : "Person" - } - } - } - ] - } - }, - "cashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/CashtagEntity" - } - }, - "hashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/HashtagEntity" - } - }, - "mentions" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/MentionEntity" - } - }, - "urls" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UrlEntity" - } - } - } - }, - "GenericProblem" : { - "description" : "A generic problem with no additional information beyond that provided by the HTTP status code.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "Geo" : { - "type" : "object", - "required" : [ - "type", - "bbox", - "properties" - ], - "properties" : { - "bbox" : { - "type" : "array", - "minItems" : 4, - "maxItems" : 4, - "items" : { - "type" : "number", - "minimum" : -180, - "maximum" : 180, - "format" : "double" - }, - "example" : [ - -105.193475, - 39.60973, - -105.053164, - 39.761974 - ] - }, - "geometry" : { - "$ref" : "#/components/schemas/Point" - }, - "properties" : { - "type" : "object" - }, - "type" : { - "type" : "string", - "enum" : [ - "Feature" - ] - } - } - }, - "GeoRestrictions" : { - "oneOf" : [ - { - "type" : "object", - "required" : [ - "whitelisted_country_codes", - "blacklisted_country_codes" - ], - "properties" : { - "blacklisted_country_codes" : { - "type" : "array", - "description" : "List of blacklisted country codes", - "minItems" : 0, - "maxItems" : 0, - "items" : { - "type" : "string", - "description" : "Country code in ISO 3166-1 alpha-2 format", - "pattern" : "^[a-zA-Z]{2}$", - "example" : "us" - } - }, - "whitelisted_country_codes" : { - "type" : "array", - "description" : "List of whitelisted country codes", - "minItems" : 1, - "items" : { - "type" : "string", - "description" : "Country code in ISO 3166-1 alpha-2 format", - "pattern" : "^[a-zA-Z]{2}$", - "example" : "us" - } - } - } - }, - { - "type" : "object", - "required" : [ - "whitelisted_country_codes", - "blacklisted_country_codes" - ], - "properties" : { - "blacklisted_country_codes" : { - "type" : "array", - "description" : "List of blacklisted country codes", - "minItems" : 1, - "items" : { - "type" : "string", - "description" : "Country code in ISO 3166-1 alpha-2 format", - "pattern" : "^[a-zA-Z]{2}$", - "example" : "us" - } - }, - "whitelisted_country_codes" : { - "type" : "array", - "description" : "List of whitelisted country codes", - "minItems" : 0, - "maxItems" : 0, - "items" : { - "type" : "string", - "description" : "Country code in ISO 3166-1 alpha-2 format", - "pattern" : "^[a-zA-Z]{2}$", - "example" : "us" - } - } - } - } - ] - }, - "Get2CommunitiesIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Community" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2CommunitiesSearchResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Community" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - } - } - } - } - }, - "Get2ComplianceJobsIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/ComplianceJob" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2ComplianceJobsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/ComplianceJob" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmConversationsIdDmEventsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/DmEvent" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmConversationsWithParticipantIdDmEventsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/DmEvent" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmEventsEventIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/DmEvent" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2DmEventsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/DmEvent" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2FdxAccountsAccountidContactResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/PlaidAccountContact" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidPayment-networksResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/PlaidAccountPaymentNetwork" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/PlaidAccount" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidTransactionsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/PlaidAccountTransaction" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxCustomersCurrentResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/PlaidCustomer" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2Insights28hrResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Engagement" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2InsightsHistoricalResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Engagement" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2LikesFirehoseStreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/LikeWithTweetAuthor" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2LikesSample10StreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/LikeWithTweetAuthor" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2ListsIdFollowersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2ListsIdMembersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2ListsIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/List" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2ListsIdTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2MediaAnalyticsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/MediaAnalytics" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2MediaMediaKeyResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Media" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2MediaResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Media" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2NotesSearchNotesWrittenResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Note" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2NotesSearchPostsEligibleForNotesResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesByCreatorIdsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Space" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesIdBuyersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Space" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2SpacesIdTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Space" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2SpacesSearchResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Space" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TrendsByWoeidWoeidResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Trend" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2TweetsAnalyticsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Analytics" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2TweetsCountsAllResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/SearchCount" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "total_tweet_count" : { - "$ref" : "#/components/schemas/Aggregate" - } - } - } - } - }, - "Get2TweetsCountsRecentResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/SearchCount" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "total_tweet_count" : { - "$ref" : "#/components/schemas/Aggregate" - } - } - } - } - }, - "Get2TweetsFirehoseStreamLangEnResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangJaResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangKoResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangPtResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsIdLikingUsersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdQuoteTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsIdRetweetedByResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdRetweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSample10StreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSampleStreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSearchAllResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsSearchRecentResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsSearchStreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSearchStreamRulesCountsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/RulesCount" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2UsageTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Usage" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2UsersByResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2UsersByUsernameUsernameResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/User" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2UsersIdBlockingResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdBookmarksResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowedListsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/List" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowingResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdLikedTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdListMembershipsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/List" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdMentionsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdMutingResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdOwnedListsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/List" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdPinnedListsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/List" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/User" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2UsersIdTimelinesReverseChronologicalResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersMeResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/User" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2UsersPersonalizedTrendsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/PersonalizedTrend" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2UsersRepostsOfMeResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2UsersSearchResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - } - } - } - } - }, - "Get2WebhooksResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/WebhookConfig" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "HashtagEntity" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref" : "#/components/schemas/HashtagFields" - } - ] - }, - "HashtagFields" : { - "type" : "object", - "description" : "Represent the portion of text recognized as a Hashtag, and its start and end position within the text.", - "required" : [ - "tag" - ], - "properties" : { - "tag" : { - "type" : "string", - "description" : "The text of the Hashtag.", - "example" : "MondayMotivation" - } - } - }, - "HttpStatusCode" : { - "type" : "integer", - "description" : "HTTP Status Code.", - "minimum" : 100, - "maximum" : 599 - }, - "InvalidRequestProblem" : { - "description" : "A problem that indicates this request is invalid.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "type" : "object", - "properties" : { - "message" : { - "type" : "string" - }, - "parameters" : { - "type" : "object", - "additionalProperties" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - } - } - } - } - } - } - ] - }, - "InvalidRuleProblem" : { - "description" : "The rule you have submitted is invalid.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "JobId" : { - "type" : "string", - "description" : "Compliance Job ID.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1372966999991541762" - }, - "KillAllConnectionsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "killed_connections" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "LikeComplianceSchema" : { - "type" : "object", - "required" : [ - "delete" - ], - "properties" : { - "delete" : { - "$ref" : "#/components/schemas/UnlikeComplianceSchema" - } - } - }, - "LikeId" : { - "type" : "string", - "description" : "The unique identifier of this Like.", - "pattern" : "^[A-Za-z0-9_]{1,40}$", - "example" : "8ba4f34e6235d905a46bac021d98e923" - }, - "LikeWithTweetAuthor" : { - "type" : "object", - "description" : "A Like event, with the tweet author user and the tweet being liked", - "properties" : { - "created_at" : { - "type" : "string", - "description" : "Creation time of the Tweet.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "id" : { - "$ref" : "#/components/schemas/LikeId" - }, - "liked_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "timestamp_ms" : { - "type" : "integer", - "description" : "Timestamp in milliseconds of creation.", - "format" : "int32" - }, - "tweet_author_id" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "LikesComplianceStreamResponse" : { - "description" : "Likes compliance stream events.", - "oneOf" : [ - { - "type" : "object", - "description" : "Compliance event.", - "required" : [ - "data" - ], - "properties" : { - "data" : { - "$ref" : "#/components/schemas/LikeComplianceSchema" - } - } - }, - { - "type" : "object", - "required" : [ - "errors" - ], - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - ] - }, - "List" : { - "type" : "object", - "description" : "A X List is a curated group of accounts.", - "required" : [ - "id", - "name" - ], - "properties" : { - "created_at" : { - "type" : "string", - "format" : "date-time" - }, - "description" : { - "type" : "string" - }, - "follower_count" : { - "type" : "integer" - }, - "id" : { - "$ref" : "#/components/schemas/ListId" - }, - "member_count" : { - "type" : "integer" - }, - "name" : { - "type" : "string", - "description" : "The name of this List." - }, - "owner_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "private" : { - "type" : "boolean" - } - } - }, - "ListAddUserRequest" : { - "type" : "object", - "required" : [ - "user_id" - ], - "properties" : { - "user_id" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "ListCreateRequest" : { - "type" : "object", - "required" : [ - "name" - ], - "properties" : { - "description" : { - "type" : "string", - "minLength" : 0, - "maxLength" : 100 - }, - "name" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 25 - }, - "private" : { - "type" : "boolean", - "default" : false - } - } - }, - "ListCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "description" : "A X List is a curated group of accounts.", - "required" : [ - "id", - "name" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/ListId" - }, - "name" : { - "type" : "string", - "description" : "The name of this List." - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "deleted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListFollowedRequest" : { - "type" : "object", - "required" : [ - "list_id" - ], - "properties" : { - "list_id" : { - "$ref" : "#/components/schemas/ListId" - } - } - }, - "ListFollowedResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "following" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListId" : { - "type" : "string", - "description" : "The unique identifier of this List.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "ListMutateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "is_member" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListPinnedRequest" : { - "type" : "object", - "required" : [ - "list_id" - ], - "properties" : { - "list_id" : { - "$ref" : "#/components/schemas/ListId" - } - } - }, - "ListPinnedResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "pinned" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListUnpinResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "pinned" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListUpdateRequest" : { - "type" : "object", - "properties" : { - "description" : { - "type" : "string", - "minLength" : 0, - "maxLength" : 100 - }, - "name" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 25 - }, - "private" : { - "type" : "boolean" - } - } - }, - "ListUpdateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "updated" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ManagementInfo" : { - "type" : "object", - "properties" : { - "managed" : { - "type" : "boolean", - "description" : "Indicates if the media is managed by Media Studio", - "example" : false - } - } - }, - "Media" : { - "type" : "object", - "required" : [ - "type" - ], - "properties" : { - "height" : { - "$ref" : "#/components/schemas/MediaHeight" - }, - "media_key" : { - "$ref" : "#/components/schemas/MediaKey" - }, - "type" : { - "type" : "string" - }, - "width" : { - "$ref" : "#/components/schemas/MediaWidth" - } - }, - "discriminator" : { - "propertyName" : "type", - "mapping" : { - "animated_gif" : "#/components/schemas/AnimatedGif", - "photo" : "#/components/schemas/Photo", - "video" : "#/components/schemas/Video" - } - } - }, - "MediaAnalytics" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "media_key" : { - "$ref" : "#/components/schemas/MediaKey" - }, - "timestamped_metrics" : { - "type" : "array", - "title" : "Timestamped Metrics", - "description" : "Array containing metrics data along with the timestamps of their recording.", - "items" : { - "$ref" : "#/components/schemas/MediaTimestampedMetrics" - } - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "MediaCategory" : { - "type" : "string", - "description" : "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size, video duration) and enable advanced features.", - "enum" : [ - "amplify_video", - "tweet_gif", - "tweet_image", - "tweet_video", - "dm_gif", - "dm_image", - "dm_video", - "subtitles" - ], - "example" : "tweet_video" - }, - "MediaCategoryOneShot" : { - "type" : "string", - "description" : "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size) and enable advanced features.", - "enum" : [ - "tweet_image", - "dm_image", - "subtitles" - ], - "example" : "tweet_image" - }, - "MediaCategorySubtitles" : { - "type" : "string", - "description" : "The media category of uploaded media to which subtitles should be added/deleted", - "enum" : [ - "AmplifyVideo", - "TweetVideo" - ], - "example" : "TweetVideo" - }, - "MediaHeight" : { - "type" : "integer", - "description" : "The height of the media in pixels.", - "minimum" : 0 - }, - "MediaId" : { - "type" : "string", - "description" : "The unique identifier of this Media.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "MediaKey" : { - "type" : "string", - "description" : "The Media Key identifier for this attachment.", - "pattern" : "^([0-9]+)_([0-9]+)$" - }, - "MediaMetrics" : { - "type" : "object", - "properties" : { - "cta_url_clicks" : { - "type" : "integer", - "title" : "CTA URL Clicks", - "description" : "Tracks the number of clicks on a call-to-action URL" - }, - "cta_watch_clicks" : { - "type" : "integer", - "title" : "CTA Watch Clicks", - "description" : "Tracks the number of clicks to watch a video or media content" - }, - "play_from_tap" : { - "type" : "integer", - "title" : "Play From Tap", - "description" : "Tracks the number of times a video or media is played from a user tap" - }, - "playback25" : { - "type" : "integer", - "title" : "Playback 25%", - "description" : "Tracks the number of times a video reaches 25% of its duration" - }, - "playback50" : { - "type" : "integer", - "title" : "Playback 50%", - "description" : "Tracks the number of times a video reaches 50% of its duration" - }, - "playback75" : { - "type" : "integer", - "title" : "Playback 75%", - "description" : "Tracks the number of times a video reaches 75% of its duration" - }, - "playback_complete" : { - "type" : "integer", - "title" : "Playback Complete", - "description" : "Tracks the number of times a video is played to completion" - }, - "playback_start" : { - "type" : "integer", - "title" : "Playback Start", - "description" : "Tracks the number of times a video playback is initiated" - }, - "video_views" : { - "type" : "integer", - "title" : "Video Views", - "description" : "Tracks the number of times a video is viewed" - }, - "watch_time_ms" : { - "type" : "integer", - "title" : "Watch Time (ms)", - "description" : "Tracks the total time spent watching a video, measured in milliseconds" - } - } - }, - "MediaPayloadBinary" : { - "type" : "string", - "description" : "The file to upload.", - "format" : "binary" - }, - "MediaPayloadByte" : { - "type" : "string", - "description" : "The file to upload.", - "format" : "byte" - }, - "MediaSegments" : { - "oneOf" : [ - { - "type" : "integer", - "description" : "An integer value representing the media upload segment.", - "minimum" : 0, - "maximum" : 999, - "format" : "int32" - }, - { - "type" : "string", - "description" : "An integer value representing the media upload segment.", - "pattern" : "^[0-9]{1,3}$", - "format" : "integer" - } - ] - }, - "MediaTimestampedMetrics" : { - "type" : "object", - "properties" : { - "metrics" : { - "$ref" : "#/components/schemas/MediaMetrics" - }, - "timestamp" : { - "type" : "string", - "title" : "Timestamp", - "description" : "ISO8601 Time", - "example" : "2025-03-17T06:30:00Z" - } - } - }, - "MediaUploadAppendRequest" : { - "anyOf" : [ - { - "type" : "object", - "required" : [ - "media", - "segment_index" - ], - "properties" : { - "media" : { - "$ref" : "#/components/schemas/MediaPayloadBinary" - }, - "segment_index" : { - "$ref" : "#/components/schemas/MediaSegments" - } - } - }, - { - "type" : "object", - "required" : [ - "media", - "segment_index" - ], - "properties" : { - "media" : { - "$ref" : "#/components/schemas/MediaPayloadByte" - }, - "segment_index" : { - "$ref" : "#/components/schemas/MediaSegments" - } - } - } - ] - }, - "MediaUploadAppendResponse" : { - "type" : "object", - "description" : "A response from getting a media upload request status.", - "required" : [ - "meta" - ], - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "expires_at" : { - "type" : "integer", - "description" : "Unix epoch time in seconds after when the upload session expires.", - "format" : "int64" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "MediaUploadConfigRequest" : { - "type" : "object", - "properties" : { - "additional_owners" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "media_category" : { - "$ref" : "#/components/schemas/MediaCategory" - }, - "media_type" : { - "type" : "string", - "description" : "The type of media.", - "enum" : [ - "video/mp4", - "video/webm", - "video/mp2t", - "video/quicktime", - "text/srt", - "text/vtt", - "image/jpeg", - "image/gif", - "image/bmp", - "image/png", - "image/webp", - "image/pjpeg", - "image/tiff", - "model/gltf-binary", - "model/vnd.usdz+zip" - ], - "example" : "video/mp4" - }, - "shared" : { - "type" : "boolean", - "description" : "Whether this media is shared or not." - }, - "total_bytes" : { - "type" : "integer", - "description" : "The total size of the media upload in bytes.", - "minimum" : 0, - "maximum" : 17179869184 - } - }, - "additionalProperties" : false - }, - "MediaUploadRequestOneShot" : { - "type" : "object", - "required" : [ - "media", - "media_category" - ], - "properties" : { - "additional_owners" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "media" : { - "anyOf" : [ - { - "$ref" : "#/components/schemas/MediaPayloadBinary" - }, - { - "$ref" : "#/components/schemas/MediaPayloadByte" - } - ] - }, - "media_category" : { - "$ref" : "#/components/schemas/MediaCategoryOneShot" - }, - "media_type" : { - "type" : "string", - "description" : "The type of image or subtitle.", - "enum" : [ - "text/srt", - "text/vtt", - "image/jpeg", - "image/bmp", - "image/png", - "image/webp", - "image/pjpeg", - "image/tiff" - ], - "example" : "image/png" - }, - "shared" : { - "type" : "boolean", - "description" : "Whether this media is shared or not.", - "default" : false - } - }, - "additionalProperties" : false - }, - "MediaUploadResponse" : { - "type" : "object", - "description" : "A response from getting a media upload request status.", - "required" : [ - "meta" - ], - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "id", - "media_key" - ], - "properties" : { - "expires_after_secs" : { - "type" : "integer", - "description" : "Number of seconds after which upload session expires.", - "format" : "int32" - }, - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "media_key" : { - "$ref" : "#/components/schemas/MediaKey" - }, - "processing_info" : { - "$ref" : "#/components/schemas/ProcessingInfo" - }, - "size" : { - "type" : "integer", - "description" : "Size of the upload", - "format" : "int32" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "MediaWidth" : { - "type" : "integer", - "description" : "The width of the media in pixels.", - "minimum" : 0 - }, - "MentionEntity" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref" : "#/components/schemas/MentionFields" - } - ] - }, - "MentionFields" : { - "type" : "object", - "description" : "Represent the portion of text recognized as a User mention, and its start and end position within the text.", - "required" : [ - "username" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/UserId" - }, - "username" : { - "$ref" : "#/components/schemas/UserName" - } - } - }, - "MetadataCreateRequest" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "metadata" : { - "type" : "object", - "properties" : { - "allow_download_status" : { - "$ref" : "#/components/schemas/AllowDownloadStatus" - }, - "alt_text" : { - "$ref" : "#/components/schemas/AltText" - }, - "audience_policy" : { - "$ref" : "#/components/schemas/AudiencePolicy" - }, - "content_expiration" : { - "$ref" : "#/components/schemas/ContentExpiration" - }, - "domain_restrictions" : { - "$ref" : "#/components/schemas/DomainRestrictions" - }, - "found_media_origin" : { - "$ref" : "#/components/schemas/FoundMediaOrigin" - }, - "geo_restrictions" : { - "$ref" : "#/components/schemas/GeoRestrictions" - }, - "management_info" : { - "$ref" : "#/components/schemas/ManagementInfo" - }, - "preview_image" : { - "$ref" : "#/components/schemas/PreviewImage" - }, - "sensitive_media_warning" : { - "$ref" : "#/components/schemas/SensitiveMediaWarning" - }, - "shared_info" : { - "$ref" : "#/components/schemas/SharedInfo" - }, - "sticker_info" : { - "$ref" : "#/components/schemas/StickerInfo" - }, - "upload_source" : { - "$ref" : "#/components/schemas/UploadSource" - } - } - } - } - }, - "MetadataCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "associated_metadata" : { - "type" : "object", - "properties" : { - "allow_download_status" : { - "$ref" : "#/components/schemas/AllowDownloadStatus" - }, - "alt_text" : { - "$ref" : "#/components/schemas/AltText" - }, - "audience_policy" : { - "$ref" : "#/components/schemas/AudiencePolicy" - }, - "content_expiration" : { - "$ref" : "#/components/schemas/ContentExpiration" - }, - "domain_restrictions" : { - "$ref" : "#/components/schemas/DomainRestrictions" - }, - "found_media_origin" : { - "$ref" : "#/components/schemas/FoundMediaOrigin" - }, - "geo_restrictions" : { - "$ref" : "#/components/schemas/GeoRestrictions" - }, - "management_info" : { - "$ref" : "#/components/schemas/ManagementInfo" - }, - "preview_image" : { - "$ref" : "#/components/schemas/PreviewImage" - }, - "sensitive_media_warning" : { - "$ref" : "#/components/schemas/SensitiveMediaWarning" - }, - "shared_info" : { - "$ref" : "#/components/schemas/SharedInfo" - }, - "sticker_info" : { - "$ref" : "#/components/schemas/StickerInfo" - }, - "upload_source" : { - "$ref" : "#/components/schemas/UploadSource" - } - } - }, - "id" : { - "$ref" : "#/components/schemas/MediaId" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Metrics" : { - "type" : "object", - "properties" : { - "app_install_attempts" : { - "type" : "integer", - "title" : "App Install Attempts", - "description" : "Tracks number of App Install Attempts" - }, - "app_opens" : { - "type" : "integer", - "title" : "App Opens", - "description" : "Tracks number of App opens" - }, - "detail_expands" : { - "type" : "integer", - "title" : "Detail Expands", - "description" : "Tracks number of Detail expands" - }, - "email_tweet" : { - "type" : "integer", - "title" : "Email Tweet", - "description" : "Tracks number of Email Tweet actions" - }, - "engagements" : { - "type" : "integer", - "title" : "Engagements", - "description" : "Tracks total Engagements" - }, - "follows" : { - "type" : "integer", - "title" : "Follows", - "description" : "Tracks number of Follows" - }, - "hashtag_clicks" : { - "type" : "integer", - "title" : "Hashtag Clicks", - "description" : "Tracks number of Hashtag clicks" - }, - "impressions" : { - "type" : "integer", - "title" : "Impressions", - "description" : "Tracks number of Impressions" - }, - "likes" : { - "type" : "integer", - "title" : "Likes", - "description" : "Tracks number of Likes" - }, - "link_clicks" : { - "type" : "integer", - "title" : "Link Clicks", - "description" : "Tracks number of Link clicks" - }, - "media_engagements" : { - "type" : "integer", - "title" : "Media Engagements", - "description" : "Tracks number of Media engagements" - }, - "media_views" : { - "type" : "integer", - "title" : "Media Views", - "description" : "Tracks number of Media views" - }, - "permalink_clicks" : { - "type" : "integer", - "title" : "Permalink Clicks", - "description" : "Tracks number of Permalink clicks" - }, - "profile_visits" : { - "type" : "integer", - "title" : "Profile Visits", - "description" : "Tracks number of Profile visits" - }, - "quote_tweets" : { - "type" : "integer", - "title" : "Quote Tweets", - "description" : "Tracks number of Quote Tweets" - }, - "replies" : { - "type" : "integer", - "title" : "Replies", - "description" : "Tracks number of Replies" - }, - "retweets" : { - "type" : "integer", - "title" : "Retweets", - "description" : "Tracks number of Retweets" - }, - "url_clicks" : { - "type" : "integer", - "title" : "URL Clicks", - "description" : "Tracks number of URL clicks" - }, - "user_profile_clicks" : { - "type" : "integer", - "title" : "User Profile Clicks", - "description" : "Tracks number of User Profile clicks" - } - } - }, - "MisleadingTags" : { - "type" : "string", - "description" : "Community Note misleading tags type.", - "enum" : [ - "disputed_claim_as_fact", - "factual_error", - "manipulated_media", - "misinterpreted_satire", - "missing_important_context", - "other", - "outdated_information" - ] - }, - "MuteUserMutationResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "muting" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "MuteUserRequest" : { - "type" : "object", - "required" : [ - "target_user_id" - ], - "properties" : { - "target_user_id" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "NewestId" : { - "type" : "string", - "description" : "The newest id in this response." - }, - "NextToken" : { - "type" : "string", - "description" : "The next token.", - "minLength" : 1 - }, - "NonCompliantRulesProblem" : { - "description" : "A problem that indicates the user's rule set is not compliant.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "Note" : { - "type" : "object", - "description" : "A X Community Note is a note on a Post.", - "required" : [ - "id", - "post_id", - "note_info" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/NoteId" - }, - "info" : { - "$ref" : "#/components/schemas/NoteInfo" - }, - "post_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "status" : { - "$ref" : "#/components/schemas/NoteRatingStatus" - }, - "test_result" : { - "type" : "boolean", - "description" : "Test result information. Only returned when test result is true." - } - } - }, - "NoteClassification" : { - "type" : "string", - "description" : "Community Note classification type.", - "enum" : [ - "misinformed_or_potentially_misleading", - "not_misleading" - ] - }, - "NoteId" : { - "type" : "string", - "description" : "The unique identifier of this Community Note.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "NoteInfo" : { - "type" : "object", - "description" : "A X Community Note is a note on a Post.", - "required" : [ - "text", - "classification", - "misleading_tags", - "trustworthy_sources" - ], - "properties" : { - "classification" : { - "$ref" : "#/components/schemas/NoteClassification" - }, - "misleading_tags" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/MisleadingTags" - } - }, - "text" : { - "type" : "string", - "description" : "The text summary in the Community Note.", - "pattern" : "^(?=.*https?://\\S+).+$" - }, - "trustworthy_sources" : { - "type" : "boolean", - "description" : "Whether the note provided trustworthy links." - } - }, - "additionalProperties" : false - }, - "NoteRatingStatus" : { - "type" : "string", - "description" : "Community Note rating status. Only returned when test result is false", - "enum" : [ - "currently_rated_helpful", - "currently_rated_not_helpful", - "firm_reject", - "insufficient_consensus", - "minimum_ratings_not_met", - "needs_more_ratings", - "needs_your_help" - ] - }, - "NoteTweetText" : { - "type" : "string", - "description" : "The note content of the Tweet.", - "example" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" - }, - "Oauth1PermissionsProblem" : { - "description" : "A problem that indicates your client application does not have the required OAuth1 permissions for the requested endpoint.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "OldestId" : { - "type" : "string", - "description" : "The oldest id in this response." - }, - "OperationalDisconnectProblem" : { - "description" : "You have been disconnected for operational reasons.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "disconnect_type" : { - "type" : "string", - "enum" : [ - "OperationalDisconnect", - "UpstreamOperationalDisconnect", - "ForceDisconnect", - "UpstreamUncleanDisconnect", - "SlowReader", - "InternalError", - "ClientApplicationStateDegraded", - "InvalidRules" + "additionalProperties": false + }, + "CreateNoteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/NoteId" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "CreateTextMessageRequest": { + "type": "object", + "required": [ + "text" + ], + "properties": { + "attachments": { + "$ref": "#/components/schemas/DmAttachments" + }, + "text": { + "type": "string", + "description": "Text of the message.", + "minLength": 1 + } + } + }, + "CreatedAt": { + "type": "string", + "description": "Creation time of the compliance job.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "DeleteDmResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "DeleteNoteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "deleted" + ], + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "DeleteRulesRequest": { + "type": "object", + "description": "A response from deleting user-specified stream filtering rules.", + "required": [ + "delete" + ], + "properties": { + "delete": { + "type": "object", + "description": "IDs and values of all deleted user-specified stream filtering rules.", + "properties": { + "ids": { + "type": "array", + "description": "IDs of all deleted user-specified stream filtering rules.", + "items": { + "$ref": "#/components/schemas/RuleId" + } + }, + "values": { + "type": "array", + "description": "Values of all deleted user-specified stream filtering rules.", + "items": { + "$ref": "#/components/schemas/RuleValue" + } + } + } + } + } + }, + "DisallowedResourceProblem": { + "description": "A problem that indicates that the resource requested violates the precepts of this API.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "required": [ + "resource_id", + "resource_type", + "section" + ], + "properties": { + "resource_id": { + "type": "string" + }, + "resource_type": { + "type": "string", + "enum": [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "section": { + "type": "string", + "enum": [ + "data", + "includes" + ] + } + } + } + ] + }, + "DisplayTextRange": { + "type": "array", + "description": "Represent a boundary range (start and end zero-based indices) for the portion of text that is displayed for a post. `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "integer", + "minimum": 0 + } + }, + "DmAttachments": { + "type": "array", + "description": "Attachments to a DM Event.", + "items": { + "$ref": "#/components/schemas/DmMediaAttachment" + } + }, + "DmConversationId": { + "type": "string", + "description": "Unique identifier of a DM conversation. This can either be a numeric string, or a pair of numeric strings separated by a '-' character in the case of one-on-one DM Conversations.", + "pattern": "^([0-9]{1,19}-[0-9]{1,19}|[0-9]{15,19})$", + "example": "123123123-456456456" + }, + "DmEvent": { + "type": "object", + "required": [ + "id", + "event_type" + ], + "properties": { + "attachments": { + "type": "object", + "description": "Specifies the type of attachments (if any) present in this DM.", + "properties": { + "card_ids": { + "type": "array", + "description": "A list of card IDs (if cards are attached).", + "minItems": 1, + "items": { + "type": "string" + } + }, + "media_keys": { + "type": "array", + "description": "A list of Media Keys for each one of the media attachments (if media are attached).", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/MediaKey" + } + } + } + }, + "cashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/CashtagEntity" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "dm_conversation_id": { + "$ref": "#/components/schemas/DmConversationId" + }, + "event_type": { + "type": "string", + "example": "MessageCreate" + }, + "hashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/HashtagEntity" + } + }, + "id": { + "$ref": "#/components/schemas/DmEventId" + }, + "mentions": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/MentionEntity" + } + }, + "participant_ids": { + "type": "array", + "description": "A list of participants for a ParticipantsJoin or ParticipantsLeave event_type.", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "referenced_tweets": { + "type": "array", + "description": "A list of Posts this DM refers to.", + "minItems": 1, + "items": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + }, + "sender_id": { + "$ref": "#/components/schemas/UserId" + }, + "text": { + "type": "string" + }, + "urls": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UrlEntityDm" + } + } + } + }, + "DmEventId": { + "type": "string", + "description": "Unique identifier of a DM Event.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "DmMediaAttachment": { + "type": "object", + "required": [ + "media_id" + ], + "properties": { + "media_id": { + "$ref": "#/components/schemas/MediaId" + } + } + }, + "DmParticipants": { + "type": "array", + "description": "Participants for the DM Conversation.", + "minItems": 2, + "maxItems": 49, + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "DomainRestrictions": { + "type": "object", + "properties": { + "whitelist": { + "type": "array", + "description": "List of whitelisted domains", + "items": { + "type": "string" + } + } + } + }, + "DownloadExpiration": { + "type": "string", + "description": "Expiration time of the download URL.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "DownloadUrl": { + "type": "string", + "description": "URL from which the user will retrieve their compliance results.", + "format": "uri" + }, + "DuplicateRuleProblem": { + "description": "The rule you have submitted is a duplicate.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + ] + }, + "End": { + "type": "string", + "description": "The end time of the bucket.", + "format": "date-time" + }, + "Engagement": { + "type": "object", + "description": "An Engagement Api Response.", + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "tweets": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "measurement": { + "type": "object", + "properties": { + "metrics_time_series": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "value": { + "type": "object", + "properties": { + "metric_values": { + "type": "array", + "items": { + "type": "object", + "properties": { + "metric_type": { + "type": "string" + }, + "metric_value": { + "type": "number" + } + } + } + }, + "timestamp": { + "type": "object", + "properties": { + "iso8601_time": { + "type": "string" + } + } + } + } + } + } + } + }, + "metrics_total": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "value": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "metric_type": { + "type": "string" + }, + "metric_value": { + "type": "number" + } + } + } + } + } + } + } + } + } + } + }, + "EntityIndicesInclusiveExclusive": { + "type": "object", + "description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", + "required": [ + "start", + "end" + ], + "properties": { + "end": { + "type": "integer", + "description": "Index (zero-based) at which position this entity ends. The index is exclusive.", + "minimum": 0, + "example": 61 + }, + "start": { + "type": "integer", + "description": "Index (zero-based) at which position this entity starts. The index is inclusive.", + "minimum": 0, + "example": 50 + } + } + }, + "EntityIndicesInclusiveInclusive": { + "type": "object", + "description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is inclusive.", + "required": [ + "start", + "end" + ], + "properties": { + "end": { + "type": "integer", + "description": "Index (zero-based) at which position this entity ends. The index is inclusive.", + "minimum": 0, + "example": 61 + }, + "start": { + "type": "integer", + "description": "Index (zero-based) at which position this entity starts. The index is inclusive.", + "minimum": 0, + "example": 50 + } + } + }, + "Error": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + }, + "Expansions": { + "type": "object", + "properties": { + "media": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Media" + } + }, + "places": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Place" + } + }, + "polls": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Poll" + } + }, + "topics": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Topic" + } + }, + "tweets": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "users": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "FieldUnauthorizedProblem": { + "description": "A problem that indicates that you are not allowed to see a particular field on a Tweet, User, etc.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "required": [ + "resource_type", + "field", + "section" + ], + "properties": { + "field": { + "type": "string" + }, + "resource_type": { + "type": "string", + "enum": [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "section": { + "type": "string", + "enum": [ + "data", + "includes" + ] + } + } + } + ] + }, + "FilteredStreamingTweetResponse": { + "type": "object", + "description": "A Tweet or error that can be returned by the streaming Tweet API. The values returned with a successful streamed Tweet includes the user provided rules that the Tweet matched.", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "matching_rules": { + "type": "array", + "description": "The list of rules which matched the Tweet", + "items": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/RuleId" + }, + "tag": { + "$ref": "#/components/schemas/RuleTag" + } + } + } + } + } + }, + "FoundMediaOrigin": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique Identifier of media within provider ( <= 24 characters ))", + "example": "u5BzatR15TZ04" + }, + "provider": { + "type": "string", + "description": "The media provider (e.g., 'giphy') that sourced the media ( <= 8 Characters )", + "example": "giphy" + } + } + }, + "FullTextEntities": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "minItems": 1, + "items": { + "description": "Annotation for entities based on the Tweet text.", + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveInclusive" + }, + { + "type": "object", + "description": "Represents the data for the annotation.", + "properties": { + "normalized_text": { + "type": "string", + "description": "Text used to determine annotation.", + "example": "Barack Obama" + }, + "probability": { + "type": "number", + "description": "Confidence factor for annotation type.", + "minimum": 0, + "maximum": 1, + "format": "double" + }, + "type": { + "type": "string", + "description": "Annotation type.", + "example": "Person" + } + } + } + ] + } + }, + "cashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/CashtagEntity" + } + }, + "hashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/HashtagEntity" + } + }, + "mentions": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/MentionEntity" + } + }, + "urls": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UrlEntity" + } + } + } + }, + "GenericProblem": { + "description": "A generic problem with no additional information beyond that provided by the HTTP status code.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "Geo": { + "type": "object", + "required": [ + "type", + "bbox", + "properties" + ], + "properties": { + "bbox": { + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number", + "minimum": -180, + "maximum": 180, + "format": "double" + }, + "example": [ + -105.193475, + 39.60973, + -105.053164, + 39.761974 + ] + }, + "geometry": { + "$ref": "#/components/schemas/Point" + }, + "properties": { + "type": "object" + }, + "type": { + "type": "string", + "enum": [ + "Feature" + ] + } + } + }, + "GeoRestrictions": { + "oneOf": [ + { + "type": "object", + "required": [ + "whitelisted_country_codes", + "blacklisted_country_codes" + ], + "properties": { + "blacklisted_country_codes": { + "type": "array", + "description": "List of blacklisted country codes", + "minItems": 0, + "maxItems": 0, + "items": { + "type": "string", + "description": "Country code in ISO 3166-1 alpha-2 format", + "pattern": "^[a-zA-Z]{2}$", + "example": "us" + } + }, + "whitelisted_country_codes": { + "type": "array", + "description": "List of whitelisted country codes", + "minItems": 1, + "items": { + "type": "string", + "description": "Country code in ISO 3166-1 alpha-2 format", + "pattern": "^[a-zA-Z]{2}$", + "example": "us" + } + } + } + }, + { + "type": "object", + "required": [ + "whitelisted_country_codes", + "blacklisted_country_codes" + ], + "properties": { + "blacklisted_country_codes": { + "type": "array", + "description": "List of blacklisted country codes", + "minItems": 1, + "items": { + "type": "string", + "description": "Country code in ISO 3166-1 alpha-2 format", + "pattern": "^[a-zA-Z]{2}$", + "example": "us" + } + }, + "whitelisted_country_codes": { + "type": "array", + "description": "List of whitelisted country codes", + "minItems": 0, + "maxItems": 0, + "items": { + "type": "string", + "description": "Country code in ISO 3166-1 alpha-2 format", + "pattern": "^[a-zA-Z]{2}$", + "example": "us" + } + } + } + } + ] + }, + "Get2CommunitiesIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Community" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2CommunitiesSearchResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Community" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + } + } + } + } + }, + "Get2ComplianceJobsIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ComplianceJob" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2ComplianceJobsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/ComplianceJob" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmConversationsIdDmEventsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DmEvent" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmConversationsWithParticipantIdDmEventsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DmEvent" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmEventsEventIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/DmEvent" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2DmEventsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DmEvent" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2FdxAccountsAccountidContactResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/PlaidAccountContact" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidPayment-networksResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/PlaidAccountPaymentNetwork" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/PlaidAccount" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidTransactionsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/PlaidAccountTransaction" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxCustomersCurrentResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/PlaidCustomer" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2Insights28hrResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Engagement" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2InsightsHistoricalResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Engagement" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2LikesFirehoseStreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/LikeWithTweetAuthor" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2LikesSample10StreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/LikeWithTweetAuthor" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2ListsIdFollowersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2ListsIdMembersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2ListsIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/List" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2ListsIdTweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2MediaAnalyticsResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/MediaAnalytics" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2MediaMediaKeyResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Media" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2MediaResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Media" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2NotesSearchNotesWrittenResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Note" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2NotesSearchPostsEligibleForNotesResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesByCreatorIdsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Space" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesIdBuyersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Space" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2SpacesIdTweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Space" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2SpacesSearchResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Space" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TrendsByWoeidWoeidResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Trend" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2TweetsAnalyticsResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Analytics" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2TweetsCountsAllResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/SearchCount" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "total_tweet_count": { + "$ref": "#/components/schemas/Aggregate" + } + } + } + } + }, + "Get2TweetsCountsRecentResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/SearchCount" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "total_tweet_count": { + "$ref": "#/components/schemas/Aggregate" + } + } + } + } + }, + "Get2TweetsFirehoseStreamLangEnResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangJaResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangKoResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangPtResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsIdLikingUsersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdQuoteTweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsIdRetweetedByResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdRetweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSample10StreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSampleStreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSearchAllResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsSearchRecentResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsSearchStreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSearchStreamRulesCountsResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/RulesCount" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2UsageTweetsResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Usage" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2UsersByResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2UsersByUsernameUsernameResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/User" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2UsersIdBlockingResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdBookmarksResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowedListsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/List" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowingResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdLikedTweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdListMembershipsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/List" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdMentionsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdMutingResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdOwnedListsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/List" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdPinnedListsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/List" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/User" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2UsersIdTimelinesReverseChronologicalResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdTweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersMeResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/User" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2UsersPersonalizedTrendsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/PersonalizedTrend" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2UsersRepostsOfMeResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2UsersSearchResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + } + } + } + } + }, + "Get2WebhooksResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/WebhookConfig" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "HashtagEntity": { + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref": "#/components/schemas/HashtagFields" + } + ] + }, + "HashtagFields": { + "type": "object", + "description": "Represent the portion of text recognized as a Hashtag, and its start and end position within the text.", + "required": [ + "tag" + ], + "properties": { + "tag": { + "type": "string", + "description": "The text of the Hashtag.", + "example": "MondayMotivation" + } + } + }, + "HttpStatusCode": { + "type": "integer", + "description": "HTTP Status Code.", + "minimum": 100, + "maximum": 599 + }, + "InvalidRequestProblem": { + "description": "A problem that indicates this request is invalid.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + ] + }, + "InvalidRuleProblem": { + "description": "The rule you have submitted is invalid.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "JobId": { + "type": "string", + "description": "Compliance Job ID.", + "pattern": "^[0-9]{1,19}$", + "example": "1372966999991541762" + }, + "KillAllConnectionsResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "killed_connections": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "LikeComplianceSchema": { + "type": "object", + "required": [ + "delete" + ], + "properties": { + "delete": { + "$ref": "#/components/schemas/UnlikeComplianceSchema" + } + } + }, + "LikeId": { + "type": "string", + "description": "The unique identifier of this Like.", + "pattern": "^[A-Za-z0-9_]{1,40}$", + "example": "8ba4f34e6235d905a46bac021d98e923" + }, + "LikeWithTweetAuthor": { + "type": "object", + "description": "A Like event, with the tweet author user and the tweet being liked", + "properties": { + "created_at": { + "type": "string", + "description": "Creation time of the Tweet.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "id": { + "$ref": "#/components/schemas/LikeId" + }, + "liked_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "timestamp_ms": { + "type": "integer", + "description": "Timestamp in milliseconds of creation.", + "format": "int32" + }, + "tweet_author_id": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "LikesComplianceStreamResponse": { + "description": "Likes compliance stream events.", + "oneOf": [ + { + "type": "object", + "description": "Compliance event.", + "required": [ + "data" + ], + "properties": { + "data": { + "$ref": "#/components/schemas/LikeComplianceSchema" + } + } + }, + { + "type": "object", + "required": [ + "errors" + ], + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + ] + }, + "List": { + "type": "object", + "description": "A X List is a curated group of accounts.", + "required": [ + "id", + "name" + ], + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string" + }, + "follower_count": { + "type": "integer" + }, + "id": { + "$ref": "#/components/schemas/ListId" + }, + "member_count": { + "type": "integer" + }, + "name": { + "type": "string", + "description": "The name of this List." + }, + "owner_id": { + "$ref": "#/components/schemas/UserId" + }, + "private": { + "type": "boolean" + } + } + }, + "ListAddUserRequest": { + "type": "object", + "required": [ + "user_id" + ], + "properties": { + "user_id": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "ListCreateRequest": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "description": { + "type": "string", + "minLength": 0, + "maxLength": 100 + }, + "name": { + "type": "string", + "minLength": 1, + "maxLength": 25 + }, + "private": { + "type": "boolean", + "default": false + } + } + }, + "ListCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "A X List is a curated group of accounts.", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/ListId" + }, + "name": { + "type": "string", + "description": "The name of this List." + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListFollowedRequest": { + "type": "object", + "required": [ + "list_id" + ], + "properties": { + "list_id": { + "$ref": "#/components/schemas/ListId" + } + } + }, + "ListFollowedResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "following": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListId": { + "type": "string", + "description": "The unique identifier of this List.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "ListMutateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "is_member": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListPinnedRequest": { + "type": "object", + "required": [ + "list_id" + ], + "properties": { + "list_id": { + "$ref": "#/components/schemas/ListId" + } + } + }, + "ListPinnedResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "pinned": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListUnpinResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "pinned": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListUpdateRequest": { + "type": "object", + "properties": { + "description": { + "type": "string", + "minLength": 0, + "maxLength": 100 + }, + "name": { + "type": "string", + "minLength": 1, + "maxLength": 25 + }, + "private": { + "type": "boolean" + } + } + }, + "ListUpdateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "updated": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ManagementInfo": { + "type": "object", + "properties": { + "managed": { + "type": "boolean", + "description": "Indicates if the media is managed by Media Studio", + "example": false + } + } + }, + "Media": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "height": { + "$ref": "#/components/schemas/MediaHeight" + }, + "media_key": { + "$ref": "#/components/schemas/MediaKey" + }, + "type": { + "type": "string" + }, + "width": { + "$ref": "#/components/schemas/MediaWidth" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "animated_gif": "#/components/schemas/AnimatedGif", + "photo": "#/components/schemas/Photo", + "video": "#/components/schemas/Video" + } + } + }, + "MediaAnalytics": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "media_key": { + "$ref": "#/components/schemas/MediaKey" + }, + "timestamped_metrics": { + "type": "array", + "title": "Timestamped Metrics", + "description": "Array containing metrics data along with the timestamps of their recording.", + "items": { + "$ref": "#/components/schemas/MediaTimestampedMetrics" + } + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "MediaCategory": { + "type": "string", + "description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size, video duration) and enable advanced features.", + "enum": [ + "amplify_video", + "tweet_gif", + "tweet_image", + "tweet_video", + "dm_gif", + "dm_image", + "dm_video", + "subtitles" + ], + "example": "tweet_video" + }, + "MediaCategoryOneShot": { + "type": "string", + "description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size) and enable advanced features.", + "enum": [ + "tweet_image", + "dm_image", + "subtitles" + ], + "example": "tweet_image" + }, + "MediaCategorySubtitles": { + "type": "string", + "description": "The media category of uploaded media to which subtitles should be added/deleted", + "enum": [ + "AmplifyVideo", + "TweetVideo" + ], + "example": "TweetVideo" + }, + "MediaHeight": { + "type": "integer", + "description": "The height of the media in pixels.", + "minimum": 0 + }, + "MediaId": { + "type": "string", + "description": "The unique identifier of this Media.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "MediaKey": { + "type": "string", + "description": "The Media Key identifier for this attachment.", + "pattern": "^([0-9]+)_([0-9]+)$" + }, + "MediaMetrics": { + "type": "object", + "properties": { + "cta_url_clicks": { + "type": "integer", + "title": "CTA URL Clicks", + "description": "Tracks the number of clicks on a call-to-action URL" + }, + "cta_watch_clicks": { + "type": "integer", + "title": "CTA Watch Clicks", + "description": "Tracks the number of clicks to watch a video or media content" + }, + "play_from_tap": { + "type": "integer", + "title": "Play From Tap", + "description": "Tracks the number of times a video or media is played from a user tap" + }, + "playback25": { + "type": "integer", + "title": "Playback 25%", + "description": "Tracks the number of times a video reaches 25% of its duration" + }, + "playback50": { + "type": "integer", + "title": "Playback 50%", + "description": "Tracks the number of times a video reaches 50% of its duration" + }, + "playback75": { + "type": "integer", + "title": "Playback 75%", + "description": "Tracks the number of times a video reaches 75% of its duration" + }, + "playback_complete": { + "type": "integer", + "title": "Playback Complete", + "description": "Tracks the number of times a video is played to completion" + }, + "playback_start": { + "type": "integer", + "title": "Playback Start", + "description": "Tracks the number of times a video playback is initiated" + }, + "video_views": { + "type": "integer", + "title": "Video Views", + "description": "Tracks the number of times a video is viewed" + }, + "watch_time_ms": { + "type": "integer", + "title": "Watch Time (ms)", + "description": "Tracks the total time spent watching a video, measured in milliseconds" + } + } + }, + "MediaPayloadBinary": { + "type": "string", + "description": "The file to upload.", + "format": "binary" + }, + "MediaPayloadByte": { + "type": "string", + "description": "The file to upload.", + "format": "byte" + }, + "MediaSegments": { + "oneOf": [ + { + "type": "integer", + "description": "An integer value representing the media upload segment.", + "minimum": 0, + "maximum": 999, + "format": "int32" + }, + { + "type": "string", + "description": "An integer value representing the media upload segment.", + "pattern": "^[0-9]{1,3}$", + "format": "integer" + } + ] + }, + "MediaTimestampedMetrics": { + "type": "object", + "properties": { + "metrics": { + "$ref": "#/components/schemas/MediaMetrics" + }, + "timestamp": { + "type": "string", + "title": "Timestamp", + "description": "ISO8601 Time", + "example": "2025-03-17T06:30:00Z" + } + } + }, + "MediaUploadAppendRequest": { + "anyOf": [ + { + "type": "object", + "required": [ + "media", + "segment_index" + ], + "properties": { + "media": { + "$ref": "#/components/schemas/MediaPayloadBinary" + }, + "segment_index": { + "$ref": "#/components/schemas/MediaSegments" + } + } + }, + { + "type": "object", + "required": [ + "media", + "segment_index" + ], + "properties": { + "media": { + "$ref": "#/components/schemas/MediaPayloadByte" + }, + "segment_index": { + "$ref": "#/components/schemas/MediaSegments" + } + } + } + ] + }, + "MediaUploadAppendResponse": { + "type": "object", + "description": "A response from getting a media upload request status.", + "required": [ + "meta" + ], + "properties": { + "data": { + "type": "object", + "properties": { + "expires_at": { + "type": "integer", + "description": "Unix epoch time in seconds after when the upload session expires.", + "format": "int64" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "MediaUploadConfigRequest": { + "type": "object", + "properties": { + "additional_owners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "media_category": { + "$ref": "#/components/schemas/MediaCategory" + }, + "media_type": { + "type": "string", + "description": "The type of media.", + "enum": [ + "video/mp4", + "video/webm", + "video/mp2t", + "video/quicktime", + "text/srt", + "text/vtt", + "image/jpeg", + "image/gif", + "image/bmp", + "image/png", + "image/webp", + "image/pjpeg", + "image/tiff", + "model/gltf-binary", + "model/vnd.usdz+zip" + ], + "example": "video/mp4" + }, + "shared": { + "type": "boolean", + "description": "Whether this media is shared or not." + }, + "total_bytes": { + "type": "integer", + "description": "The total size of the media upload in bytes.", + "minimum": 0, + "maximum": 17179869184 + } + }, + "additionalProperties": false + }, + "MediaUploadRequestOneShot": { + "type": "object", + "required": [ + "media", + "media_category" + ], + "properties": { + "additional_owners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "media": { + "anyOf": [ + { + "$ref": "#/components/schemas/MediaPayloadBinary" + }, + { + "$ref": "#/components/schemas/MediaPayloadByte" + } + ] + }, + "media_category": { + "$ref": "#/components/schemas/MediaCategoryOneShot" + }, + "media_type": { + "type": "string", + "description": "The type of image or subtitle.", + "enum": [ + "text/srt", + "text/vtt", + "image/jpeg", + "image/bmp", + "image/png", + "image/webp", + "image/pjpeg", + "image/tiff" + ], + "example": "image/png" + }, + "shared": { + "type": "boolean", + "description": "Whether this media is shared or not.", + "default": false + } + }, + "additionalProperties": false + }, + "MediaUploadResponse": { + "type": "object", + "description": "A response from getting a media upload request status.", + "required": [ + "meta" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "id", + "media_key" + ], + "properties": { + "expires_after_secs": { + "type": "integer", + "description": "Number of seconds after which upload session expires.", + "format": "int32" + }, + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "media_key": { + "$ref": "#/components/schemas/MediaKey" + }, + "processing_info": { + "$ref": "#/components/schemas/ProcessingInfo" + }, + "size": { + "type": "integer", + "description": "Size of the upload", + "format": "int32" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "MediaWidth": { + "type": "integer", + "description": "The width of the media in pixels.", + "minimum": 0 + }, + "MentionEntity": { + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref": "#/components/schemas/MentionFields" + } + ] + }, + "MentionFields": { + "type": "object", + "description": "Represent the portion of text recognized as a User mention, and its start and end position within the text.", + "required": [ + "username" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/UserId" + }, + "username": { + "$ref": "#/components/schemas/UserName" + } + } + }, + "MetadataCreateRequest": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "metadata": { + "type": "object", + "properties": { + "allow_download_status": { + "$ref": "#/components/schemas/AllowDownloadStatus" + }, + "alt_text": { + "$ref": "#/components/schemas/AltText" + }, + "audience_policy": { + "$ref": "#/components/schemas/AudiencePolicy" + }, + "content_expiration": { + "$ref": "#/components/schemas/ContentExpiration" + }, + "domain_restrictions": { + "$ref": "#/components/schemas/DomainRestrictions" + }, + "found_media_origin": { + "$ref": "#/components/schemas/FoundMediaOrigin" + }, + "geo_restrictions": { + "$ref": "#/components/schemas/GeoRestrictions" + }, + "management_info": { + "$ref": "#/components/schemas/ManagementInfo" + }, + "preview_image": { + "$ref": "#/components/schemas/PreviewImage" + }, + "sensitive_media_warning": { + "$ref": "#/components/schemas/SensitiveMediaWarning" + }, + "shared_info": { + "$ref": "#/components/schemas/SharedInfo" + }, + "sticker_info": { + "$ref": "#/components/schemas/StickerInfo" + }, + "upload_source": { + "$ref": "#/components/schemas/UploadSource" + } + } + } + } + }, + "MetadataCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "associated_metadata": { + "type": "object", + "properties": { + "allow_download_status": { + "$ref": "#/components/schemas/AllowDownloadStatus" + }, + "alt_text": { + "$ref": "#/components/schemas/AltText" + }, + "audience_policy": { + "$ref": "#/components/schemas/AudiencePolicy" + }, + "content_expiration": { + "$ref": "#/components/schemas/ContentExpiration" + }, + "domain_restrictions": { + "$ref": "#/components/schemas/DomainRestrictions" + }, + "found_media_origin": { + "$ref": "#/components/schemas/FoundMediaOrigin" + }, + "geo_restrictions": { + "$ref": "#/components/schemas/GeoRestrictions" + }, + "management_info": { + "$ref": "#/components/schemas/ManagementInfo" + }, + "preview_image": { + "$ref": "#/components/schemas/PreviewImage" + }, + "sensitive_media_warning": { + "$ref": "#/components/schemas/SensitiveMediaWarning" + }, + "shared_info": { + "$ref": "#/components/schemas/SharedInfo" + }, + "sticker_info": { + "$ref": "#/components/schemas/StickerInfo" + }, + "upload_source": { + "$ref": "#/components/schemas/UploadSource" + } + } + }, + "id": { + "$ref": "#/components/schemas/MediaId" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Metrics": { + "type": "object", + "properties": { + "app_install_attempts": { + "type": "integer", + "title": "App Install Attempts", + "description": "Tracks number of App Install Attempts" + }, + "app_opens": { + "type": "integer", + "title": "App Opens", + "description": "Tracks number of App opens" + }, + "detail_expands": { + "type": "integer", + "title": "Detail Expands", + "description": "Tracks number of Detail expands" + }, + "email_tweet": { + "type": "integer", + "title": "Email Tweet", + "description": "Tracks number of Email Tweet actions" + }, + "engagements": { + "type": "integer", + "title": "Engagements", + "description": "Tracks total Engagements" + }, + "follows": { + "type": "integer", + "title": "Follows", + "description": "Tracks number of Follows" + }, + "hashtag_clicks": { + "type": "integer", + "title": "Hashtag Clicks", + "description": "Tracks number of Hashtag clicks" + }, + "impressions": { + "type": "integer", + "title": "Impressions", + "description": "Tracks number of Impressions" + }, + "likes": { + "type": "integer", + "title": "Likes", + "description": "Tracks number of Likes" + }, + "link_clicks": { + "type": "integer", + "title": "Link Clicks", + "description": "Tracks number of Link clicks" + }, + "media_engagements": { + "type": "integer", + "title": "Media Engagements", + "description": "Tracks number of Media engagements" + }, + "media_views": { + "type": "integer", + "title": "Media Views", + "description": "Tracks number of Media views" + }, + "permalink_clicks": { + "type": "integer", + "title": "Permalink Clicks", + "description": "Tracks number of Permalink clicks" + }, + "profile_visits": { + "type": "integer", + "title": "Profile Visits", + "description": "Tracks number of Profile visits" + }, + "quote_tweets": { + "type": "integer", + "title": "Quote Tweets", + "description": "Tracks number of Quote Tweets" + }, + "replies": { + "type": "integer", + "title": "Replies", + "description": "Tracks number of Replies" + }, + "retweets": { + "type": "integer", + "title": "Retweets", + "description": "Tracks number of Retweets" + }, + "url_clicks": { + "type": "integer", + "title": "URL Clicks", + "description": "Tracks number of URL clicks" + }, + "user_profile_clicks": { + "type": "integer", + "title": "User Profile Clicks", + "description": "Tracks number of User Profile clicks" + } + } + }, + "MisleadingTags": { + "type": "string", + "description": "Community Note misleading tags type.", + "enum": [ + "disputed_claim_as_fact", + "factual_error", + "manipulated_media", + "misinterpreted_satire", + "missing_important_context", + "other", + "outdated_information" + ] + }, + "MuteUserMutationResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "muting": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "MuteUserRequest": { + "type": "object", + "required": [ + "target_user_id" + ], + "properties": { + "target_user_id": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "NewestId": { + "type": "string", + "description": "The newest id in this response." + }, + "NextToken": { + "type": "string", + "description": "The next token.", + "minLength": 1 + }, + "NonCompliantRulesProblem": { + "description": "A problem that indicates the user's rule set is not compliant.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "Note": { + "type": "object", + "description": "A X Community Note is a note on a Post.", + "required": [ + "id", + "post_id", + "note_info" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/NoteId" + }, + "info": { + "$ref": "#/components/schemas/NoteInfo" + }, + "post_id": { + "$ref": "#/components/schemas/TweetId" + }, + "status": { + "$ref": "#/components/schemas/NoteRatingStatus" + }, + "test_result": { + "type": "boolean", + "description": "Test result information. Only returned when test result is true." + } + } + }, + "NoteClassification": { + "type": "string", + "description": "Community Note classification type.", + "enum": [ + "misinformed_or_potentially_misleading", + "not_misleading" + ] + }, + "NoteId": { + "type": "string", + "description": "The unique identifier of this Community Note.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "NoteInfo": { + "type": "object", + "description": "A X Community Note is a note on a Post.", + "required": [ + "text", + "classification", + "misleading_tags", + "trustworthy_sources" + ], + "properties": { + "classification": { + "$ref": "#/components/schemas/NoteClassification" + }, + "misleading_tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MisleadingTags" + } + }, + "text": { + "type": "string", + "description": "The text summary in the Community Note.", + "pattern": "^(?=.*https?://\\S+).+$" + }, + "trustworthy_sources": { + "type": "boolean", + "description": "Whether the note provided trustworthy links." + } + }, + "additionalProperties": false + }, + "NoteRatingStatus": { + "type": "string", + "description": "Community Note rating status. Only returned when test result is false", + "enum": [ + "currently_rated_helpful", + "currently_rated_not_helpful", + "firm_reject", + "insufficient_consensus", + "minimum_ratings_not_met", + "needs_more_ratings", + "needs_your_help" + ] + }, + "NoteTweetText": { + "type": "string", + "description": "The note content of the Tweet.", + "example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet https:\/\/t.co\/56a0vZUx7i" + }, + "Oauth1PermissionsProblem": { + "description": "A problem that indicates your client application does not have the required OAuth1 permissions for the requested endpoint.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "OldestId": { + "type": "string", + "description": "The oldest id in this response." + }, + "OperationalDisconnectProblem": { + "description": "You have been disconnected for operational reasons.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "disconnect_type": { + "type": "string", + "enum": [ + "OperationalDisconnect", + "UpstreamOperationalDisconnect", + "ForceDisconnect", + "UpstreamUncleanDisconnect", + "SlowReader", + "InternalError", + "ClientApplicationStateDegraded", + "InvalidRules" + ] + } + } + } + ] + }, + "PaginationToken32": { + "type": "string", + "description": "A base32 pagination token.", + "minLength": 16 + }, + "PaginationToken36": { + "type": "string", + "description": "A base36 pagination token.", + "minLength": 1 + }, + "PaginationTokenLong": { + "type": "string", + "description": "A 'long' pagination token.", + "minLength": 1, + "maxLength": 19 + }, + "PersonalizedTrend": { + "type": "object", + "description": "A trend.", + "properties": { + "category": { + "type": "string", + "description": "Category of this trend." + }, + "post_count": { + "type": "integer", + "description": "Number of posts pertaining to this trend." + }, + "trend_name": { + "type": "string", + "description": "Name of the trend." + }, + "trending_since": { + "type": "string", + "description": "Time since this is trending." + } + } + }, + "Photo": { + "allOf": [ + { + "$ref": "#/components/schemas/Media" + }, + { + "type": "object", + "properties": { + "alt_text": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + } + } + ] + }, + "Place": { + "type": "object", + "required": [ + "id", + "full_name" + ], + "properties": { + "contained_within": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/PlaceId" + } + }, + "country": { + "type": "string", + "description": "The full name of the county in which this place exists.", + "example": "United States" + }, + "country_code": { + "$ref": "#/components/schemas/CountryCode" + }, + "full_name": { + "type": "string", + "description": "The full name of this place.", + "example": "Lakewood, CO" + }, + "geo": { + "$ref": "#/components/schemas/Geo" + }, + "id": { + "$ref": "#/components/schemas/PlaceId" + }, + "name": { + "type": "string", + "description": "The human readable name of this place.", + "example": "Lakewood" + }, + "place_type": { + "$ref": "#/components/schemas/PlaceType" + } + } + }, + "PlaceId": { + "type": "string", + "description": "The identifier for this place.", + "example": "f7eb2fa2fea288b1" + }, + "PlaceType": { + "type": "string", + "enum": [ + "poi", + "neighborhood", + "city", + "admin", + "country", + "unknown" + ], + "example": "city" + }, + "PlaidAccount": { + "type": "object", + "description": "Descriptor for a Plaid account.", + "required": [ + "accountId", + "accountCategory", + "accountNumberDisplay", + "accountType", + "currency", + "productName", + "status" + ], + "properties": { + "accountCategory": { + "type": "string", + "description": "The category of the account (e.g., personal, business)." + }, + "accountId": { + "type": "string", + "description": "The Plaid account ID." + }, + "accountNumberDisplay": { + "type": "string", + "description": "The last 2-4 digits of the account number." + }, + "accountType": { + "type": "string", + "description": "The type of the account (e.g., checking, savings)." + }, + "availableBalance": { + "type": "number", + "description": "The available balance of the account." + }, + "currency": { + "$ref": "#/components/schemas/PlaidCurrency" + }, + "currentBalance": { + "type": "number", + "description": "The current balance of the account." + }, + "nickname": { + "type": "string", + "description": "The nickname of the account." + }, + "productName": { + "type": "string", + "description": "The name of the product associated with the account." + }, + "status": { + "type": "string", + "description": "The status of the account." + } + } + }, + "PlaidAccountContact": { + "type": "object", + "description": "Contact information associated with a Plaid account.", + "required": [ + "name", + "addresses", + "emails", + "telephones" + ], + "properties": { + "addresses": { + "type": "array", + "description": "List of addresses associated with the account holder.", + "items": { + "$ref": "#/components/schemas/PlaidAddress" + } + }, + "emails": { + "type": "array", + "description": "List of email addresses associated with the account holder.", + "items": { + "type": "string" + } + }, + "name": { + "$ref": "#/components/schemas/PlaidName" + }, + "relationship": { + "type": "string", + "description": "Relationship of the contact to the account." + }, + "telephones": { + "type": "array", + "description": "List of telephone numbers associated with the account holder.", + "items": { + "$ref": "#/components/schemas/PlaidTelephone" + } + } + } + }, + "PlaidAccountPaymentNetwork": { + "type": "object", + "description": "Payment network details associated with the account.", + "required": [ + "identifier", + "type", + "transferIn", + "transferOut", + "bankId" + ], + "properties": { + "bankId": { + "type": "string", + "description": "The bank ID associated with the account." + }, + "identifier": { + "type": "string", + "description": "The payment network identifier." + }, + "transferIn": { + "type": "boolean", + "description": "Indicates if transfers into the account are supported." + }, + "transferOut": { + "type": "boolean", + "description": "Indicates if transfers out of the account are supported." + }, + "type": { + "type": "string", + "description": "The type of payment network (e.g., ACH, SEPA)." + } + } + }, + "PlaidAccountTransaction": { + "type": "object", + "description": "Descriptor for a Plaid account.", + "required": [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "status", + "transactionId", + "transactionTimestamp" + ], + "properties": { + "accountCategory": { + "type": "string", + "description": "The category of the account (e.g., personal, business)." + }, + "amount": { + "type": "number", + "description": "The amount transacted." + }, + "debitCreditMemo": { + "type": "string", + "description": "Memo for transaction (e.g. CREDIT)" + }, + "description": { + "type": "string", + "description": "The transaction description" + }, + "postedTimestamp": { + "type": "string", + "description": "The timestamp when the transaction was posted." + }, + "status": { + "type": "string", + "description": "The status of the transaction." + }, + "transactionId": { + "type": "string", + "description": "The identifier for the transaction." + }, + "transactionTimestamp": { + "type": "string", + "description": "The timestamp when the transaction occurred." + } + } + }, + "PlaidAddress": { + "type": "object", + "description": "Address information for the account holder.", + "required": [ + "city", + "country", + "line1" + ], + "properties": { + "city": { + "type": "string", + "description": "The city of the address." + }, + "country": { + "type": "string", + "description": "The country of the address (ISO 3166-1 alpha-2 code)." + }, + "line1": { + "type": "string", + "description": "The first line of the address." + }, + "line2": { + "type": "string", + "description": "The second line of the address." + }, + "postalCode": { + "type": "string", + "description": "The postal code of the address." + }, + "region": { + "type": "string", + "description": "The region or state of the address." + } + } + }, + "PlaidCurrency": { + "type": "object", + "description": "Currency information.", + "required": [ + "currencyCode" + ], + "properties": { + "currencyCode": { + "type": "string", + "description": "The ISO 4217 currency code." + } + } + }, + "PlaidCustomer": { + "type": "object", + "description": "A user id for the plaid customer", + "properties": { + "customerId": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "PlaidName": { + "type": "object", + "description": "Name information for the account holder.", + "required": [ + "first", + "last" + ], + "properties": { + "first": { + "type": "string", + "description": "The first name of the account holder." + }, + "last": { + "type": "string", + "description": "The last name of the account holder." + } + } + }, + "PlaidTelephone": { + "type": "object", + "description": "Telephone information for the account holder.", + "required": [ + "country", + "number", + "type" + ], + "properties": { + "country": { + "type": "string", + "description": "The country code for the phone number (e.g., '+1')." + }, + "number": { + "type": "string", + "description": "The phone number." + }, + "type": { + "type": "string", + "description": "The type of phone number (e.g., 'mobile')." + } + } + }, + "Point": { + "type": "object", + "description": "A [GeoJson Point](https://tools.ietf.org/html/rfc7946#section-3.1.2) geometry object.", + "required": [ + "type", + "coordinates" + ], + "properties": { + "coordinates": { + "$ref": "#/components/schemas/Position" + }, + "type": { + "type": "string", + "enum": [ + "Point" + ], + "example": "Point" + } + } + }, + "Poll": { + "type": "object", + "description": "Represent a Poll attached to a Tweet.", + "required": [ + "id", + "options" + ], + "properties": { + "duration_minutes": { + "type": "integer", + "minimum": 5, + "maximum": 10080, + "format": "int32" + }, + "end_datetime": { + "type": "string", + "format": "date-time" + }, + "id": { + "$ref": "#/components/schemas/PollId" + }, + "options": { + "type": "array", + "minItems": 2, + "maxItems": 4, + "items": { + "$ref": "#/components/schemas/PollOption" + } + }, + "voting_status": { + "type": "string", + "enum": [ + "open", + "closed" + ] + } + } + }, + "PollId": { + "type": "string", + "description": "Unique identifier of this poll.", + "pattern": "^[0-9]{1,19}$", + "example": "1365059861688410112" + }, + "PollOption": { + "type": "object", + "description": "Describes a choice in a Poll object.", + "required": [ + "position", + "label", + "votes" + ], + "properties": { + "label": { + "$ref": "#/components/schemas/PollOptionLabel" + }, + "position": { + "type": "integer", + "description": "Position of this choice in the poll." + }, + "votes": { + "type": "integer", + "description": "Number of users who voted for this choice." + } + } + }, + "PollOptionLabel": { + "type": "string", + "description": "The text of a poll choice.", + "minLength": 1, + "maxLength": 25 + }, + "Position": { + "type": "array", + "description": "A [GeoJson Position](https://tools.ietf.org/html/rfc7946#section-3.1.1) in the format `[longitude,latitude]`.", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "number" + }, + "example": [ + -105.18816086351444, + 40.247749999999996 + ] + }, + "PreviewImage": { + "type": "object", + "properties": { + "media_key": { + "type": "object", + "properties": { + "media": { + "$ref": "#/components/schemas/MediaId" + }, + "media_category": { + "type": "string", + "description": "The media category of media", + "enum": [ + "TweetImage" + ], + "default": "TweetImage", + "example": "TweetImage" + } + } + } + } + }, + "PreviousToken": { + "type": "string", + "description": "The previous token.", + "minLength": 1 + }, + "Problem": { + "type": "object", + "description": "An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).", + "required": [ + "type", + "title" + ], + "properties": { + "detail": { + "type": "string" + }, + "status": { + "type": "integer" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "about:blank": "#/components/schemas/GenericProblem", + "https://api.twitter.com/2/problems/client-disconnected": "#/components/schemas/ClientDisconnectedProblem", + "https://api.twitter.com/2/problems/client-forbidden": "#/components/schemas/ClientForbiddenProblem", + "https://api.twitter.com/2/problems/conflict": "#/components/schemas/ConflictProblem", + "https://api.twitter.com/2/problems/disallowed-resource": "#/components/schemas/DisallowedResourceProblem", + "https://api.twitter.com/2/problems/duplicate-rules": "#/components/schemas/DuplicateRuleProblem", + "https://api.twitter.com/2/problems/invalid-request": "#/components/schemas/InvalidRequestProblem", + "https://api.twitter.com/2/problems/invalid-rules": "#/components/schemas/InvalidRuleProblem", + "https://api.twitter.com/2/problems/noncompliant-rules": "#/components/schemas/NonCompliantRulesProblem", + "https://api.twitter.com/2/problems/not-authorized-for-field": "#/components/schemas/FieldUnauthorizedProblem", + "https://api.twitter.com/2/problems/not-authorized-for-resource": "#/components/schemas/ResourceUnauthorizedProblem", + "https://api.twitter.com/2/problems/operational-disconnect": "#/components/schemas/OperationalDisconnectProblem", + "https://api.twitter.com/2/problems/resource-not-found": "#/components/schemas/ResourceNotFoundProblem", + "https://api.twitter.com/2/problems/resource-unavailable": "#/components/schemas/ResourceUnavailableProblem", + "https://api.twitter.com/2/problems/rule-cap": "#/components/schemas/RulesCapProblem", + "https://api.twitter.com/2/problems/streaming-connection": "#/components/schemas/ConnectionExceptionProblem", + "https://api.twitter.com/2/problems/unsupported-authentication": "#/components/schemas/UnsupportedAuthenticationProblem", + "https://api.twitter.com/2/problems/usage-capped": "#/components/schemas/UsageCapExceededProblem" + } + } + }, + "ProcessingInfo": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "check_after_secs": { + "type": "integer", + "description": "Number of seconds to check again for status", + "format": "int32" + }, + "progress_percent": { + "type": "integer", + "description": "Percent of upload progress", + "format": "int32" + }, + "state": { + "type": "string", + "description": "State of upload", + "enum": [ + "succeeded", + "in_progress", + "pending", + "failed" + ] + } + } + }, + "ReplayJobCreateResponse": { + "type": "object", + "description": "Confirmation that the replay job request was accepted.", + "required": [ + "job_id", + "created_at" + ], + "properties": { + "created_at": { + "type": "string", + "description": "The UTC timestamp indicating when the replay job was created.", + "format": "date-time", + "example": "2025-04-24T20:57:15.242Z" + }, + "job_id": { + "type": "string", + "description": "The unique identifier for the initiated replay job.", + "example": "1915510368169844736" + } + } + }, + "ReplySettings": { + "type": "string", + "description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, and following.", + "pattern": "^[A-Za-z]{1,12}$", + "enum": [ + "everyone", + "mentionedUsers", + "following", + "other" + ] + }, + "ReplySettingsWithVerifiedUsers": { + "type": "string", + "description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, subscribers, verified and following.", + "pattern": "^[A-Za-z]{1,12}$", + "enum": [ + "everyone", + "mentionedUsers", + "following", + "other", + "subscribers", + "verified" + ] + }, + "ResourceNotFoundProblem": { + "description": "A problem that indicates that a given Tweet, User, etc. does not exist.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "required": [ + "parameter", + "value", + "resource_id", + "resource_type" + ], + "properties": { + "parameter": { + "type": "string", + "minLength": 1 + }, + "resource_id": { + "type": "string" + }, + "resource_type": { + "type": "string", + "enum": [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "value": { + "type": "string", + "description": "Value will match the schema of the field." + } + } + } ] - } - } - } - ] - }, - "PaginationToken32" : { - "type" : "string", - "description" : "A base32 pagination token.", - "minLength" : 16 - }, - "PaginationToken36" : { - "type" : "string", - "description" : "A base36 pagination token.", - "minLength" : 1 - }, - "PaginationTokenLong" : { - "type" : "string", - "description" : "A 'long' pagination token.", - "minLength" : 1, - "maxLength" : 19 - }, - "PersonalizedTrend" : { - "type" : "object", - "description" : "A trend.", - "properties" : { - "category" : { - "type" : "string", - "description" : "Category of this trend." - }, - "post_count" : { - "type" : "integer", - "description" : "Number of posts pertaining to this trend." - }, - "trend_name" : { - "type" : "string", - "description" : "Name of the trend." - }, - "trending_since" : { - "type" : "string", - "description" : "Time since this is trending." - } - } - }, - "Photo" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/Media" - }, - { - "type" : "object", - "properties" : { - "alt_text" : { - "type" : "string" - }, - "url" : { - "type" : "string", - "format" : "uri" - } - } - } - ] - }, - "Place" : { - "type" : "object", - "required" : [ - "id", - "full_name" - ], - "properties" : { - "contained_within" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/PlaceId" - } - }, - "country" : { - "type" : "string", - "description" : "The full name of the county in which this place exists.", - "example" : "United States" - }, - "country_code" : { - "$ref" : "#/components/schemas/CountryCode" - }, - "full_name" : { - "type" : "string", - "description" : "The full name of this place.", - "example" : "Lakewood, CO" - }, - "geo" : { - "$ref" : "#/components/schemas/Geo" - }, - "id" : { - "$ref" : "#/components/schemas/PlaceId" - }, - "name" : { - "type" : "string", - "description" : "The human readable name of this place.", - "example" : "Lakewood" - }, - "place_type" : { - "$ref" : "#/components/schemas/PlaceType" - } - } - }, - "PlaceId" : { - "type" : "string", - "description" : "The identifier for this place.", - "example" : "f7eb2fa2fea288b1" - }, - "PlaceType" : { - "type" : "string", - "enum" : [ - "poi", - "neighborhood", - "city", - "admin", - "country", - "unknown" - ], - "example" : "city" - }, - "PlaidAccount" : { - "type" : "object", - "description" : "Descriptor for a Plaid account.", - "required" : [ - "accountId", - "accountCategory", - "accountNumberDisplay", - "accountType", - "currency", - "productName", - "status" - ], - "properties" : { - "accountCategory" : { - "type" : "string", - "description" : "The category of the account (e.g., personal, business)." - }, - "accountId" : { - "type" : "string", - "description" : "The Plaid account ID." - }, - "accountNumberDisplay" : { - "type" : "string", - "description" : "The last 2-4 digits of the account number." - }, - "accountType" : { - "type" : "string", - "description" : "The type of the account (e.g., checking, savings)." - }, - "availableBalance" : { - "type" : "number", - "description" : "The available balance of the account." - }, - "currency" : { - "$ref" : "#/components/schemas/PlaidCurrency" - }, - "currentBalance" : { - "type" : "number", - "description" : "The current balance of the account." - }, - "nickname" : { - "type" : "string", - "description" : "The nickname of the account." - }, - "productName" : { - "type" : "string", - "description" : "The name of the product associated with the account." - }, - "status" : { - "type" : "string", - "description" : "The status of the account." - } - } - }, - "PlaidAccountContact" : { - "type" : "object", - "description" : "Contact information associated with a Plaid account.", - "required" : [ - "name", - "addresses", - "emails", - "telephones" - ], - "properties" : { - "addresses" : { - "type" : "array", - "description" : "List of addresses associated with the account holder.", - "items" : { - "$ref" : "#/components/schemas/PlaidAddress" - } - }, - "emails" : { - "type" : "array", - "description" : "List of email addresses associated with the account holder.", - "items" : { - "type" : "string" - } - }, - "name" : { - "$ref" : "#/components/schemas/PlaidName" - }, - "relationship" : { - "type" : "string", - "description" : "Relationship of the contact to the account." - }, - "telephones" : { - "type" : "array", - "description" : "List of telephone numbers associated with the account holder.", - "items" : { - "$ref" : "#/components/schemas/PlaidTelephone" - } - } - } - }, - "PlaidAccountPaymentNetwork" : { - "type" : "object", - "description" : "Payment network details associated with the account.", - "required" : [ - "identifier", - "type", - "transferIn", - "transferOut", - "bankId" - ], - "properties" : { - "bankId" : { - "type" : "string", - "description" : "The bank ID associated with the account." - }, - "identifier" : { - "type" : "string", - "description" : "The payment network identifier." - }, - "transferIn" : { - "type" : "boolean", - "description" : "Indicates if transfers into the account are supported." - }, - "transferOut" : { - "type" : "boolean", - "description" : "Indicates if transfers out of the account are supported." - }, - "type" : { - "type" : "string", - "description" : "The type of payment network (e.g., ACH, SEPA)." - } - } - }, - "PlaidAccountTransaction" : { - "type" : "object", - "description" : "Descriptor for a Plaid account.", - "required" : [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "status", - "transactionId", - "transactionTimestamp" - ], - "properties" : { - "accountCategory" : { - "type" : "string", - "description" : "The category of the account (e.g., personal, business)." - }, - "amount" : { - "type" : "number", - "description" : "The amount transacted." - }, - "debitCreditMemo" : { - "type" : "string", - "description" : "Memo for transaction (e.g. CREDIT)" - }, - "description" : { - "type" : "string", - "description" : "The transaction description" - }, - "postedTimestamp" : { - "type" : "string", - "description" : "The timestamp when the transaction was posted." - }, - "status" : { - "type" : "string", - "description" : "The status of the transaction." - }, - "transactionId" : { - "type" : "string", - "description" : "The identifier for the transaction." - }, - "transactionTimestamp" : { - "type" : "string", - "description" : "The timestamp when the transaction occurred." - } - } - }, - "PlaidAddress" : { - "type" : "object", - "description" : "Address information for the account holder.", - "required" : [ - "city", - "country", - "line1" - ], - "properties" : { - "city" : { - "type" : "string", - "description" : "The city of the address." - }, - "country" : { - "type" : "string", - "description" : "The country of the address (ISO 3166-1 alpha-2 code)." - }, - "line1" : { - "type" : "string", - "description" : "The first line of the address." - }, - "line2" : { - "type" : "string", - "description" : "The second line of the address." - }, - "postalCode" : { - "type" : "string", - "description" : "The postal code of the address." - }, - "region" : { - "type" : "string", - "description" : "The region or state of the address." - } - } - }, - "PlaidCurrency" : { - "type" : "object", - "description" : "Currency information.", - "required" : [ - "currencyCode" - ], - "properties" : { - "currencyCode" : { - "type" : "string", - "description" : "The ISO 4217 currency code." - } - } - }, - "PlaidCustomer" : { - "type" : "object", - "description" : "A user id for the plaid customer", - "properties" : { - "customerId" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "PlaidName" : { - "type" : "object", - "description" : "Name information for the account holder.", - "required" : [ - "first", - "last" - ], - "properties" : { - "first" : { - "type" : "string", - "description" : "The first name of the account holder." - }, - "last" : { - "type" : "string", - "description" : "The last name of the account holder." - } - } - }, - "PlaidTelephone" : { - "type" : "object", - "description" : "Telephone information for the account holder.", - "required" : [ - "country", - "number", - "type" - ], - "properties" : { - "country" : { - "type" : "string", - "description" : "The country code for the phone number (e.g., '+1')." - }, - "number" : { - "type" : "string", - "description" : "The phone number." - }, - "type" : { - "type" : "string", - "description" : "The type of phone number (e.g., 'mobile')." - } - } - }, - "Point" : { - "type" : "object", - "description" : "A [GeoJson Point](https://tools.ietf.org/html/rfc7946#section-3.1.2) geometry object.", - "required" : [ - "type", - "coordinates" - ], - "properties" : { - "coordinates" : { - "$ref" : "#/components/schemas/Position" - }, - "type" : { - "type" : "string", - "enum" : [ - "Point" - ], - "example" : "Point" - } - } - }, - "Poll" : { - "type" : "object", - "description" : "Represent a Poll attached to a Tweet.", - "required" : [ - "id", - "options" - ], - "properties" : { - "duration_minutes" : { - "type" : "integer", - "minimum" : 5, - "maximum" : 10080, - "format" : "int32" - }, - "end_datetime" : { - "type" : "string", - "format" : "date-time" - }, - "id" : { - "$ref" : "#/components/schemas/PollId" - }, - "options" : { - "type" : "array", - "minItems" : 2, - "maxItems" : 4, - "items" : { - "$ref" : "#/components/schemas/PollOption" - } - }, - "voting_status" : { - "type" : "string", - "enum" : [ - "open", - "closed" - ] - } - } - }, - "PollId" : { - "type" : "string", - "description" : "Unique identifier of this poll.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1365059861688410112" - }, - "PollOption" : { - "type" : "object", - "description" : "Describes a choice in a Poll object.", - "required" : [ - "position", - "label", - "votes" - ], - "properties" : { - "label" : { - "$ref" : "#/components/schemas/PollOptionLabel" - }, - "position" : { - "type" : "integer", - "description" : "Position of this choice in the poll." - }, - "votes" : { - "type" : "integer", - "description" : "Number of users who voted for this choice." - } - } - }, - "PollOptionLabel" : { - "type" : "string", - "description" : "The text of a poll choice.", - "minLength" : 1, - "maxLength" : 25 - }, - "Position" : { - "type" : "array", - "description" : "A [GeoJson Position](https://tools.ietf.org/html/rfc7946#section-3.1.1) in the format `[longitude,latitude]`.", - "minItems" : 2, - "maxItems" : 2, - "items" : { - "type" : "number" - }, - "example" : [ - -105.18816086351444, - 40.247749999999996 - ] - }, - "PreviewImage" : { - "type" : "object", - "properties" : { - "media_key" : { - "type" : "object", - "properties" : { - "media" : { - "$ref" : "#/components/schemas/MediaId" - }, - "media_category" : { - "type" : "string", - "description" : "The media category of media", - "enum" : [ - "TweetImage" - ], - "default" : "TweetImage", - "example" : "TweetImage" - } - } - } - } - }, - "PreviousToken" : { - "type" : "string", - "description" : "The previous token.", - "minLength" : 1 - }, - "Problem" : { - "type" : "object", - "description" : "An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).", - "required" : [ - "type", - "title" - ], - "properties" : { - "detail" : { - "type" : "string" - }, - "status" : { - "type" : "integer" - }, - "title" : { - "type" : "string" - }, - "type" : { - "type" : "string" - } - }, - "discriminator" : { - "propertyName" : "type", - "mapping" : { - "about:blank" : "#/components/schemas/GenericProblem", - "https://api.twitter.com/2/problems/client-disconnected" : "#/components/schemas/ClientDisconnectedProblem", - "https://api.twitter.com/2/problems/client-forbidden" : "#/components/schemas/ClientForbiddenProblem", - "https://api.twitter.com/2/problems/conflict" : "#/components/schemas/ConflictProblem", - "https://api.twitter.com/2/problems/disallowed-resource" : "#/components/schemas/DisallowedResourceProblem", - "https://api.twitter.com/2/problems/duplicate-rules" : "#/components/schemas/DuplicateRuleProblem", - "https://api.twitter.com/2/problems/invalid-request" : "#/components/schemas/InvalidRequestProblem", - "https://api.twitter.com/2/problems/invalid-rules" : "#/components/schemas/InvalidRuleProblem", - "https://api.twitter.com/2/problems/noncompliant-rules" : "#/components/schemas/NonCompliantRulesProblem", - "https://api.twitter.com/2/problems/not-authorized-for-field" : "#/components/schemas/FieldUnauthorizedProblem", - "https://api.twitter.com/2/problems/not-authorized-for-resource" : "#/components/schemas/ResourceUnauthorizedProblem", - "https://api.twitter.com/2/problems/operational-disconnect" : "#/components/schemas/OperationalDisconnectProblem", - "https://api.twitter.com/2/problems/resource-not-found" : "#/components/schemas/ResourceNotFoundProblem", - "https://api.twitter.com/2/problems/resource-unavailable" : "#/components/schemas/ResourceUnavailableProblem", - "https://api.twitter.com/2/problems/rule-cap" : "#/components/schemas/RulesCapProblem", - "https://api.twitter.com/2/problems/streaming-connection" : "#/components/schemas/ConnectionExceptionProblem", - "https://api.twitter.com/2/problems/unsupported-authentication" : "#/components/schemas/UnsupportedAuthenticationProblem", - "https://api.twitter.com/2/problems/usage-capped" : "#/components/schemas/UsageCapExceededProblem" - } - } - }, - "ProcessingInfo" : { - "type" : "object", - "required" : [ - "type" - ], - "properties" : { - "check_after_secs" : { - "type" : "integer", - "description" : "Number of seconds to check again for status", - "format" : "int32" - }, - "progress_percent" : { - "type" : "integer", - "description" : "Percent of upload progress", - "format" : "int32" - }, - "state" : { - "type" : "string", - "description" : "State of upload", - "enum" : [ - "succeeded", - "in_progress", - "pending", - "failed" - ] - } - } - }, - "ReplayJobCreateResponse" : { - "type" : "object", - "description" : "Confirmation that the replay job request was accepted.", - "required" : [ - "job_id", - "created_at" - ], - "properties" : { - "created_at" : { - "type" : "string", - "description" : "The UTC timestamp indicating when the replay job was created.", - "format" : "date-time", - "example" : "2025-04-24T20:57:15.242Z" - }, - "job_id" : { - "type" : "string", - "description" : "The unique identifier for the initiated replay job.", - "example" : "1915510368169844736" - } - } - }, - "ReplySettings" : { - "type" : "string", - "description" : "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, and following.", - "pattern" : "^[A-Za-z]{1,12}$", - "enum" : [ - "everyone", - "mentionedUsers", - "following", - "other" - ] - }, - "ReplySettingsWithVerifiedUsers" : { - "type" : "string", - "description" : "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, subscribers, verified and following.", - "pattern" : "^[A-Za-z]{1,12}$", - "enum" : [ - "everyone", - "mentionedUsers", - "following", - "other", - "subscribers", - "verified" - ] - }, - "ResourceNotFoundProblem" : { - "description" : "A problem that indicates that a given Tweet, User, etc. does not exist.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "required" : [ - "parameter", - "value", - "resource_id", - "resource_type" - ], - "properties" : { - "parameter" : { - "type" : "string", - "minLength" : 1 - }, - "resource_id" : { - "type" : "string" - }, - "resource_type" : { - "type" : "string", - "enum" : [ - "user", - "tweet", - "media", - "list", - "space" + }, + "ResourceUnauthorizedProblem": { + "description": "A problem that indicates you are not allowed to see a particular Tweet, User, etc.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "required": [ + "value", + "resource_id", + "resource_type", + "section", + "parameter" + ], + "properties": { + "parameter": { + "type": "string" + }, + "resource_id": { + "type": "string" + }, + "resource_type": { + "type": "string", + "enum": [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "section": { + "type": "string", + "enum": [ + "data", + "includes" + ] + }, + "value": { + "type": "string" + } + } + } + ] + }, + "ResourceUnavailableProblem": { + "description": "A problem that indicates a particular Tweet, User, etc. is not available to you.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "required": [ + "parameter", + "resource_id", + "resource_type" + ], + "properties": { + "parameter": { + "type": "string", + "minLength": 1 + }, + "resource_id": { + "type": "string" + }, + "resource_type": { + "type": "string", + "enum": [ + "user", + "tweet", + "media", + "list", + "space" + ] + } + } + } + ] + }, + "ResultCount": { + "type": "integer", + "description": "The number of results returned in this response.", + "format": "int32" + }, + "Rule": { + "type": "object", + "description": "A user-provided stream filtering rule.", + "required": [ + "value" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/RuleId" + }, + "tag": { + "$ref": "#/components/schemas/RuleTag" + }, + "value": { + "$ref": "#/components/schemas/RuleValue" + } + } + }, + "RuleId": { + "type": "string", + "description": "Unique identifier of this rule.", + "pattern": "^[0-9]{1,19}$", + "example": "120897978112909812" + }, + "RuleNoId": { + "type": "object", + "description": "A user-provided stream filtering rule.", + "required": [ + "value" + ], + "properties": { + "tag": { + "$ref": "#/components/schemas/RuleTag" + }, + "value": { + "$ref": "#/components/schemas/RuleValue" + } + } + }, + "RuleTag": { + "type": "string", + "description": "A tag meant for the labeling of user provided rules.", + "example": "Non-retweeted coffee Posts" + }, + "RuleValue": { + "type": "string", + "description": "The filterlang value of the rule.", + "example": "coffee -is:retweet" + }, + "RulesCapProblem": { + "description": "You have exceeded the maximum number of rules.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "RulesCount": { + "type": "object", + "description": "A count of user-provided stream filtering rules at the application and project levels.", + "properties": { + "all_project_client_apps": { + "$ref": "#/components/schemas/AllProjectClientApps" + }, + "cap_per_client_app": { + "type": "integer", + "description": "Cap of number of rules allowed per client application", + "format": "int32" + }, + "cap_per_project": { + "type": "integer", + "description": "Cap of number of rules allowed per project", + "format": "int32" + }, + "client_app_rules_count": { + "$ref": "#/components/schemas/AppRulesCount" + }, + "project_rules_count": { + "type": "integer", + "description": "Number of rules for project", + "format": "int32" + } + } + }, + "RulesLookupResponse": { + "type": "object", + "required": [ + "meta" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Rule" + } + }, + "meta": { + "$ref": "#/components/schemas/RulesResponseMetadata" + } + } + }, + "RulesRequestSummary": { + "oneOf": [ + { + "type": "object", + "description": "A summary of the results of the addition of user-specified stream filtering rules.", + "required": [ + "created", + "not_created", + "valid", + "invalid" + ], + "properties": { + "created": { + "type": "integer", + "description": "Number of user-specified stream filtering rules that were created.", + "format": "int32", + "example": 1 + }, + "invalid": { + "type": "integer", + "description": "Number of invalid user-specified stream filtering rules.", + "format": "int32", + "example": 1 + }, + "not_created": { + "type": "integer", + "description": "Number of user-specified stream filtering rules that were not created.", + "format": "int32", + "example": 1 + }, + "valid": { + "type": "integer", + "description": "Number of valid user-specified stream filtering rules.", + "format": "int32", + "example": 1 + } + } + }, + { + "type": "object", + "required": [ + "deleted", + "not_deleted" + ], + "properties": { + "deleted": { + "type": "integer", + "description": "Number of user-specified stream filtering rules that were deleted.", + "format": "int32" + }, + "not_deleted": { + "type": "integer", + "description": "Number of user-specified stream filtering rules that were not deleted.", + "format": "int32" + } + } + } + ] + }, + "RulesResponseMetadata": { + "type": "object", + "required": [ + "sent" + ], + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "result_count": { + "type": "integer", + "description": "Number of Rules in result set.", + "format": "int32" + }, + "sent": { + "type": "string" + }, + "summary": { + "$ref": "#/components/schemas/RulesRequestSummary" + } + } + }, + "SearchCount": { + "type": "object", + "description": "Represent a Search Count Result.", + "required": [ + "end", + "start", + "tweet_count" + ], + "properties": { + "end": { + "$ref": "#/components/schemas/End" + }, + "start": { + "$ref": "#/components/schemas/Start" + }, + "tweet_count": { + "$ref": "#/components/schemas/TweetCount" + } + } + }, + "SensitiveMediaWarning": { + "type": "object", + "properties": { + "adult_content": { + "type": "boolean", + "description": "Indicates if the content contains adult material", + "example": true + }, + "graphic_violence": { + "type": "boolean", + "description": "Indicates if the content depicts graphic violence", + "example": true + }, + "other": { + "type": "boolean", + "description": "Indicates if the content has other sensitive characteristics", + "example": false + } + } + }, + "SharedInfo": { + "type": "object", + "properties": { + "shared": { + "type": "boolean", + "description": "Indicates if the media is shared in direct messages", + "example": false + } + } + }, + "Space": { + "type": "object", + "description": "", + "required": [ + "id", + "state" + ], + "properties": { + "created_at": { + "type": "string", + "description": "Creation time of the Space.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "creator_id": { + "$ref": "#/components/schemas/UserId" + }, + "ended_at": { + "type": "string", + "description": "End time of the Space.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "host_ids": { + "type": "array", + "description": "The user ids for the hosts of the Space.", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "id": { + "$ref": "#/components/schemas/SpaceId" + }, + "invited_user_ids": { + "type": "array", + "description": "An array of user ids for people who were invited to a Space.", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "is_ticketed": { + "type": "boolean", + "description": "Denotes if the Space is a ticketed Space.", + "example": "false" + }, + "lang": { + "type": "string", + "description": "The language of the Space.", + "example": "en" + }, + "participant_count": { + "type": "integer", + "description": "The number of participants in a Space.", + "format": "int32", + "example": 10 + }, + "scheduled_start": { + "type": "string", + "description": "A date time stamp for when a Space is scheduled to begin.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "speaker_ids": { + "type": "array", + "description": "An array of user ids for people who were speakers in a Space.", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "started_at": { + "type": "string", + "description": "When the Space was started as a date string.", + "format": "date-time", + "example": "2021-7-14T04:35:55Z" + }, + "state": { + "type": "string", + "description": "The current state of the Space.", + "enum": [ + "live", + "scheduled", + "ended" + ], + "example": "live" + }, + "subscriber_count": { + "type": "integer", + "description": "The number of people who have either purchased a ticket or set a reminder for this Space.", + "format": "int32", + "example": 10 + }, + "title": { + "type": "string", + "description": "The title of the Space.", + "example": "Spaces are Awesome" + }, + "topics": { + "type": "array", + "description": "The topics of a Space, as selected by its creator.", + "items": { + "type": "object", + "description": "The X Topic object.", + "required": [ + "id", + "name" + ], + "properties": { + "description": { + "type": "string", + "description": "The description of the given topic." + }, + "id": { + "type": "string", + "description": "An ID suitable for use in the REST API." + }, + "name": { + "type": "string", + "description": "The name of the given topic." + } + }, + "example": { + "description": "All about technology", + "id": "848920371311001600", + "name": "Technology" + } + } + }, + "updated_at": { + "type": "string", + "description": "When the Space was last updated.", + "format": "date-time", + "example": "2021-7-14T04:35:55Z" + } + } + }, + "SpaceId": { + "type": "string", + "description": "The unique identifier of this Space.", + "pattern": "^[a-zA-Z0-9]{1,13}$", + "example": "1SLjjRYNejbKM" + }, + "Start": { + "type": "string", + "description": "The start time of the bucket.", + "format": "date-time" + }, + "Sticker": { + "type": "object", + "properties": { + "aspect_ratio": { + "type": "number", + "description": "width-to-height ratio of the media", + "format": "double", + "example": 1.78 + }, + "group_annotation_id": { + "type": "number", + "description": "A unique identifier for the group of annotations associated with the media", + "format": "long", + "example": 987654321098765 + }, + "id": { + "type": "string", + "description": "Unique identifier for sticker", + "example": "12345" + }, + "sticker_set_annotation_id": { + "type": "number", + "description": "A unique identifier for the sticker set associated with the media", + "format": "long", + "example": 123456789012345 + }, + "transform_a": { + "type": "number", + "description": "Scale or rotate the media on the x-axis", + "format": "double", + "example": 1.0 + }, + "transform_b": { + "type": "number", + "description": "Skew the media on the x-axis", + "format": "double", + "example": 0.0 + }, + "transform_c": { + "type": "number", + "description": "Skew the media on the y-axis", + "format": "double", + "example": 0.0 + }, + "transform_d": { + "type": "number", + "description": "Scale or rotate the media on the y-axis", + "format": "double", + "example": 1.0 + }, + "transform_tx": { + "type": "number", + "description": "Scale or rotate the media on the x-axis", + "format": "double", + "example": 10.5 + }, + "transform_ty": { + "type": "number", + "description": "The vertical translation (shift) value for the media", + "format": "double", + "example": -5.2 + } + } + }, + "StickerInfo": { + "type": "object", + "properties": { + "stickers": { + "type": "array", + "description": "Stickers list must not be empty and should not exceed 25", + "items": { + "$ref": "#/components/schemas/Sticker" + } + } + } + }, + "StreamingLikeResponseV2": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/LikeWithTweetAuthor" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "StreamingTweetResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "SubscriptionsCountGetResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "The count of active subscriptions across all webhooks", + "required": [ + "account_name", + "provisioned_count", + "subscriptions_count_all", + "subscriptions_count_direct_messages" + ], + "properties": { + "account_name": { + "type": "string", + "description": "The account name" + }, + "provisioned_count": { + "type": "string", + "description": "The limit for subscriptions for this app" + }, + "subscriptions_count_all": { + "type": "string", + "description": "The number of active subscriptions across all webhooks" + }, + "subscriptions_count_direct_messages": { + "type": "string", + "description": "The number of active direct message subscriptions" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsCreateRequest": { + "type": "object" + }, + "SubscriptionsCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "subscribed": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "subscribed": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsGetResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "subscribed": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsListGetResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "The list of active subscriptions for a specified webhook", + "required": [ + "application_id", + "webhook_id", + "webhook_url", + "subscriptions" + ], + "properties": { + "application_id": { + "type": "string", + "description": "The application ID" + }, + "subscriptions": { + "type": "array", + "description": "List of active subscriptions for the webhook", + "items": { + "type": "object", + "properties": { + "user_id": { + "type": "string", + "description": "The ID of the user the webhook is subscribed to" + } + } + } + }, + "webhook_id": { + "type": "string", + "description": "The associated webhook ID" + }, + "webhook_url": { + "type": "string", + "description": "The url for the associated webhook" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubtitleLanguageCode": { + "type": "string", + "description": "The language code should be a BCP47 code (e.g. 'EN\", \"SP\")", + "pattern": "^[A-Z]{2}$", + "example": "EN" + }, + "Subtitles": { + "type": "object", + "properties": { + "display_name": { + "type": "string", + "description": "Language name in a human readable form", + "example": "English" + }, + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "language_code": { + "$ref": "#/components/schemas/SubtitleLanguageCode" + } + } + }, + "SubtitlesCreateRequest": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "media_category": { + "$ref": "#/components/schemas/MediaCategorySubtitles" + }, + "subtitles": { + "$ref": "#/components/schemas/Subtitles" + } + } + }, + "SubtitlesCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "id", + "media_category", + "associated_subtitles" + ], + "properties": { + "associated_subtitles": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Subtitles" + } + }, + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "media_category": { + "$ref": "#/components/schemas/MediaCategorySubtitles" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubtitlesDeleteRequest": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "language_code": { + "$ref": "#/components/schemas/SubtitleLanguageCode" + }, + "media_category": { + "$ref": "#/components/schemas/MediaCategorySubtitles" + } + } + }, + "SubtitlesDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "deleted" + ], + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "TimestampedMetrics": { + "type": "object", + "properties": { + "metrics": { + "$ref": "#/components/schemas/Metrics" + }, + "timestamp": { + "type": "string", + "title": "Timestamp", + "description": "ISO8601 Time", + "example": "2025-03-17T06:30:00Z" + } + } + }, + "Topic": { + "type": "object", + "description": "The topic of a Space, as selected by its creator.", + "required": [ + "id", + "name" + ], + "properties": { + "description": { + "type": "string", + "description": "The description of the given topic.", + "example": "All about technology" + }, + "id": { + "$ref": "#/components/schemas/TopicId" + }, + "name": { + "type": "string", + "description": "The name of the given topic.", + "example": "Technology" + } + } + }, + "TopicId": { + "type": "string", + "description": "Unique identifier of this Topic." + }, + "Trend": { + "type": "object", + "description": "A trend.", + "properties": { + "trend_name": { + "type": "string", + "description": "Name of the trend." + }, + "tweet_count": { + "type": "integer", + "description": "Number of Posts in this trend.", + "format": "int32" + } + } + }, + "Tweet": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "description": "Specifies the type of attachments (if any) present in this Tweet.", + "properties": { + "media_keys": { + "type": "array", + "description": "A list of Media Keys for each one of the media attachments (if media are attached).", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/MediaKey" + } + }, + "media_source_tweet_id": { + "type": "array", + "description": "A list of Posts the media on this Tweet was originally posted in. For example, if the media on a tweet is re-used in another Tweet, this refers to the original, source Tweet..", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/TweetId" + } + }, + "poll_ids": { + "type": "array", + "description": "A list of poll IDs (if polls are attached).", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/PollId" + } + } + } + }, + "author_id": { + "$ref": "#/components/schemas/UserId" + }, + "community_id": { + "$ref": "#/components/schemas/CommunityId" + }, + "context_annotations": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/ContextAnnotation" + } + }, + "conversation_id": { + "$ref": "#/components/schemas/TweetId" + }, + "created_at": { + "type": "string", + "description": "Creation time of the Tweet.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "display_text_range": { + "$ref": "#/components/schemas/DisplayTextRange" + }, + "edit_controls": { + "type": "object", + "required": [ + "is_edit_eligible", + "editable_until", + "edits_remaining" + ], + "properties": { + "editable_until": { + "type": "string", + "description": "Time when Tweet is no longer editable.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "edits_remaining": { + "type": "integer", + "description": "Number of times this Tweet can be edited." + }, + "is_edit_eligible": { + "type": "boolean", + "description": "Indicates if this Tweet is eligible to be edited.", + "example": false + } + } + }, + "edit_history_tweet_ids": { + "type": "array", + "description": "A list of Tweet Ids in this Tweet chain.", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/TweetId" + } + }, + "entities": { + "$ref": "#/components/schemas/FullTextEntities" + }, + "geo": { + "type": "object", + "description": "The location tagged on the Tweet, if the user provided one.", + "properties": { + "coordinates": { + "$ref": "#/components/schemas/Point" + }, + "place_id": { + "$ref": "#/components/schemas/PlaceId" + } + } + }, + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "in_reply_to_user_id": { + "$ref": "#/components/schemas/UserId" + }, + "lang": { + "type": "string", + "description": "Language of the Tweet, if detected by X. Returned as a BCP47 language tag.", + "example": "en" + }, + "non_public_metrics": { + "type": "object", + "description": "Nonpublic engagement metrics for the Tweet at the time of the request.", + "properties": { + "impression_count": { + "type": "integer", + "description": "Number of times this Tweet has been viewed.", + "format": "int32" + } + } + }, + "note_tweet": { + "type": "object", + "description": "The full-content of the Tweet, including text beyond 280 characters.", + "properties": { + "entities": { + "type": "object", + "properties": { + "cashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/CashtagEntity" + } + }, + "hashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/HashtagEntity" + } + }, + "mentions": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/MentionEntity" + } + }, + "urls": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UrlEntity" + } + } + } + }, + "text": { + "$ref": "#/components/schemas/NoteTweetText" + } + } + }, + "organic_metrics": { + "type": "object", + "description": "Organic nonpublic engagement metrics for the Tweet at the time of the request.", + "required": [ + "impression_count", + "retweet_count", + "reply_count", + "like_count" + ], + "properties": { + "impression_count": { + "type": "integer", + "description": "Number of times this Tweet has been viewed." + }, + "like_count": { + "type": "integer", + "description": "Number of times this Tweet has been liked." + }, + "reply_count": { + "type": "integer", + "description": "Number of times this Tweet has been replied to." + }, + "retweet_count": { + "type": "integer", + "description": "Number of times this Tweet has been Retweeted." + } + } + }, + "possibly_sensitive": { + "type": "boolean", + "description": "Indicates if this Tweet contains URLs marked as sensitive, for example content suitable for mature audiences.", + "example": false + }, + "promoted_metrics": { + "type": "object", + "description": "Promoted nonpublic engagement metrics for the Tweet at the time of the request.", + "properties": { + "impression_count": { + "type": "integer", + "description": "Number of times this Tweet has been viewed.", + "format": "int32" + }, + "like_count": { + "type": "integer", + "description": "Number of times this Tweet has been liked.", + "format": "int32" + }, + "reply_count": { + "type": "integer", + "description": "Number of times this Tweet has been replied to.", + "format": "int32" + }, + "retweet_count": { + "type": "integer", + "description": "Number of times this Tweet has been Retweeted.", + "format": "int32" + } + } + }, + "public_metrics": { + "type": "object", + "description": "Engagement metrics for the Tweet at the time of the request.", + "required": [ + "retweet_count", + "reply_count", + "like_count", + "impression_count", + "bookmark_count" + ], + "properties": { + "bookmark_count": { + "type": "integer", + "description": "Number of times this Tweet has been bookmarked.", + "format": "int32" + }, + "impression_count": { + "type": "integer", + "description": "Number of times this Tweet has been viewed.", + "format": "int32" + }, + "like_count": { + "type": "integer", + "description": "Number of times this Tweet has been liked." + }, + "quote_count": { + "type": "integer", + "description": "Number of times this Tweet has been quoted." + }, + "reply_count": { + "type": "integer", + "description": "Number of times this Tweet has been replied to." + }, + "retweet_count": { + "type": "integer", + "description": "Number of times this Tweet has been Retweeted." + } + } + }, + "referenced_tweets": { + "type": "array", + "description": "A list of Posts this Tweet refers to. For example, if the parent Tweet is a Retweet, a Quoted Tweet or a Reply, it will include the related Tweet referenced to by its parent.", + "minItems": 1, + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "type": { + "type": "string", + "enum": [ + "retweeted", + "quoted", + "replied_to" + ] + } + } + } + }, + "reply_settings": { + "$ref": "#/components/schemas/ReplySettingsWithVerifiedUsers" + }, + "scopes": { + "type": "object", + "description": "The scopes for this tweet", + "properties": { + "followers": { + "type": "boolean", + "description": "Indicates if this Tweet is viewable by followers without the Tweet ID", + "example": false + } + } + }, + "source": { + "type": "string", + "description": "This is deprecated." + }, + "text": { + "$ref": "#/components/schemas/TweetText" + }, + "username": { + "$ref": "#/components/schemas/UserName" + }, + "withheld": { + "$ref": "#/components/schemas/TweetWithheld" + } + }, + "example": { + "author_id": "2244994945", + "created_at": "Wed Jan 06 18:40:40 +0000 2021", + "id": "1346889436626259968", + "text": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet https:\/\/t.co\/56a0vZUx7i", + "username": "XDevelopers" + } + }, + "TweetComplianceData": { + "description": "Tweet compliance data.", + "oneOf": [ + { + "$ref": "#/components/schemas/TweetDeleteComplianceSchema" + }, + { + "$ref": "#/components/schemas/TweetWithheldComplianceSchema" + }, + { + "$ref": "#/components/schemas/TweetDropComplianceSchema" + }, + { + "$ref": "#/components/schemas/TweetUndropComplianceSchema" + }, + { + "$ref": "#/components/schemas/TweetEditComplianceSchema" + } ] - }, - "value" : { - "type" : "string", - "description" : "Value will match the schema of the field." - } - } - } - ] - }, - "ResourceUnauthorizedProblem" : { - "description" : "A problem that indicates you are not allowed to see a particular Tweet, User, etc.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "required" : [ - "value", - "resource_id", - "resource_type", - "section", - "parameter" - ], - "properties" : { - "parameter" : { - "type" : "string" - }, - "resource_id" : { - "type" : "string" - }, - "resource_type" : { - "type" : "string", - "enum" : [ - "user", - "tweet", - "media", - "list", - "space" + }, + "TweetComplianceSchema": { + "type": "object", + "required": [ + "tweet", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "quote_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "tweet": { + "type": "object", + "required": [ + "id", + "author_id" + ], + "properties": { + "author_id": { + "$ref": "#/components/schemas/UserId" + }, + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetComplianceStreamResponse": { + "description": "Tweet compliance stream events.", + "oneOf": [ + { + "type": "object", + "description": "Compliance event.", + "required": [ + "data" + ], + "properties": { + "data": { + "$ref": "#/components/schemas/TweetComplianceData" + } + } + }, + { + "type": "object", + "required": [ + "errors" + ], + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + } ] - }, - "section" : { - "type" : "string", - "enum" : [ - "data", - "includes" + }, + "TweetCount": { + "type": "integer", + "description": "The count for the bucket." + }, + "TweetCreateRequest": { + "type": "object", + "properties": { + "card_uri": { + "type": "string", + "description": "Card Uri Parameter. This is mutually exclusive from Quote Tweet Id, Poll, Media, and Direct Message Deep Link." + }, + "community_id": { + "$ref": "#/components/schemas/CommunityId" + }, + "direct_message_deep_link": { + "type": "string", + "description": "Link to take the conversation from the public timeline to a private Direct Message." + }, + "for_super_followers_only": { + "type": "boolean", + "description": "Exclusive Tweet for super followers.", + "default": false + }, + "geo": { + "type": "object", + "description": "Place ID being attached to the Tweet for geo location.", + "properties": { + "place_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "media": { + "type": "object", + "description": "Media information being attached to created Tweet. This is mutually exclusive from Quote Tweet Id, Poll, and Card URI.", + "required": [ + "media_ids" + ], + "properties": { + "media_ids": { + "type": "array", + "description": "A list of Media Ids to be attached to a created Tweet.", + "minItems": 1, + "maxItems": 4, + "items": { + "$ref": "#/components/schemas/MediaId" + } + }, + "tagged_user_ids": { + "type": "array", + "description": "A list of User Ids to be tagged in the media for created Tweet.", + "minItems": 0, + "maxItems": 10, + "items": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "additionalProperties": false + }, + "nullcast": { + "type": "boolean", + "description": "Nullcasted (promoted-only) Posts do not appear in the public timeline and are not served to followers.", + "default": false + }, + "poll": { + "type": "object", + "description": "Poll options for a Tweet with a poll. This is mutually exclusive from Media, Quote Tweet Id, and Card URI.", + "required": [ + "options", + "duration_minutes" + ], + "properties": { + "duration_minutes": { + "type": "integer", + "description": "Duration of the poll in minutes.", + "minimum": 5, + "maximum": 10080, + "format": "int32" + }, + "options": { + "type": "array", + "minItems": 2, + "maxItems": 4, + "items": { + "type": "string", + "description": "The text of a poll choice.", + "minLength": 1, + "maxLength": 25 + } + }, + "reply_settings": { + "type": "string", + "description": "Settings to indicate who can reply to the Tweet.", + "enum": [ + "following", + "mentionedUsers", + "subscribers", + "verified" + ] + } + }, + "additionalProperties": false + }, + "quote_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "reply": { + "type": "object", + "description": "Tweet information of the Tweet being replied to.", + "required": [ + "in_reply_to_tweet_id" + ], + "properties": { + "exclude_reply_user_ids": { + "type": "array", + "description": "A list of User Ids to be excluded from the reply Tweet.", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "in_reply_to_tweet_id": { + "$ref": "#/components/schemas/TweetId" + } + }, + "additionalProperties": false + }, + "reply_settings": { + "type": "string", + "description": "Settings to indicate who can reply to the Tweet.", + "enum": [ + "following", + "mentionedUsers", + "subscribers", + "verified" + ] + }, + "text": { + "$ref": "#/components/schemas/TweetText" + } + }, + "additionalProperties": false + }, + "TweetCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "id", + "text" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "text": { + "$ref": "#/components/schemas/TweetText" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "TweetDeleteComplianceSchema": { + "type": "object", + "required": [ + "delete" + ], + "properties": { + "delete": { + "$ref": "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "deleted" + ], + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "TweetDropComplianceSchema": { + "type": "object", + "required": [ + "drop" + ], + "properties": { + "drop": { + "$ref": "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetEditComplianceObjectSchema": { + "type": "object", + "required": [ + "tweet", + "event_at", + "initial_tweet_id", + "edit_tweet_ids" + ], + "properties": { + "edit_tweet_ids": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/TweetId" + } + }, + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "initial_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "tweet": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetEditComplianceSchema": { + "type": "object", + "required": [ + "tweet_edit" + ], + "properties": { + "tweet_edit": { + "$ref": "#/components/schemas/TweetEditComplianceObjectSchema" + } + } + }, + "TweetHideRequest": { + "type": "object", + "required": [ + "hidden" + ], + "properties": { + "hidden": { + "type": "boolean" + } + } + }, + "TweetHideResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "hidden": { + "type": "boolean" + } + } + } + } + }, + "TweetId": { + "type": "string", + "description": "Unique identifier of this Tweet. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", + "pattern": "^[0-9]{1,19}$", + "example": "1346889436626259968" + }, + "TweetLabelData": { + "description": "Tweet label data.", + "oneOf": [ + { + "$ref": "#/components/schemas/TweetNoticeSchema" + }, + { + "$ref": "#/components/schemas/TweetUnviewableSchema" + } ] - }, - "value" : { - "type" : "string" - } - } - } - ] - }, - "ResourceUnavailableProblem" : { - "description" : "A problem that indicates a particular Tweet, User, etc. is not available to you.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "required" : [ - "parameter", - "resource_id", - "resource_type" - ], - "properties" : { - "parameter" : { - "type" : "string", - "minLength" : 1 - }, - "resource_id" : { - "type" : "string" - }, - "resource_type" : { - "type" : "string", - "enum" : [ - "user", - "tweet", - "media", - "list", - "space" + }, + "TweetLabelStreamResponse": { + "description": "Tweet label stream events.", + "oneOf": [ + { + "type": "object", + "description": "Tweet Label event.", + "required": [ + "data" + ], + "properties": { + "data": { + "$ref": "#/components/schemas/TweetLabelData" + } + } + }, + { + "type": "object", + "required": [ + "errors" + ], + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + } ] - } - } - } - ] - }, - "ResultCount" : { - "type" : "integer", - "description" : "The number of results returned in this response.", - "format" : "int32" - }, - "Rule" : { - "type" : "object", - "description" : "A user-provided stream filtering rule.", - "required" : [ - "value" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/RuleId" - }, - "tag" : { - "$ref" : "#/components/schemas/RuleTag" - }, - "value" : { - "$ref" : "#/components/schemas/RuleValue" - } - } - }, - "RuleId" : { - "type" : "string", - "description" : "Unique identifier of this rule.", - "pattern" : "^[0-9]{1,19}$", - "example" : "120897978112909812" - }, - "RuleNoId" : { - "type" : "object", - "description" : "A user-provided stream filtering rule.", - "required" : [ - "value" - ], - "properties" : { - "tag" : { - "$ref" : "#/components/schemas/RuleTag" - }, - "value" : { - "$ref" : "#/components/schemas/RuleValue" - } - } - }, - "RuleTag" : { - "type" : "string", - "description" : "A tag meant for the labeling of user provided rules.", - "example" : "Non-retweeted coffee Posts" - }, - "RuleValue" : { - "type" : "string", - "description" : "The filterlang value of the rule.", - "example" : "coffee -is:retweet" - }, - "RulesCapProblem" : { - "description" : "You have exceeded the maximum number of rules.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "RulesCount" : { - "type" : "object", - "description" : "A count of user-provided stream filtering rules at the application and project levels.", - "properties" : { - "all_project_client_apps" : { - "$ref" : "#/components/schemas/AllProjectClientApps" - }, - "cap_per_client_app" : { - "type" : "integer", - "description" : "Cap of number of rules allowed per client application", - "format" : "int32" - }, - "cap_per_project" : { - "type" : "integer", - "description" : "Cap of number of rules allowed per project", - "format" : "int32" - }, - "client_app_rules_count" : { - "$ref" : "#/components/schemas/AppRulesCount" - }, - "project_rules_count" : { - "type" : "integer", - "description" : "Number of rules for project", - "format" : "int32" - } - } - }, - "RulesLookupResponse" : { - "type" : "object", - "required" : [ - "meta" - ], - "properties" : { - "data" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Rule" - } - }, - "meta" : { - "$ref" : "#/components/schemas/RulesResponseMetadata" - } - } - }, - "RulesRequestSummary" : { - "oneOf" : [ - { - "type" : "object", - "description" : "A summary of the results of the addition of user-specified stream filtering rules.", - "required" : [ - "created", - "not_created", - "valid", - "invalid" - ], - "properties" : { - "created" : { - "type" : "integer", - "description" : "Number of user-specified stream filtering rules that were created.", - "format" : "int32", - "example" : 1 - }, - "invalid" : { - "type" : "integer", - "description" : "Number of invalid user-specified stream filtering rules.", - "format" : "int32", - "example" : 1 - }, - "not_created" : { - "type" : "integer", - "description" : "Number of user-specified stream filtering rules that were not created.", - "format" : "int32", - "example" : 1 - }, - "valid" : { - "type" : "integer", - "description" : "Number of valid user-specified stream filtering rules.", - "format" : "int32", - "example" : 1 - } - } - }, - { - "type" : "object", - "required" : [ - "deleted", - "not_deleted" - ], - "properties" : { - "deleted" : { - "type" : "integer", - "description" : "Number of user-specified stream filtering rules that were deleted.", - "format" : "int32" - }, - "not_deleted" : { - "type" : "integer", - "description" : "Number of user-specified stream filtering rules that were not deleted.", - "format" : "int32" - } - } - } - ] - }, - "RulesResponseMetadata" : { - "type" : "object", - "required" : [ - "sent" - ], - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "result_count" : { - "type" : "integer", - "description" : "Number of Rules in result set.", - "format" : "int32" - }, - "sent" : { - "type" : "string" - }, - "summary" : { - "$ref" : "#/components/schemas/RulesRequestSummary" - } - } - }, - "SearchCount" : { - "type" : "object", - "description" : "Represent a Search Count Result.", - "required" : [ - "end", - "start", - "tweet_count" - ], - "properties" : { - "end" : { - "$ref" : "#/components/schemas/End" - }, - "start" : { - "$ref" : "#/components/schemas/Start" - }, - "tweet_count" : { - "$ref" : "#/components/schemas/TweetCount" - } - } - }, - "SensitiveMediaWarning" : { - "type" : "object", - "properties" : { - "adult_content" : { - "type" : "boolean", - "description" : "Indicates if the content contains adult material", - "example" : true - }, - "graphic_violence" : { - "type" : "boolean", - "description" : "Indicates if the content depicts graphic violence", - "example" : true - }, - "other" : { - "type" : "boolean", - "description" : "Indicates if the content has other sensitive characteristics", - "example" : false - } - } - }, - "SharedInfo" : { - "type" : "object", - "properties" : { - "shared" : { - "type" : "boolean", - "description" : "Indicates if the media is shared in direct messages", - "example" : false - } - } - }, - "Space" : { - "type" : "object", - "description" : "", - "required" : [ - "id", - "state" - ], - "properties" : { - "created_at" : { - "type" : "string", - "description" : "Creation time of the Space.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "creator_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "ended_at" : { - "type" : "string", - "description" : "End time of the Space.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "host_ids" : { - "type" : "array", - "description" : "The user ids for the hosts of the Space.", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "id" : { - "$ref" : "#/components/schemas/SpaceId" - }, - "invited_user_ids" : { - "type" : "array", - "description" : "An array of user ids for people who were invited to a Space.", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "is_ticketed" : { - "type" : "boolean", - "description" : "Denotes if the Space is a ticketed Space.", - "example" : "false" - }, - "lang" : { - "type" : "string", - "description" : "The language of the Space.", - "example" : "en" - }, - "participant_count" : { - "type" : "integer", - "description" : "The number of participants in a Space.", - "format" : "int32", - "example" : 10 - }, - "scheduled_start" : { - "type" : "string", - "description" : "A date time stamp for when a Space is scheduled to begin.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "speaker_ids" : { - "type" : "array", - "description" : "An array of user ids for people who were speakers in a Space.", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "started_at" : { - "type" : "string", - "description" : "When the Space was started as a date string.", - "format" : "date-time", - "example" : "2021-7-14T04:35:55Z" - }, - "state" : { - "type" : "string", - "description" : "The current state of the Space.", - "enum" : [ - "live", - "scheduled", - "ended" - ], - "example" : "live" - }, - "subscriber_count" : { - "type" : "integer", - "description" : "The number of people who have either purchased a ticket or set a reminder for this Space.", - "format" : "int32", - "example" : 10 - }, - "title" : { - "type" : "string", - "description" : "The title of the Space.", - "example" : "Spaces are Awesome" - }, - "topics" : { - "type" : "array", - "description" : "The topics of a Space, as selected by its creator.", - "items" : { - "type" : "object", - "description" : "The X Topic object.", - "required" : [ - "id", - "name" - ], - "properties" : { - "description" : { - "type" : "string", - "description" : "The description of the given topic." - }, - "id" : { - "type" : "string", - "description" : "An ID suitable for use in the REST API." - }, - "name" : { - "type" : "string", - "description" : "The name of the given topic." - } - }, - "example" : { - "description" : "All about technology", - "id" : "848920371311001600", - "name" : "Technology" - } - } - }, - "updated_at" : { - "type" : "string", - "description" : "When the Space was last updated.", - "format" : "date-time", - "example" : "2021-7-14T04:35:55Z" - } - } - }, - "SpaceId" : { - "type" : "string", - "description" : "The unique identifier of this Space.", - "pattern" : "^[a-zA-Z0-9]{1,13}$", - "example" : "1SLjjRYNejbKM" - }, - "Start" : { - "type" : "string", - "description" : "The start time of the bucket.", - "format" : "date-time" - }, - "Sticker" : { - "type" : "object", - "properties" : { - "aspect_ratio" : { - "type" : "number", - "description" : "width-to-height ratio of the media", - "format" : "double", - "example" : 1.78 - }, - "group_annotation_id" : { - "type" : "number", - "description" : "A unique identifier for the group of annotations associated with the media", - "format" : "long", - "example" : 987654321098765 - }, - "id" : { - "type" : "string", - "description" : "Unique identifier for sticker", - "example" : "12345" - }, - "sticker_set_annotation_id" : { - "type" : "number", - "description" : "A unique identifier for the sticker set associated with the media", - "format" : "long", - "example" : 123456789012345 - }, - "transform_a" : { - "type" : "number", - "description" : "Scale or rotate the media on the x-axis", - "format" : "double", - "example" : 1.0 - }, - "transform_b" : { - "type" : "number", - "description" : "Skew the media on the x-axis", - "format" : "double", - "example" : 0.0 - }, - "transform_c" : { - "type" : "number", - "description" : "Skew the media on the y-axis", - "format" : "double", - "example" : 0.0 - }, - "transform_d" : { - "type" : "number", - "description" : "Scale or rotate the media on the y-axis", - "format" : "double", - "example" : 1.0 - }, - "transform_tx" : { - "type" : "number", - "description" : "Scale or rotate the media on the x-axis", - "format" : "double", - "example" : 10.5 - }, - "transform_ty" : { - "type" : "number", - "description" : "The vertical translation (shift) value for the media", - "format" : "double", - "example" : -5.2 - } - } - }, - "StickerInfo" : { - "type" : "object", - "properties" : { - "stickers" : { - "type" : "array", - "description" : "Stickers list must not be empty and should not exceed 25", - "items" : { - "$ref" : "#/components/schemas/Sticker" - } - } - } - }, - "StreamingLikeResponseV2" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/LikeWithTweetAuthor" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "StreamingTweetResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "SubscriptionsCountGetResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "description" : "The count of active subscriptions across all webhooks", - "required" : [ - "account_name", - "provisioned_count", - "subscriptions_count_all", - "subscriptions_count_direct_messages" - ], - "properties" : { - "account_name" : { - "type" : "string", - "description" : "The account name" - }, - "provisioned_count" : { - "type" : "string", - "description" : "The limit for subscriptions for this app" - }, - "subscriptions_count_all" : { - "type" : "string", - "description" : "The number of active subscriptions across all webhooks" - }, - "subscriptions_count_direct_messages" : { - "type" : "string", - "description" : "The number of active direct message subscriptions" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsCreateRequest" : { - "type" : "object" - }, - "SubscriptionsCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "subscribed" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "subscribed" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsGetResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "subscribed" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsListGetResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "description" : "The list of active subscriptions for a specified webhook", - "required" : [ - "application_id", - "webhook_id", - "webhook_url", - "subscriptions" - ], - "properties" : { - "application_id" : { - "type" : "string", - "description" : "The application ID" - }, - "subscriptions" : { - "type" : "array", - "description" : "List of active subscriptions for the webhook", - "items" : { - "type" : "object", - "properties" : { - "user_id" : { - "type" : "string", - "description" : "The ID of the user the webhook is subscribed to" - } - } - } - }, - "webhook_id" : { - "type" : "string", - "description" : "The associated webhook ID" - }, - "webhook_url" : { - "type" : "string", - "description" : "The url for the associated webhook" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubtitleLanguageCode" : { - "type" : "string", - "description" : "The language code should be a BCP47 code (e.g. 'EN\", \"SP\")", - "pattern" : "^[A-Z]{2}$", - "example" : "EN" - }, - "Subtitles" : { - "type" : "object", - "properties" : { - "display_name" : { - "type" : "string", - "description" : "Language name in a human readable form", - "example" : "English" - }, - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "language_code" : { - "$ref" : "#/components/schemas/SubtitleLanguageCode" - } - } - }, - "SubtitlesCreateRequest" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "media_category" : { - "$ref" : "#/components/schemas/MediaCategorySubtitles" - }, - "subtitles" : { - "$ref" : "#/components/schemas/Subtitles" - } - } - }, - "SubtitlesCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "id", - "media_category", - "associated_subtitles" - ], - "properties" : { - "associated_subtitles" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Subtitles" - } - }, - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "media_category" : { - "$ref" : "#/components/schemas/MediaCategorySubtitles" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubtitlesDeleteRequest" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "language_code" : { - "$ref" : "#/components/schemas/SubtitleLanguageCode" - }, - "media_category" : { - "$ref" : "#/components/schemas/MediaCategorySubtitles" - } - } - }, - "SubtitlesDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "deleted" - ], - "properties" : { - "deleted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "TimestampedMetrics" : { - "type" : "object", - "properties" : { - "metrics" : { - "$ref" : "#/components/schemas/Metrics" - }, - "timestamp" : { - "type" : "string", - "title" : "Timestamp", - "description" : "ISO8601 Time", - "example" : "2025-03-17T06:30:00Z" - } - } - }, - "Topic" : { - "type" : "object", - "description" : "The topic of a Space, as selected by its creator.", - "required" : [ - "id", - "name" - ], - "properties" : { - "description" : { - "type" : "string", - "description" : "The description of the given topic.", - "example" : "All about technology" - }, - "id" : { - "$ref" : "#/components/schemas/TopicId" - }, - "name" : { - "type" : "string", - "description" : "The name of the given topic.", - "example" : "Technology" - } - } - }, - "TopicId" : { - "type" : "string", - "description" : "Unique identifier of this Topic." - }, - "Trend" : { - "type" : "object", - "description" : "A trend.", - "properties" : { - "trend_name" : { - "type" : "string", - "description" : "Name of the trend." - }, - "tweet_count" : { - "type" : "integer", - "description" : "Number of Posts in this trend.", - "format" : "int32" - } - } - }, - "Tweet" : { - "type" : "object", - "properties" : { - "attachments" : { - "type" : "object", - "description" : "Specifies the type of attachments (if any) present in this Tweet.", - "properties" : { - "media_keys" : { - "type" : "array", - "description" : "A list of Media Keys for each one of the media attachments (if media are attached).", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/MediaKey" - } - }, - "media_source_tweet_id" : { - "type" : "array", - "description" : "A list of Posts the media on this Tweet was originally posted in. For example, if the media on a tweet is re-used in another Tweet, this refers to the original, source Tweet..", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "poll_ids" : { - "type" : "array", - "description" : "A list of poll IDs (if polls are attached).", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/PollId" - } - } - } - }, - "author_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "community_id" : { - "$ref" : "#/components/schemas/CommunityId" - }, - "context_annotations" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/ContextAnnotation" - } - }, - "conversation_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "created_at" : { - "type" : "string", - "description" : "Creation time of the Tweet.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "display_text_range" : { - "$ref" : "#/components/schemas/DisplayTextRange" - }, - "edit_controls" : { - "type" : "object", - "required" : [ - "is_edit_eligible", - "editable_until", - "edits_remaining" - ], - "properties" : { - "editable_until" : { - "type" : "string", - "description" : "Time when Tweet is no longer editable.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "edits_remaining" : { - "type" : "integer", - "description" : "Number of times this Tweet can be edited." - }, - "is_edit_eligible" : { - "type" : "boolean", - "description" : "Indicates if this Tweet is eligible to be edited.", - "example" : false - } - } - }, - "edit_history_tweet_ids" : { - "type" : "array", - "description" : "A list of Tweet Ids in this Tweet chain.", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "entities" : { - "$ref" : "#/components/schemas/FullTextEntities" - }, - "geo" : { - "type" : "object", - "description" : "The location tagged on the Tweet, if the user provided one.", - "properties" : { - "coordinates" : { - "$ref" : "#/components/schemas/Point" - }, - "place_id" : { - "$ref" : "#/components/schemas/PlaceId" - } - } - }, - "id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "in_reply_to_user_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "lang" : { - "type" : "string", - "description" : "Language of the Tweet, if detected by X. Returned as a BCP47 language tag.", - "example" : "en" - }, - "non_public_metrics" : { - "type" : "object", - "description" : "Nonpublic engagement metrics for the Tweet at the time of the request.", - "properties" : { - "impression_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been viewed.", - "format" : "int32" - } - } - }, - "note_tweet" : { - "type" : "object", - "description" : "The full-content of the Tweet, including text beyond 280 characters.", - "properties" : { - "entities" : { - "type" : "object", - "properties" : { - "cashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/CashtagEntity" - } - }, - "hashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/HashtagEntity" - } - }, - "mentions" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/MentionEntity" - } - }, - "urls" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UrlEntity" - } - } - } - }, - "text" : { - "$ref" : "#/components/schemas/NoteTweetText" - } - } - }, - "organic_metrics" : { - "type" : "object", - "description" : "Organic nonpublic engagement metrics for the Tweet at the time of the request.", - "required" : [ - "impression_count", - "retweet_count", - "reply_count", - "like_count" - ], - "properties" : { - "impression_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been viewed." - }, - "like_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been liked." - }, - "reply_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been replied to." - }, - "retweet_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been Retweeted." - } - } - }, - "possibly_sensitive" : { - "type" : "boolean", - "description" : "Indicates if this Tweet contains URLs marked as sensitive, for example content suitable for mature audiences.", - "example" : false - }, - "promoted_metrics" : { - "type" : "object", - "description" : "Promoted nonpublic engagement metrics for the Tweet at the time of the request.", - "properties" : { - "impression_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been viewed.", - "format" : "int32" - }, - "like_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been liked.", - "format" : "int32" - }, - "reply_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been replied to.", - "format" : "int32" - }, - "retweet_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been Retweeted.", - "format" : "int32" - } - } - }, - "public_metrics" : { - "type" : "object", - "description" : "Engagement metrics for the Tweet at the time of the request.", - "required" : [ - "retweet_count", - "reply_count", - "like_count", - "impression_count", - "bookmark_count" - ], - "properties" : { - "bookmark_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been bookmarked.", - "format" : "int32" - }, - "impression_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been viewed.", - "format" : "int32" - }, - "like_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been liked." - }, - "quote_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been quoted." - }, - "reply_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been replied to." - }, - "retweet_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been Retweeted." - } - } - }, - "referenced_tweets" : { - "type" : "array", - "description" : "A list of Posts this Tweet refers to. For example, if the parent Tweet is a Retweet, a Quoted Tweet or a Reply, it will include the related Tweet referenced to by its parent.", - "minItems" : 1, - "items" : { - "type" : "object", - "required" : [ - "type", - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" + }, + "TweetNotice": { + "type": "object", + "required": [ + "tweet", + "event_type", + "event_at", + "application" + ], + "properties": { + "application": { + "type": "string", + "description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", + "example": "apply" + }, + "details": { + "type": "string", + "description": "Information shown on the Tweet label" + }, + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "event_type": { + "type": "string", + "description": "The type of label on the Tweet", + "example": "misleading" + }, + "extended_details_url": { + "type": "string", + "description": "Link to more information about this kind of label" + }, + "label_title": { + "type": "string", + "description": "Title/header of the Tweet label" + }, + "tweet": { + "type": "object", + "required": [ + "id", + "author_id" + ], + "properties": { + "author_id": { + "$ref": "#/components/schemas/UserId" + }, + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetNoticeSchema": { + "type": "object", + "required": [ + "public_tweet_notice" + ], + "properties": { + "public_tweet_notice": { + "$ref": "#/components/schemas/TweetNotice" + } + } + }, + "TweetTakedownComplianceSchema": { + "type": "object", + "required": [ + "tweet", + "withheld_in_countries", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "quote_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "tweet": { + "type": "object", + "required": [ + "id", + "author_id" + ], + "properties": { + "author_id": { + "$ref": "#/components/schemas/UserId" + }, + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + }, + "withheld_in_countries": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/CountryCode" + } + } + } + }, + "TweetText": { + "type": "string", + "description": "The content of the Tweet.", + "example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet https:\/\/t.co\/56a0vZUx7i" + }, + "TweetUndropComplianceSchema": { + "type": "object", + "required": [ + "undrop" + ], + "properties": { + "undrop": { + "$ref": "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetUnviewable": { + "type": "object", + "required": [ + "tweet", + "event_at", + "application" + ], + "properties": { + "application": { + "type": "string", + "description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", + "example": "apply" + }, + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "tweet": { + "type": "object", + "required": [ + "id", + "author_id" + ], + "properties": { + "author_id": { + "$ref": "#/components/schemas/UserId" + }, + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetUnviewableSchema": { + "type": "object", + "required": [ + "public_tweet_unviewable" + ], + "properties": { + "public_tweet_unviewable": { + "$ref": "#/components/schemas/TweetUnviewable" + } + } + }, + "TweetWithheld": { + "type": "object", + "description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", + "required": [ + "copyright", + "country_codes" + ], + "properties": { + "copyright": { + "type": "boolean", + "description": "Indicates if the content is being withheld for on the basis of copyright infringement." + }, + "country_codes": { + "type": "array", + "description": "Provides a list of countries where this content is not available.", + "minItems": 1, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/CountryCode" + } + }, + "scope": { + "type": "string", + "description": "Indicates whether the content being withheld is the `tweet` or a `user`.", + "enum": [ + "tweet", + "user" + ] + } + } + }, + "TweetWithheldComplianceSchema": { + "type": "object", + "required": [ + "withheld" + ], + "properties": { + "withheld": { + "$ref": "#/components/schemas/TweetTakedownComplianceSchema" + } + } + }, + "UnlikeComplianceSchema": { + "type": "object", + "required": [ + "favorite", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "favorite": { + "type": "object", + "required": [ + "id", + "user_id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "user_id": { + "$ref": "#/components/schemas/UserId" + } + } + } + } + }, + "UnsupportedAuthenticationProblem": { + "description": "A problem that indicates that the authentication used is not supported.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "UploadExpiration": { + "type": "string", + "description": "Expiration time of the upload URL.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "UploadSource": { + "type": "object", + "properties": { + "upload_source": { + "type": "string", + "description": "Records the source (e.g., app, device) from which the media was uploaded", + "example": "gallery" + } + } + }, + "UploadUrl": { + "type": "string", + "description": "URL to which the user will upload their Tweet or user IDs.", + "format": "uri" + }, + "Url": { + "type": "string", + "description": "A validly formatted URL.", + "format": "uri", + "example": "https://developer.twitter.com/en/docs/twitter-api" + }, + "UrlEntity": { + "description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref": "#/components/schemas/UrlFields" + } + ] + }, + "UrlEntityDm": { + "description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref": "#/components/schemas/UrlFields" + } + ] + }, + "UrlFields": { + "type": "object", + "description": "Represent the portion of text recognized as a URL.", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string", + "description": "Description of the URL landing page.", + "example": "This is a description of the website." + }, + "display_url": { + "type": "string", + "description": "The URL as displayed in the X client.", + "example": "twittercommunity.com/t/introducing-…" + }, + "expanded_url": { + "$ref": "#/components/schemas/Url" + }, + "images": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UrlImage" + } + }, + "media_key": { + "$ref": "#/components/schemas/MediaKey" + }, + "status": { + "$ref": "#/components/schemas/HttpStatusCode" + }, + "title": { + "type": "string", + "description": "Title of the page the URL points to.", + "example": "Introducing the v2 follow lookup endpoints" + }, + "unwound_url": { + "type": "string", + "description": "Fully resolved url.", + "format": "uri", + "example": "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118" + }, + "url": { + "$ref": "#/components/schemas/Url" + } + } + }, + "UrlImage": { + "type": "object", + "description": "Represent the information for the URL image.", + "properties": { + "height": { + "$ref": "#/components/schemas/MediaHeight" + }, + "url": { + "$ref": "#/components/schemas/Url" + }, + "width": { + "$ref": "#/components/schemas/MediaWidth" + } + } + }, + "Usage": { + "type": "object", + "description": "Usage per client app", + "properties": { + "cap_reset_day": { + "type": "integer", + "description": "Number of days left for the Tweet cap to reset", + "format": "int32" + }, + "daily_client_app_usage": { + "type": "array", + "description": "The daily usage breakdown for each Client Application a project", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/ClientAppUsage" + } + }, + "daily_project_usage": { + "type": "object", + "description": "The daily usage breakdown for a project", + "properties": { + "project_id": { + "type": "integer", + "description": "The unique identifier for this project", + "format": "int32" + }, + "usage": { + "type": "array", + "description": "The usage value", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UsageFields" + } + } + } + }, + "project_cap": { + "type": "integer", + "description": "Total number of Posts that can be read in this project per month", + "format": "int32" + }, + "project_id": { + "type": "string", + "description": "The unique identifier for this project", + "format": "^[0-9]{1,19}$" + }, + "project_usage": { + "type": "integer", + "description": "The number of Posts read in this project", + "format": "int32" + } + } + }, + "UsageCapExceededProblem": { + "description": "A problem that indicates that a usage cap has been exceeded.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "period": { + "type": "string", + "enum": [ + "Daily", + "Monthly" + ] + }, + "scope": { + "type": "string", + "enum": [ + "Account", + "Product" + ] + } + } + } + ] + }, + "UsageFields": { + "type": "object", + "description": "Represents the data for Usage", + "properties": { + "date": { + "type": "string", + "description": "The time period for the usage", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "usage": { + "type": "integer", + "description": "The usage value", + "format": "int32" + } + } + }, + "User": { + "type": "object", + "description": "The X User object.", + "required": [ + "id", + "name", + "username" + ], + "properties": { + "affiliation": { + "type": "object", + "description": "Metadata about a user's affiliation.", + "properties": { + "badge_url": { + "type": "string", + "description": "The badge URL corresponding to the affiliation.", + "format": "uri" + }, + "description": { + "type": "string", + "description": "The description of the affiliation." + }, + "url": { + "type": "string", + "description": "The URL, if available, to details about an affiliation.", + "format": "uri" + }, + "user_id": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UserId" + } + } + } + }, + "connection_status": { + "type": "array", + "description": "Returns detailed information about the relationship between two users.", + "minItems": 0, + "items": { + "type": "string", + "description": "Type of connection between users.", + "enum": [ + "follow_request_received", + "follow_request_sent", + "blocking", + "followed_by", + "following", + "muting" + ] + } + }, + "created_at": { + "type": "string", + "description": "Creation time of this User.", + "format": "date-time" + }, + "description": { + "type": "string", + "description": "The text of this User's profile description (also known as bio), if the User provided one." + }, + "entities": { + "type": "object", + "description": "A list of metadata found in the User's profile description.", + "properties": { + "description": { + "$ref": "#/components/schemas/FullTextEntities" + }, + "url": { + "type": "object", + "description": "Expanded details for the URL specified in the User's profile, with start and end indices.", + "properties": { + "urls": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UrlEntity" + } + } + } + } + } + }, + "id": { + "$ref": "#/components/schemas/UserId" + }, + "location": { + "type": "string", + "description": "The location specified in the User's profile, if the User provided one. As this is a freeform value, it may not indicate a valid location, but it may be fuzzily evaluated when performing searches with location queries." + }, + "most_recent_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "name": { + "type": "string", + "description": "The friendly name of this User, as shown on their profile." + }, + "pinned_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "profile_banner_url": { + "type": "string", + "description": "The URL to the profile banner for this User.", + "format": "uri" + }, + "profile_image_url": { + "type": "string", + "description": "The URL to the profile image for this User.", + "format": "uri" + }, + "protected": { + "type": "boolean", + "description": "Indicates if this User has chosen to protect their Posts (in other words, if this User's Posts are private)." + }, + "public_metrics": { + "type": "object", + "description": "A list of metrics for this User.", + "required": [ + "followers_count", + "following_count", + "tweet_count", + "listed_count" + ], + "properties": { + "followers_count": { + "type": "integer", + "description": "Number of Users who are following this User." + }, + "following_count": { + "type": "integer", + "description": "Number of Users this User is following." + }, + "like_count": { + "type": "integer", + "description": "The number of likes created by this User." + }, + "listed_count": { + "type": "integer", + "description": "The number of lists that include this User." + }, + "tweet_count": { + "type": "integer", + "description": "The number of Posts (including Retweets) posted by this User." + } + } + }, + "receives_your_dm": { + "type": "boolean", + "description": "Indicates if you can send a DM to this User" + }, + "subscription_type": { + "type": "string", + "description": "The X Blue subscription type of the user, eg: Basic, Premium, PremiumPlus or None.", + "enum": [ + "Basic", + "Premium", + "PremiumPlus", + "None" + ] + }, + "url": { + "type": "string", + "description": "The URL specified in the User's profile." + }, + "username": { + "$ref": "#/components/schemas/UserName" + }, + "verified": { + "type": "boolean", + "description": "Indicate if this User is a verified X User." + }, + "verified_type": { + "type": "string", + "description": "The X Blue verified type of the user, eg: blue, government, business or none.", + "enum": [ + "blue", + "government", + "business", + "none" + ] + }, + "withheld": { + "$ref": "#/components/schemas/UserWithheld" + } }, - "type" : { - "type" : "string", - "enum" : [ - "retweeted", - "quoted", - "replied_to" - ] - } - } - } - }, - "reply_settings" : { - "$ref" : "#/components/schemas/ReplySettingsWithVerifiedUsers" - }, - "scopes" : { - "type" : "object", - "description" : "The scopes for this tweet", - "properties" : { - "followers" : { - "type" : "boolean", - "description" : "Indicates if this Tweet is viewable by followers without the Tweet ID", - "example" : false - } - } - }, - "source" : { - "type" : "string", - "description" : "This is deprecated." - }, - "text" : { - "$ref" : "#/components/schemas/TweetText" - }, - "username" : { - "$ref" : "#/components/schemas/UserName" - }, - "withheld" : { - "$ref" : "#/components/schemas/TweetWithheld" - } - }, - "example" : { - "author_id" : "2244994945", - "created_at" : "Wed Jan 06 18:40:40 +0000 2021", - "id" : "1346889436626259968", - "text" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i", - "username" : "XDevelopers" - } - }, - "TweetComplianceData" : { - "description" : "Tweet compliance data.", - "oneOf" : [ - { - "$ref" : "#/components/schemas/TweetDeleteComplianceSchema" - }, - { - "$ref" : "#/components/schemas/TweetWithheldComplianceSchema" - }, - { - "$ref" : "#/components/schemas/TweetDropComplianceSchema" - }, - { - "$ref" : "#/components/schemas/TweetUndropComplianceSchema" - }, - { - "$ref" : "#/components/schemas/TweetEditComplianceSchema" - } - ] - }, - "TweetComplianceSchema" : { - "type" : "object", - "required" : [ - "tweet", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "quote_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "tweet" : { - "type" : "object", - "required" : [ - "id", - "author_id" - ], - "properties" : { - "author_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetComplianceStreamResponse" : { - "description" : "Tweet compliance stream events.", - "oneOf" : [ - { - "type" : "object", - "description" : "Compliance event.", - "required" : [ - "data" - ], - "properties" : { - "data" : { - "$ref" : "#/components/schemas/TweetComplianceData" - } - } - }, - { - "type" : "object", - "required" : [ - "errors" - ], - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - ] - }, - "TweetCount" : { - "type" : "integer", - "description" : "The count for the bucket." - }, - "TweetCreateRequest" : { - "type" : "object", - "properties" : { - "card_uri" : { - "type" : "string", - "description" : "Card Uri Parameter. This is mutually exclusive from Quote Tweet Id, Poll, Media, and Direct Message Deep Link." - }, - "community_id" : { - "$ref" : "#/components/schemas/CommunityId" - }, - "direct_message_deep_link" : { - "type" : "string", - "description" : "Link to take the conversation from the public timeline to a private Direct Message." - }, - "for_super_followers_only" : { - "type" : "boolean", - "description" : "Exclusive Tweet for super followers.", - "default" : false - }, - "geo" : { - "type" : "object", - "description" : "Place ID being attached to the Tweet for geo location.", - "properties" : { - "place_id" : { - "type" : "string" - } - }, - "additionalProperties" : false - }, - "media" : { - "type" : "object", - "description" : "Media information being attached to created Tweet. This is mutually exclusive from Quote Tweet Id, Poll, and Card URI.", - "required" : [ - "media_ids" - ], - "properties" : { - "media_ids" : { - "type" : "array", - "description" : "A list of Media Ids to be attached to a created Tweet.", - "minItems" : 1, - "maxItems" : 4, - "items" : { - "$ref" : "#/components/schemas/MediaId" - } - }, - "tagged_user_ids" : { - "type" : "array", - "description" : "A list of User Ids to be tagged in the media for created Tweet.", - "minItems" : 0, - "maxItems" : 10, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "additionalProperties" : false - }, - "nullcast" : { - "type" : "boolean", - "description" : "Nullcasted (promoted-only) Posts do not appear in the public timeline and are not served to followers.", - "default" : false - }, - "poll" : { - "type" : "object", - "description" : "Poll options for a Tweet with a poll. This is mutually exclusive from Media, Quote Tweet Id, and Card URI.", - "required" : [ - "options", - "duration_minutes" - ], - "properties" : { - "duration_minutes" : { - "type" : "integer", - "description" : "Duration of the poll in minutes.", - "minimum" : 5, - "maximum" : 10080, - "format" : "int32" - }, - "options" : { - "type" : "array", - "minItems" : 2, - "maxItems" : 4, - "items" : { - "type" : "string", - "description" : "The text of a poll choice.", - "minLength" : 1, - "maxLength" : 25 - } - }, - "reply_settings" : { - "type" : "string", - "description" : "Settings to indicate who can reply to the Tweet.", - "enum" : [ - "following", - "mentionedUsers", - "subscribers", - "verified" + "example": { + "created_at": "2013-12-14T04:35:55Z", + "id": "2244994945", + "name": "X Dev", + "protected": false, + "username": "TwitterDev" + } + }, + "UserComplianceData": { + "description": "User compliance data.", + "oneOf": [ + { + "$ref": "#/components/schemas/UserProtectComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserUnprotectComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserDeleteComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserUndeleteComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserSuspendComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserUnsuspendComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserWithheldComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserScrubGeoSchema" + }, + { + "$ref": "#/components/schemas/UserProfileModificationComplianceSchema" + } ] - } - }, - "additionalProperties" : false - }, - "quote_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "reply" : { - "type" : "object", - "description" : "Tweet information of the Tweet being replied to.", - "required" : [ - "in_reply_to_tweet_id" - ], - "properties" : { - "exclude_reply_user_ids" : { - "type" : "array", - "description" : "A list of User Ids to be excluded from the reply Tweet.", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "in_reply_to_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "additionalProperties" : false - }, - "reply_settings" : { - "type" : "string", - "description" : "Settings to indicate who can reply to the Tweet.", - "enum" : [ - "following", - "mentionedUsers", - "subscribers", - "verified" - ] - }, - "text" : { - "$ref" : "#/components/schemas/TweetText" - } - }, - "additionalProperties" : false - }, - "TweetCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "id", - "text" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "text" : { - "$ref" : "#/components/schemas/TweetText" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "TweetDeleteComplianceSchema" : { - "type" : "object", - "required" : [ - "delete" - ], - "properties" : { - "delete" : { - "$ref" : "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "deleted" - ], - "properties" : { - "deleted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "TweetDropComplianceSchema" : { - "type" : "object", - "required" : [ - "drop" - ], - "properties" : { - "drop" : { - "$ref" : "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetEditComplianceObjectSchema" : { - "type" : "object", - "required" : [ - "tweet", - "event_at", - "initial_tweet_id", - "edit_tweet_ids" - ], - "properties" : { - "edit_tweet_ids" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "initial_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "tweet" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetEditComplianceSchema" : { - "type" : "object", - "required" : [ - "tweet_edit" - ], - "properties" : { - "tweet_edit" : { - "$ref" : "#/components/schemas/TweetEditComplianceObjectSchema" - } - } - }, - "TweetHideRequest" : { - "type" : "object", - "required" : [ - "hidden" - ], - "properties" : { - "hidden" : { - "type" : "boolean" - } - } - }, - "TweetHideResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "hidden" : { - "type" : "boolean" - } - } - } - } - }, - "TweetId" : { - "type" : "string", - "description" : "Unique identifier of this Tweet. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1346889436626259968" - }, - "TweetLabelData" : { - "description" : "Tweet label data.", - "oneOf" : [ - { - "$ref" : "#/components/schemas/TweetNoticeSchema" - }, - { - "$ref" : "#/components/schemas/TweetUnviewableSchema" - } - ] - }, - "TweetLabelStreamResponse" : { - "description" : "Tweet label stream events.", - "oneOf" : [ - { - "type" : "object", - "description" : "Tweet Label event.", - "required" : [ - "data" - ], - "properties" : { - "data" : { - "$ref" : "#/components/schemas/TweetLabelData" - } - } - }, - { - "type" : "object", - "required" : [ - "errors" - ], - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - ] - }, - "TweetNotice" : { - "type" : "object", - "required" : [ - "tweet", - "event_type", - "event_at", - "application" - ], - "properties" : { - "application" : { - "type" : "string", - "description" : "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", - "example" : "apply" - }, - "details" : { - "type" : "string", - "description" : "Information shown on the Tweet label" - }, - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "event_type" : { - "type" : "string", - "description" : "The type of label on the Tweet", - "example" : "misleading" - }, - "extended_details_url" : { - "type" : "string", - "description" : "Link to more information about this kind of label" - }, - "label_title" : { - "type" : "string", - "description" : "Title/header of the Tweet label" - }, - "tweet" : { - "type" : "object", - "required" : [ - "id", - "author_id" - ], - "properties" : { - "author_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetNoticeSchema" : { - "type" : "object", - "required" : [ - "public_tweet_notice" - ], - "properties" : { - "public_tweet_notice" : { - "$ref" : "#/components/schemas/TweetNotice" - } - } - }, - "TweetTakedownComplianceSchema" : { - "type" : "object", - "required" : [ - "tweet", - "withheld_in_countries", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "quote_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "tweet" : { - "type" : "object", - "required" : [ - "id", - "author_id" - ], - "properties" : { - "author_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - }, - "withheld_in_countries" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/CountryCode" - } - } - } - }, - "TweetText" : { - "type" : "string", - "description" : "The content of the Tweet.", - "example" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" - }, - "TweetUndropComplianceSchema" : { - "type" : "object", - "required" : [ - "undrop" - ], - "properties" : { - "undrop" : { - "$ref" : "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetUnviewable" : { - "type" : "object", - "required" : [ - "tweet", - "event_at", - "application" - ], - "properties" : { - "application" : { - "type" : "string", - "description" : "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", - "example" : "apply" - }, - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "tweet" : { - "type" : "object", - "required" : [ - "id", - "author_id" - ], - "properties" : { - "author_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetUnviewableSchema" : { - "type" : "object", - "required" : [ - "public_tweet_unviewable" - ], - "properties" : { - "public_tweet_unviewable" : { - "$ref" : "#/components/schemas/TweetUnviewable" - } - } - }, - "TweetWithheld" : { - "type" : "object", - "description" : "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", - "required" : [ - "copyright", - "country_codes" - ], - "properties" : { - "copyright" : { - "type" : "boolean", - "description" : "Indicates if the content is being withheld for on the basis of copyright infringement." - }, - "country_codes" : { - "type" : "array", - "description" : "Provides a list of countries where this content is not available.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "$ref" : "#/components/schemas/CountryCode" - } - }, - "scope" : { - "type" : "string", - "description" : "Indicates whether the content being withheld is the `tweet` or a `user`.", - "enum" : [ - "tweet", - "user" - ] - } - } - }, - "TweetWithheldComplianceSchema" : { - "type" : "object", - "required" : [ - "withheld" - ], - "properties" : { - "withheld" : { - "$ref" : "#/components/schemas/TweetTakedownComplianceSchema" - } - } - }, - "UnlikeComplianceSchema" : { - "type" : "object", - "required" : [ - "favorite", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "favorite" : { - "type" : "object", - "required" : [ - "id", - "user_id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "user_id" : { - "$ref" : "#/components/schemas/UserId" - } - } - } - } - }, - "UnsupportedAuthenticationProblem" : { - "description" : "A problem that indicates that the authentication used is not supported.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "UploadExpiration" : { - "type" : "string", - "description" : "Expiration time of the upload URL.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "UploadSource" : { - "type" : "object", - "properties" : { - "upload_source" : { - "type" : "string", - "description" : "Records the source (e.g., app, device) from which the media was uploaded", - "example" : "gallery" - } - } - }, - "UploadUrl" : { - "type" : "string", - "description" : "URL to which the user will upload their Tweet or user IDs.", - "format" : "uri" - }, - "Url" : { - "type" : "string", - "description" : "A validly formatted URL.", - "format" : "uri", - "example" : "https://developer.twitter.com/en/docs/twitter-api" - }, - "UrlEntity" : { - "description" : "Represent the portion of text recognized as a URL, and its start and end position within the text.", - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref" : "#/components/schemas/UrlFields" - } - ] - }, - "UrlEntityDm" : { - "description" : "Represent the portion of text recognized as a URL, and its start and end position within the text.", - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref" : "#/components/schemas/UrlFields" - } - ] - }, - "UrlFields" : { - "type" : "object", - "description" : "Represent the portion of text recognized as a URL.", - "required" : [ - "url" - ], - "properties" : { - "description" : { - "type" : "string", - "description" : "Description of the URL landing page.", - "example" : "This is a description of the website." - }, - "display_url" : { - "type" : "string", - "description" : "The URL as displayed in the X client.", - "example" : "twittercommunity.com/t/introducing-…" - }, - "expanded_url" : { - "$ref" : "#/components/schemas/Url" - }, - "images" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UrlImage" - } - }, - "media_key" : { - "$ref" : "#/components/schemas/MediaKey" - }, - "status" : { - "$ref" : "#/components/schemas/HttpStatusCode" - }, - "title" : { - "type" : "string", - "description" : "Title of the page the URL points to.", - "example" : "Introducing the v2 follow lookup endpoints" - }, - "unwound_url" : { - "type" : "string", - "description" : "Fully resolved url.", - "format" : "uri", - "example" : "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118" - }, - "url" : { - "$ref" : "#/components/schemas/Url" - } - } - }, - "UrlImage" : { - "type" : "object", - "description" : "Represent the information for the URL image.", - "properties" : { - "height" : { - "$ref" : "#/components/schemas/MediaHeight" - }, - "url" : { - "$ref" : "#/components/schemas/Url" - }, - "width" : { - "$ref" : "#/components/schemas/MediaWidth" - } - } - }, - "Usage" : { - "type" : "object", - "description" : "Usage per client app", - "properties" : { - "cap_reset_day" : { - "type" : "integer", - "description" : "Number of days left for the Tweet cap to reset", - "format" : "int32" - }, - "daily_client_app_usage" : { - "type" : "array", - "description" : "The daily usage breakdown for each Client Application a project", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/ClientAppUsage" - } - }, - "daily_project_usage" : { - "type" : "object", - "description" : "The daily usage breakdown for a project", - "properties" : { - "project_id" : { - "type" : "integer", - "description" : "The unique identifier for this project", - "format" : "int32" - }, - "usage" : { - "type" : "array", - "description" : "The usage value", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UsageFields" - } - } - } - }, - "project_cap" : { - "type" : "integer", - "description" : "Total number of Posts that can be read in this project per month", - "format" : "int32" - }, - "project_id" : { - "type" : "string", - "description" : "The unique identifier for this project", - "format" : "^[0-9]{1,19}$" - }, - "project_usage" : { - "type" : "integer", - "description" : "The number of Posts read in this project", - "format" : "int32" - } - } - }, - "UsageCapExceededProblem" : { - "description" : "A problem that indicates that a usage cap has been exceeded.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "period" : { - "type" : "string", - "enum" : [ - "Daily", - "Monthly" + }, + "UserComplianceSchema": { + "type": "object", + "required": [ + "user", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "user": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/UserId" + } + } + } + } + }, + "UserComplianceStreamResponse": { + "description": "User compliance stream events.", + "oneOf": [ + { + "type": "object", + "description": "User compliance event.", + "required": [ + "data" + ], + "properties": { + "data": { + "$ref": "#/components/schemas/UserComplianceData" + } + } + }, + { + "type": "object", + "required": [ + "errors" + ], + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + } ] - }, - "scope" : { - "type" : "string", - "enum" : [ - "Account", - "Product" + }, + "UserDeleteComplianceSchema": { + "type": "object", + "required": [ + "user_delete" + ], + "properties": { + "user_delete": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserId": { + "type": "string", + "description": "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", + "pattern": "^[0-9]{1,19}$", + "example": "2244994945" + }, + "UserIdMatchesAuthenticatedUser": { + "type": "string", + "description": "Unique identifier of this User. The value must be the same as the authenticated user.", + "example": "2244994945" + }, + "UserName": { + "type": "string", + "description": "The X handle (screen name) of this user.", + "pattern": "^[A-Za-z0-9_]{1,15}$" + }, + "UserProfileModificationComplianceSchema": { + "type": "object", + "required": [ + "user_profile_modification" + ], + "properties": { + "user_profile_modification": { + "$ref": "#/components/schemas/UserProfileModificationObjectSchema" + } + } + }, + "UserProfileModificationObjectSchema": { + "type": "object", + "required": [ + "user", + "profile_field", + "new_value", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "new_value": { + "type": "string" + }, + "profile_field": { + "type": "string" + }, + "user": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/UserId" + } + } + } + } + }, + "UserProtectComplianceSchema": { + "type": "object", + "required": [ + "user_protect" + ], + "properties": { + "user_protect": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserScrubGeoObjectSchema": { + "type": "object", + "required": [ + "user", + "up_to_tweet_id", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "up_to_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "user": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/UserId" + } + } + } + } + }, + "UserScrubGeoSchema": { + "type": "object", + "required": [ + "scrub_geo" + ], + "properties": { + "scrub_geo": { + "$ref": "#/components/schemas/UserScrubGeoObjectSchema" + } + } + }, + "UserSearchQueryVnext": { + "type": "string", + "description": "The the search string by which to query for users.", + "pattern": "^[A-Za-z0-9_' ]{1,50}$" + }, + "UserSuspendComplianceSchema": { + "type": "object", + "required": [ + "user_suspend" + ], + "properties": { + "user_suspend": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserTakedownComplianceSchema": { + "type": "object", + "required": [ + "user", + "withheld_in_countries", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "user": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "withheld_in_countries": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/CountryCode" + } + } + } + }, + "UserUndeleteComplianceSchema": { + "type": "object", + "required": [ + "user_undelete" + ], + "properties": { + "user_undelete": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserUnprotectComplianceSchema": { + "type": "object", + "required": [ + "user_unprotect" + ], + "properties": { + "user_unprotect": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserUnsuspendComplianceSchema": { + "type": "object", + "required": [ + "user_unsuspend" + ], + "properties": { + "user_unsuspend": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserWithheld": { + "type": "object", + "description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", + "required": [ + "country_codes" + ], + "properties": { + "country_codes": { + "type": "array", + "description": "Provides a list of countries where this content is not available.", + "minItems": 1, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/CountryCode" + } + }, + "scope": { + "type": "string", + "description": "Indicates that the content being withheld is a `user`.", + "enum": [ + "user" + ] + } + } + }, + "UserWithheldComplianceSchema": { + "type": "object", + "required": [ + "user_withheld" + ], + "properties": { + "user_withheld": { + "$ref": "#/components/schemas/UserTakedownComplianceSchema" + } + } + }, + "UsersDMBlockCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "blocked": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersDMUnBlockCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "blocked": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersFollowingCreateRequest": { + "type": "object", + "required": [ + "target_user_id" + ], + "properties": { + "target_user_id": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "UsersFollowingCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "following": { + "type": "boolean" + }, + "pending_follow": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersFollowingDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "following": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersLikesCreateRequest": { + "type": "object", + "required": [ + "tweet_id" + ], + "properties": { + "tweet_id": { + "$ref": "#/components/schemas/TweetId" + } + } + }, + "UsersLikesCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "liked": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersLikesDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "liked": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersRetweetsCreateRequest": { + "type": "object", + "required": [ + "tweet_id" + ], + "properties": { + "tweet_id": { + "$ref": "#/components/schemas/TweetId" + } + }, + "additionalProperties": false + }, + "UsersRetweetsCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "retweeted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersRetweetsDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "retweeted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Variant": { + "type": "object", + "properties": { + "bit_rate": { + "type": "integer", + "description": "The bit rate of the media." + }, + "content_type": { + "type": "string", + "description": "The content type of the media." + }, + "url": { + "type": "string", + "description": "The url to the media.", + "format": "uri" + } + } + }, + "Variants": { + "type": "array", + "description": "An array of all available variants of the media.", + "items": { + "$ref": "#/components/schemas/Variant" + } + }, + "Video": { + "allOf": [ + { + "$ref": "#/components/schemas/Media" + }, + { + "type": "object", + "properties": { + "duration_ms": { + "type": "integer" + }, + "non_public_metrics": { + "type": "object", + "description": "Nonpublic engagement metrics for the Media at the time of the request.", + "properties": { + "playback_0_count": { + "type": "integer", + "description": "Number of users who made it through 0% of the video.", + "format": "int32" + }, + "playback_100_count": { + "type": "integer", + "description": "Number of users who made it through 100% of the video.", + "format": "int32" + }, + "playback_25_count": { + "type": "integer", + "description": "Number of users who made it through 25% of the video.", + "format": "int32" + }, + "playback_50_count": { + "type": "integer", + "description": "Number of users who made it through 50% of the video.", + "format": "int32" + }, + "playback_75_count": { + "type": "integer", + "description": "Number of users who made it through 75% of the video.", + "format": "int32" + } + } + }, + "organic_metrics": { + "type": "object", + "description": "Organic nonpublic engagement metrics for the Media at the time of the request.", + "properties": { + "playback_0_count": { + "type": "integer", + "description": "Number of users who made it through 0% of the video.", + "format": "int32" + }, + "playback_100_count": { + "type": "integer", + "description": "Number of users who made it through 100% of the video.", + "format": "int32" + }, + "playback_25_count": { + "type": "integer", + "description": "Number of users who made it through 25% of the video.", + "format": "int32" + }, + "playback_50_count": { + "type": "integer", + "description": "Number of users who made it through 50% of the video.", + "format": "int32" + }, + "playback_75_count": { + "type": "integer", + "description": "Number of users who made it through 75% of the video.", + "format": "int32" + }, + "view_count": { + "type": "integer", + "description": "Number of times this video has been viewed.", + "format": "int32" + } + } + }, + "preview_image_url": { + "type": "string", + "format": "uri" + }, + "promoted_metrics": { + "type": "object", + "description": "Promoted nonpublic engagement metrics for the Media at the time of the request.", + "properties": { + "playback_0_count": { + "type": "integer", + "description": "Number of users who made it through 0% of the video.", + "format": "int32" + }, + "playback_100_count": { + "type": "integer", + "description": "Number of users who made it through 100% of the video.", + "format": "int32" + }, + "playback_25_count": { + "type": "integer", + "description": "Number of users who made it through 25% of the video.", + "format": "int32" + }, + "playback_50_count": { + "type": "integer", + "description": "Number of users who made it through 50% of the video.", + "format": "int32" + }, + "playback_75_count": { + "type": "integer", + "description": "Number of users who made it through 75% of the video.", + "format": "int32" + }, + "view_count": { + "type": "integer", + "description": "Number of times this video has been viewed.", + "format": "int32" + } + } + }, + "public_metrics": { + "type": "object", + "description": "Engagement metrics for the Media at the time of the request.", + "properties": { + "view_count": { + "type": "integer", + "description": "Number of times this video has been viewed.", + "format": "int32" + } + } + }, + "variants": { + "$ref": "#/components/schemas/Variants" + } + } + } ] - } - } - } - ] - }, - "UsageFields" : { - "type" : "object", - "description" : "Represents the data for Usage", - "properties" : { - "date" : { - "type" : "string", - "description" : "The time period for the usage", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "usage" : { - "type" : "integer", - "description" : "The usage value", - "format" : "int32" - } - } - }, - "User" : { - "type" : "object", - "description" : "The X User object.", - "required" : [ - "id", - "name", - "username" - ], - "properties" : { - "affiliation" : { - "type" : "object", - "description" : "Metadata about a user's affiliation.", - "properties" : { - "badge_url" : { - "type" : "string", - "description" : "The badge URL corresponding to the affiliation.", - "format" : "uri" - }, - "description" : { - "type" : "string", - "description" : "The description of the affiliation." - }, - "url" : { - "type" : "string", - "description" : "The URL, if available, to details about an affiliation.", - "format" : "uri" - }, - "user_id" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - } - } - }, - "connection_status" : { - "type" : "array", - "description" : "Returns detailed information about the relationship between two users.", - "minItems" : 0, - "items" : { - "type" : "string", - "description" : "Type of connection between users.", - "enum" : [ - "follow_request_received", - "follow_request_sent", - "blocking", - "followed_by", - "following", - "muting" - ] - } - }, - "created_at" : { - "type" : "string", - "description" : "Creation time of this User.", - "format" : "date-time" - }, - "description" : { - "type" : "string", - "description" : "The text of this User's profile description (also known as bio), if the User provided one." - }, - "entities" : { - "type" : "object", - "description" : "A list of metadata found in the User's profile description.", - "properties" : { - "description" : { - "$ref" : "#/components/schemas/FullTextEntities" - }, - "url" : { - "type" : "object", - "description" : "Expanded details for the URL specified in the User's profile, with start and end indices.", - "properties" : { - "urls" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UrlEntity" - } - } - } - } - } - }, - "id" : { - "$ref" : "#/components/schemas/UserId" - }, - "location" : { - "type" : "string", - "description" : "The location specified in the User's profile, if the User provided one. As this is a freeform value, it may not indicate a valid location, but it may be fuzzily evaluated when performing searches with location queries." - }, - "most_recent_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "name" : { - "type" : "string", - "description" : "The friendly name of this User, as shown on their profile." - }, - "pinned_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "profile_banner_url" : { - "type" : "string", - "description" : "The URL to the profile banner for this User.", - "format" : "uri" - }, - "profile_image_url" : { - "type" : "string", - "description" : "The URL to the profile image for this User.", - "format" : "uri" - }, - "protected" : { - "type" : "boolean", - "description" : "Indicates if this User has chosen to protect their Posts (in other words, if this User's Posts are private)." - }, - "public_metrics" : { - "type" : "object", - "description" : "A list of metrics for this User.", - "required" : [ - "followers_count", - "following_count", - "tweet_count", - "listed_count" - ], - "properties" : { - "followers_count" : { - "type" : "integer", - "description" : "Number of Users who are following this User." - }, - "following_count" : { - "type" : "integer", - "description" : "Number of Users this User is following." - }, - "like_count" : { - "type" : "integer", - "description" : "The number of likes created by this User." - }, - "listed_count" : { - "type" : "integer", - "description" : "The number of lists that include this User." - }, - "tweet_count" : { - "type" : "integer", - "description" : "The number of Posts (including Retweets) posted by this User." - } - } - }, - "receives_your_dm" : { - "type" : "boolean", - "description" : "Indicates if you can send a DM to this User" - }, - "subscription_type" : { - "type" : "string", - "description" : "The X Blue subscription type of the user, eg: Basic, Premium, PremiumPlus or None.", - "enum" : [ - "Basic", - "Premium", - "PremiumPlus", - "None" - ] - }, - "url" : { - "type" : "string", - "description" : "The URL specified in the User's profile." - }, - "username" : { - "$ref" : "#/components/schemas/UserName" - }, - "verified" : { - "type" : "boolean", - "description" : "Indicate if this User is a verified X User." - }, - "verified_type" : { - "type" : "string", - "description" : "The X Blue verified type of the user, eg: blue, government, business or none.", - "enum" : [ - "blue", - "government", - "business", - "none" - ] - }, - "withheld" : { - "$ref" : "#/components/schemas/UserWithheld" - } - }, - "example" : { - "created_at" : "2013-12-14T04:35:55Z", - "id" : "2244994945", - "name" : "X Dev", - "protected" : false, - "username" : "TwitterDev" - } - }, - "UserComplianceData" : { - "description" : "User compliance data.", - "oneOf" : [ - { - "$ref" : "#/components/schemas/UserProtectComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserUnprotectComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserDeleteComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserUndeleteComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserSuspendComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserUnsuspendComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserWithheldComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserScrubGeoSchema" - }, - { - "$ref" : "#/components/schemas/UserProfileModificationComplianceSchema" - } - ] - }, - "UserComplianceSchema" : { - "type" : "object", - "required" : [ - "user", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "user" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/UserId" - } - } - } - } - }, - "UserComplianceStreamResponse" : { - "description" : "User compliance stream events.", - "oneOf" : [ - { - "type" : "object", - "description" : "User compliance event.", - "required" : [ - "data" - ], - "properties" : { - "data" : { - "$ref" : "#/components/schemas/UserComplianceData" - } - } - }, - { - "type" : "object", - "required" : [ - "errors" - ], - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - ] - }, - "UserDeleteComplianceSchema" : { - "type" : "object", - "required" : [ - "user_delete" - ], - "properties" : { - "user_delete" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserId" : { - "type" : "string", - "description" : "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", - "pattern" : "^[0-9]{1,19}$", - "example" : "2244994945" - }, - "UserIdMatchesAuthenticatedUser" : { - "type" : "string", - "description" : "Unique identifier of this User. The value must be the same as the authenticated user.", - "example" : "2244994945" - }, - "UserName" : { - "type" : "string", - "description" : "The X handle (screen name) of this user.", - "pattern" : "^[A-Za-z0-9_]{1,15}$" - }, - "UserProfileModificationComplianceSchema" : { - "type" : "object", - "required" : [ - "user_profile_modification" - ], - "properties" : { - "user_profile_modification" : { - "$ref" : "#/components/schemas/UserProfileModificationObjectSchema" - } - } - }, - "UserProfileModificationObjectSchema" : { - "type" : "object", - "required" : [ - "user", - "profile_field", - "new_value", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "new_value" : { - "type" : "string" - }, - "profile_field" : { - "type" : "string" - }, - "user" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/UserId" - } - } - } - } - }, - "UserProtectComplianceSchema" : { - "type" : "object", - "required" : [ - "user_protect" - ], - "properties" : { - "user_protect" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserScrubGeoObjectSchema" : { - "type" : "object", - "required" : [ - "user", - "up_to_tweet_id", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "up_to_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "user" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/UserId" - } - } - } - } - }, - "UserScrubGeoSchema" : { - "type" : "object", - "required" : [ - "scrub_geo" - ], - "properties" : { - "scrub_geo" : { - "$ref" : "#/components/schemas/UserScrubGeoObjectSchema" - } - } - }, - "UserSearchQueryVnext" : { - "type" : "string", - "description" : "The the search string by which to query for users.", - "pattern" : "^[A-Za-z0-9_' ]{1,50}$" - }, - "UserSuspendComplianceSchema" : { - "type" : "object", - "required" : [ - "user_suspend" - ], - "properties" : { - "user_suspend" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserTakedownComplianceSchema" : { - "type" : "object", - "required" : [ - "user", - "withheld_in_countries", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "user" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "withheld_in_countries" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/CountryCode" - } - } - } - }, - "UserUndeleteComplianceSchema" : { - "type" : "object", - "required" : [ - "user_undelete" - ], - "properties" : { - "user_undelete" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserUnprotectComplianceSchema" : { - "type" : "object", - "required" : [ - "user_unprotect" - ], - "properties" : { - "user_unprotect" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserUnsuspendComplianceSchema" : { - "type" : "object", - "required" : [ - "user_unsuspend" - ], - "properties" : { - "user_unsuspend" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserWithheld" : { - "type" : "object", - "description" : "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", - "required" : [ - "country_codes" - ], - "properties" : { - "country_codes" : { - "type" : "array", - "description" : "Provides a list of countries where this content is not available.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "$ref" : "#/components/schemas/CountryCode" - } - }, - "scope" : { - "type" : "string", - "description" : "Indicates that the content being withheld is a `user`.", - "enum" : [ - "user" - ] - } - } - }, - "UserWithheldComplianceSchema" : { - "type" : "object", - "required" : [ - "user_withheld" - ], - "properties" : { - "user_withheld" : { - "$ref" : "#/components/schemas/UserTakedownComplianceSchema" - } - } - }, - "UsersDMBlockCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "blocked" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersDMUnBlockCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "blocked" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersFollowingCreateRequest" : { - "type" : "object", - "required" : [ - "target_user_id" - ], - "properties" : { - "target_user_id" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "UsersFollowingCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "following" : { - "type" : "boolean" - }, - "pending_follow" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersFollowingDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "following" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersLikesCreateRequest" : { - "type" : "object", - "required" : [ - "tweet_id" - ], - "properties" : { - "tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - }, - "UsersLikesCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "liked" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersLikesDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "liked" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" + }, + "WebhookConfig": { + "type": "object", + "description": "A Webhook Configuration", + "required": [ + "id", + "url", + "valid", + "created_at" + ], + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "url": { + "type": "string", + "description": "The callback URL of the webhook." + }, + "valid": { + "type": "boolean" + } + } + }, + "WebhookConfigCreateRequest": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "type": "string", + "minLength": 1, + "maxLength": 200 + } + } + }, + "WebhookConfigCreateResponse": { + "type": "object", + "description": "A Webhook Configuration", + "required": [ + "id", + "url", + "valid", + "created_at" + ], + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "url": { + "type": "string", + "description": "The callback URL of the webhook." + }, + "valid": { + "type": "boolean" + } + } + }, + "WebhookConfigDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "WebhookConfigId": { + "type": "string", + "description": "The unique identifier of this webhook config.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "WebhookConfigPutResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "attempted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } } - } - } - }, - "UsersRetweetsCreateRequest" : { - "type" : "object", - "required" : [ - "tweet_id" - ], - "properties" : { - "tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - } }, - "additionalProperties" : false - }, - "UsersRetweetsCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "retweeted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersRetweetsDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "retweeted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Variant" : { - "type" : "object", - "properties" : { - "bit_rate" : { - "type" : "integer", - "description" : "The bit rate of the media." - }, - "content_type" : { - "type" : "string", - "description" : "The content type of the media." - }, - "url" : { - "type" : "string", - "description" : "The url to the media.", - "format" : "uri" - } - } - }, - "Variants" : { - "type" : "array", - "description" : "An array of all available variants of the media.", - "items" : { - "$ref" : "#/components/schemas/Variant" - } - }, - "Video" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/Media" - }, - { - "type" : "object", - "properties" : { - "duration_ms" : { - "type" : "integer" - }, - "non_public_metrics" : { - "type" : "object", - "description" : "Nonpublic engagement metrics for the Media at the time of the request.", - "properties" : { - "playback_0_count" : { - "type" : "integer", - "description" : "Number of users who made it through 0% of the video.", - "format" : "int32" - }, - "playback_100_count" : { - "type" : "integer", - "description" : "Number of users who made it through 100% of the video.", - "format" : "int32" - }, - "playback_25_count" : { - "type" : "integer", - "description" : "Number of users who made it through 25% of the video.", - "format" : "int32" - }, - "playback_50_count" : { - "type" : "integer", - "description" : "Number of users who made it through 50% of the video.", - "format" : "int32" - }, - "playback_75_count" : { - "type" : "integer", - "description" : "Number of users who made it through 75% of the video.", - "format" : "int32" - } - } - }, - "organic_metrics" : { - "type" : "object", - "description" : "Organic nonpublic engagement metrics for the Media at the time of the request.", - "properties" : { - "playback_0_count" : { - "type" : "integer", - "description" : "Number of users who made it through 0% of the video.", - "format" : "int32" - }, - "playback_100_count" : { - "type" : "integer", - "description" : "Number of users who made it through 100% of the video.", - "format" : "int32" - }, - "playback_25_count" : { - "type" : "integer", - "description" : "Number of users who made it through 25% of the video.", - "format" : "int32" - }, - "playback_50_count" : { - "type" : "integer", - "description" : "Number of users who made it through 50% of the video.", - "format" : "int32" - }, - "playback_75_count" : { - "type" : "integer", - "description" : "Number of users who made it through 75% of the video.", - "format" : "int32" - }, - "view_count" : { - "type" : "integer", - "description" : "Number of times this video has been viewed.", - "format" : "int32" - } - } - }, - "preview_image_url" : { - "type" : "string", - "format" : "uri" - }, - "promoted_metrics" : { - "type" : "object", - "description" : "Promoted nonpublic engagement metrics for the Media at the time of the request.", - "properties" : { - "playback_0_count" : { - "type" : "integer", - "description" : "Number of users who made it through 0% of the video.", - "format" : "int32" - }, - "playback_100_count" : { - "type" : "integer", - "description" : "Number of users who made it through 100% of the video.", - "format" : "int32" - }, - "playback_25_count" : { - "type" : "integer", - "description" : "Number of users who made it through 25% of the video.", - "format" : "int32" - }, - "playback_50_count" : { - "type" : "integer", - "description" : "Number of users who made it through 50% of the video.", - "format" : "int32" - }, - "playback_75_count" : { - "type" : "integer", - "description" : "Number of users who made it through 75% of the video.", - "format" : "int32" - }, - "view_count" : { - "type" : "integer", - "description" : "Number of times this video has been viewed.", - "format" : "int32" - } - } - }, - "public_metrics" : { - "type" : "object", - "description" : "Engagement metrics for the Media at the time of the request.", - "properties" : { - "view_count" : { - "type" : "integer", - "description" : "Number of times this video has been viewed.", - "format" : "int32" - } - } - }, - "variants" : { - "$ref" : "#/components/schemas/Variants" - } - } - } - ] - }, - "WebhookConfig" : { - "type" : "object", - "description" : "A Webhook Configuration", - "required" : [ - "id", - "url", - "valid", - "created_at" - ], - "properties" : { - "created_at" : { - "type" : "string", - "format" : "date-time" - }, - "id" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "url" : { - "type" : "string", - "description" : "The callback URL of the webhook." - }, - "valid" : { - "type" : "boolean" - } - } - }, - "WebhookConfigCreateRequest" : { - "type" : "object", - "required" : [ - "url" - ], - "properties" : { - "url" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 200 - } - } - }, - "WebhookConfigCreateResponse" : { - "type" : "object", - "description" : "A Webhook Configuration", - "required" : [ - "id", - "url", - "valid", - "created_at" - ], - "properties" : { - "created_at" : { - "type" : "string", - "format" : "date-time" - }, - "id" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "url" : { - "type" : "string", - "description" : "The callback URL of the webhook." - }, - "valid" : { - "type" : "boolean" - } - } - }, - "WebhookConfigDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "deleted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "WebhookConfigId" : { - "type" : "string", - "description" : "The unique identifier of this webhook config.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "WebhookConfigPutResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "attempted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" + "parameters": { + "AnalyticsFieldsParameter": { + "name": "analytics.fields", + "in": "query", + "description": "A comma separated list of Analytics fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Analytics object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "app_install_attempts", + "app_opens", + "bookmarks", + "detail_expands", + "email_tweet", + "engagements", + "follows", + "hashtag_clicks", + "id", + "impressions", + "likes", + "media_views", + "permalink_clicks", + "quote_tweets", + "replies", + "retweets", + "shares", + "timestamp", + "unfollows", + "url_clicks", + "user_profile_clicks" + ] + }, + "example": [ + "app_install_attempts", + "app_opens", + "bookmarks", + "detail_expands", + "email_tweet", + "engagements", + "follows", + "hashtag_clicks", + "id", + "impressions", + "likes", + "media_views", + "permalink_clicks", + "quote_tweets", + "replies", + "retweets", + "shares", + "timestamp", + "unfollows", + "url_clicks", + "user_profile_clicks" + ] + }, + "explode": false, + "style": "form" + }, + "CommunityFieldsParameter": { + "name": "community.fields", + "in": "query", + "description": "A comma separated list of Community fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Community object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "access", + "created_at", + "description", + "id", + "join_policy", + "member_count", + "name" + ] + }, + "example": [ + "access", + "created_at", + "description", + "id", + "join_policy", + "member_count", + "name" + ] + }, + "explode": false, + "style": "form" + }, + "ComplianceJobFieldsParameter": { + "name": "compliance_job.fields", + "in": "query", + "description": "A comma separated list of ComplianceJob fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a ComplianceJob object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "download_expires_at", + "download_url", + "id", + "name", + "resumable", + "status", + "type", + "upload_expires_at", + "upload_url" + ] + }, + "example": [ + "created_at", + "download_expires_at", + "download_url", + "id", + "name", + "resumable", + "status", + "type", + "upload_expires_at", + "upload_url" + ] + }, + "explode": false, + "style": "form" + }, + "DmConversationFieldsParameter": { + "name": "dm_conversation.fields", + "in": "query", + "description": "A comma separated list of DmConversation fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a DmConversation object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "id" + ] + }, + "example": [ + "id" + ] + }, + "explode": false, + "style": "form" + }, + "DmEventExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [DmEvent](#DmEvent) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "attachments.media_keys", + "participant_ids", + "referenced_tweets.id", + "sender_id" + ] + }, + "example": [ + "attachments.media_keys", + "participant_ids", + "referenced_tweets.id", + "sender_id" + ] + }, + "explode": false, + "style": "form" + }, + "DmEventFieldsParameter": { + "name": "dm_event.fields", + "in": "query", + "description": "A comma separated list of DmEvent fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a DmEvent object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "attachments", + "created_at", + "dm_conversation_id", + "entities", + "event_type", + "id", + "participant_ids", + "referenced_tweets", + "sender_id", + "text" + ] + }, + "example": [ + "attachments", + "created_at", + "dm_conversation_id", + "entities", + "event_type", + "id", + "participant_ids", + "referenced_tweets", + "sender_id", + "text" + ] + }, + "explode": false, + "style": "form" + }, + "EngagementFieldsParameter": { + "name": "engagement.fields", + "in": "query", + "description": "A comma separated list of Engagement fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Engagement object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "errors", + "measurement" + ] + }, + "example": [ + "errors", + "measurement" + ] + }, + "explode": false, + "style": "form" + }, + "LikeExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [Like](#Like) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "liked_tweet_id" + ] + }, + "example": [ + "liked_tweet_id" + ] + }, + "explode": false, + "style": "form" + }, + "LikeFieldsParameter": { + "name": "like.fields", + "in": "query", + "description": "A comma separated list of Like fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Like object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "example": [ + "created_at", + "id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "explode": false, + "style": "form" + }, + "LikeWithTweetAuthorExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [LikeWithTweetAuthor](#LikeWithTweetAuthor) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "liked_tweet_author_id", + "liked_tweet_id" + ] + }, + "example": [ + "liked_tweet_author_id", + "liked_tweet_id" + ] + }, + "explode": false, + "style": "form" + }, + "LikeWithTweetAuthorFieldsParameter": { + "name": "like_with_tweet_author.fields", + "in": "query", + "description": "A comma separated list of LikeWithTweetAuthor fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a LikeWithTweetAuthor object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "id", + "liked_tweet_author_id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "example": [ + "created_at", + "id", + "liked_tweet_author_id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "explode": false, + "style": "form" + }, + "ListExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [List](#List) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "owner_id" + ] + }, + "example": [ + "owner_id" + ] + }, + "explode": false, + "style": "form" + }, + "ListFieldsParameter": { + "name": "list.fields", + "in": "query", + "description": "A comma separated list of List fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a List object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "description", + "follower_count", + "id", + "member_count", + "name", + "owner_id", + "private" + ] + }, + "example": [ + "created_at", + "description", + "follower_count", + "id", + "member_count", + "name", + "owner_id", + "private" + ] + }, + "explode": false, + "style": "form" + }, + "MediaAnalyticsFieldsParameter": { + "name": "media_analytics.fields", + "in": "query", + "description": "A comma separated list of MediaAnalytics fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a MediaAnalytics object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "cta_url_clicks", + "cta_watch_clicks", + "media_key", + "play_from_tap", + "playback25", + "playback50", + "playback75", + "playback_complete", + "playback_start", + "timestamp", + "video_views", + "watch_time_ms" + ] + }, + "example": [ + "cta_url_clicks", + "cta_watch_clicks", + "media_key", + "play_from_tap", + "playback25", + "playback50", + "playback75", + "playback_complete", + "playback_start", + "timestamp", + "video_views", + "watch_time_ms" + ] + }, + "explode": false, + "style": "form" + }, + "MediaFieldsParameter": { + "name": "media.fields", + "in": "query", + "description": "A comma separated list of Media fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Media object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "alt_text", + "duration_ms", + "height", + "media_key", + "non_public_metrics", + "organic_metrics", + "preview_image_url", + "promoted_metrics", + "public_metrics", + "type", + "url", + "variants", + "width" + ] + }, + "example": [ + "alt_text", + "duration_ms", + "height", + "media_key", + "non_public_metrics", + "organic_metrics", + "preview_image_url", + "promoted_metrics", + "public_metrics", + "type", + "url", + "variants", + "width" + ] + }, + "explode": false, + "style": "form" + }, + "NoteFieldsParameter": { + "name": "note.fields", + "in": "query", + "description": "A comma separated list of Note fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Note object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "id", + "status", + "test_result" + ] + }, + "example": [ + "id", + "status", + "test_result" + ] + }, + "explode": false, + "style": "form" + }, + "PersonalizedTrendFieldsParameter": { + "name": "personalized_trend.fields", + "in": "query", + "description": "A comma separated list of PersonalizedTrend fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PersonalizedTrend object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "category", + "post_count", + "trend_name", + "trending_since" + ] + }, + "example": [ + "category", + "post_count", + "trend_name", + "trending_since" + ] + }, + "explode": false, + "style": "form" + }, + "PlaceFieldsParameter": { + "name": "place.fields", + "in": "query", + "description": "A comma separated list of Place fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Place object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "contained_within", + "country", + "country_code", + "full_name", + "geo", + "id", + "name", + "place_type" + ] + }, + "example": [ + "contained_within", + "country", + "country_code", + "full_name", + "geo", + "id", + "name", + "place_type" + ] + }, + "explode": false, + "style": "form" + }, + "PlaidAccountContactFieldsParameter": { + "name": "plaid_account_contact.fields", + "in": "query", + "description": "A comma separated list of PlaidAccountContact fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PlaidAccountContact object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "addresses", + "emails", + "holders", + "telephones" + ] + }, + "example": [ + "addresses", + "emails", + "holders", + "telephones" + ] + }, + "explode": false, + "style": "form" + }, + "PlaidAccountFieldsParameter": { + "name": "plaid_account.fields", + "in": "query", + "description": "A comma separated list of PlaidAccount fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PlaidAccount object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "accountCategory", + "accountId", + "accountNumberDisplay", + "accountType", + "availableBalance", + "currency", + "currentBalance", + "nickname", + "productName", + "status" + ] + }, + "example": [ + "accountCategory", + "accountId", + "accountNumberDisplay", + "accountType", + "availableBalance", + "currency", + "currentBalance", + "nickname", + "productName", + "status" + ] + }, + "explode": false, + "style": "form" + }, + "PlaidAccountPaymentNetworkFieldsParameter": { + "name": "plaid_account_payment_network.fields", + "in": "query", + "description": "A comma separated list of PlaidAccountPaymentNetwork fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PlaidAccountPaymentNetwork object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "bankId", + "identifier", + "transferIn", + "transferOut", + "type" + ] + }, + "example": [ + "bankId", + "identifier", + "transferIn", + "transferOut", + "type" + ] + }, + "explode": false, + "style": "form" + }, + "PlaidAccountTransactionFieldsParameter": { + "name": "plaid_account_transaction.fields", + "in": "query", + "description": "A comma separated list of PlaidAccountTransaction fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PlaidAccountTransaction object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "postedTimestamp", + "status", + "transactionId", + "transactionTimestamp" + ] + }, + "example": [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "postedTimestamp", + "status", + "transactionId", + "transactionTimestamp" + ] + }, + "explode": false, + "style": "form" + }, + "PlaidCustomerFieldsParameter": { + "name": "plaid_customer.fields", + "in": "query", + "description": "A comma separated list of PlaidCustomer fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PlaidCustomer object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "customerId" + ] + }, + "example": [ + "customerId" + ] + }, + "explode": false, + "style": "form" + }, + "PollFieldsParameter": { + "name": "poll.fields", + "in": "query", + "description": "A comma separated list of Poll fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Poll object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "duration_minutes", + "end_datetime", + "id", + "options", + "voting_status" + ] + }, + "example": [ + "duration_minutes", + "end_datetime", + "id", + "options", + "voting_status" + ] + }, + "explode": false, + "style": "form" + }, + "RulesCountFieldsParameter": { + "name": "rules_count.fields", + "in": "query", + "description": "A comma separated list of RulesCount fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a RulesCount object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "all_project_client_apps", + "cap_per_client_app", + "cap_per_project", + "client_app_rules_count", + "project_rules_count" + ] + }, + "example": [ + "all_project_client_apps", + "cap_per_client_app", + "cap_per_project", + "client_app_rules_count", + "project_rules_count" + ] + }, + "explode": false, + "style": "form" + }, + "SearchCountFieldsParameter": { + "name": "search_count.fields", + "in": "query", + "description": "A comma separated list of SearchCount fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a SearchCount object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "end", + "start", + "tweet_count" + ] + }, + "example": [ + "end", + "start", + "tweet_count" + ] + }, + "explode": false, + "style": "form" + }, + "SpaceExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [Space](#Space) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "creator_id", + "host_ids", + "invited_user_ids", + "speaker_ids", + "topic_ids" + ] + }, + "example": [ + "creator_id", + "host_ids", + "invited_user_ids", + "speaker_ids", + "topic_ids" + ] + }, + "explode": false, + "style": "form" + }, + "SpaceFieldsParameter": { + "name": "space.fields", + "in": "query", + "description": "A comma separated list of Space fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Space object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "creator_id", + "ended_at", + "host_ids", + "id", + "invited_user_ids", + "is_ticketed", + "lang", + "participant_count", + "scheduled_start", + "speaker_ids", + "started_at", + "state", + "subscriber_count", + "title", + "topic_ids", + "updated_at" + ] + }, + "example": [ + "created_at", + "creator_id", + "ended_at", + "host_ids", + "id", + "invited_user_ids", + "is_ticketed", + "lang", + "participant_count", + "scheduled_start", + "speaker_ids", + "started_at", + "state", + "subscriber_count", + "title", + "topic_ids", + "updated_at" + ] + }, + "explode": false, + "style": "form" + }, + "TopicFieldsParameter": { + "name": "topic.fields", + "in": "query", + "description": "A comma separated list of Topic fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Topic object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "description", + "id", + "name" + ] + }, + "example": [ + "description", + "id", + "name" + ] + }, + "explode": false, + "style": "form" + }, + "TrendFieldsParameter": { + "name": "trend.fields", + "in": "query", + "description": "A comma separated list of Trend fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Trend object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "trend_name", + "tweet_count" + ] + }, + "example": [ + "trend_name", + "tweet_count" + ] + }, + "explode": false, + "style": "form" + }, + "TweetExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [Tweet](#Tweet) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "article.cover_media", + "article.media_entities", + "attachments.media_keys", + "attachments.media_source_tweet", + "attachments.poll_ids", + "author_id", + "edit_history_tweet_ids", + "entities.mentions.username", + "geo.place_id", + "in_reply_to_user_id", + "entities.note.mentions.username", + "referenced_tweets.id", + "referenced_tweets.id.attachments.media_keys", + "referenced_tweets.id.author_id" + ] + }, + "example": [ + "article.cover_media", + "article.media_entities", + "attachments.media_keys", + "attachments.media_source_tweet", + "attachments.poll_ids", + "author_id", + "edit_history_tweet_ids", + "entities.mentions.username", + "geo.place_id", + "in_reply_to_user_id", + "entities.note.mentions.username", + "referenced_tweets.id", + "referenced_tweets.id.attachments.media_keys", + "referenced_tweets.id.author_id" + ] + }, + "explode": false, + "style": "form" + }, + "TweetFieldsParameter": { + "name": "tweet.fields", + "in": "query", + "description": "A comma separated list of Tweet fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Tweet object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "article", + "attachments", + "author_id", + "card_uri", + "community_id", + "context_annotations", + "conversation_id", + "created_at", + "display_text_range", + "edit_controls", + "edit_history_tweet_ids", + "entities", + "geo", + "id", + "in_reply_to_user_id", + "lang", + "media_metadata", + "non_public_metrics", + "note_tweet", + "organic_metrics", + "possibly_sensitive", + "promoted_metrics", + "public_metrics", + "referenced_tweets", + "reply_settings", + "scopes", + "source", + "text", + "withheld" + ] + }, + "example": [ + "article", + "attachments", + "author_id", + "card_uri", + "community_id", + "context_annotations", + "conversation_id", + "created_at", + "display_text_range", + "edit_controls", + "edit_history_tweet_ids", + "entities", + "geo", + "id", + "in_reply_to_user_id", + "lang", + "media_metadata", + "non_public_metrics", + "note_tweet", + "organic_metrics", + "possibly_sensitive", + "promoted_metrics", + "public_metrics", + "referenced_tweets", + "reply_settings", + "scopes", + "source", + "text", + "withheld" + ] + }, + "explode": false, + "style": "form" + }, + "UsageFieldsParameter": { + "name": "usage.fields", + "in": "query", + "description": "A comma separated list of Usage fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Usage object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "cap_reset_day", + "daily_client_app_usage", + "daily_project_usage", + "project_cap", + "project_id", + "project_usage" + ] + }, + "example": [ + "cap_reset_day", + "daily_client_app_usage", + "daily_project_usage", + "project_cap", + "project_id", + "project_usage" + ] + }, + "explode": false, + "style": "form" + }, + "UserExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [User](#User) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "affiliation.user_id", + "most_recent_tweet_id", + "pinned_tweet_id" + ] + }, + "example": [ + "affiliation.user_id", + "most_recent_tweet_id", + "pinned_tweet_id" + ] + }, + "explode": false, + "style": "form" + }, + "UserFieldsParameter": { + "name": "user.fields", + "in": "query", + "description": "A comma separated list of User fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a User object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "affiliation", + "confirmed_email", + "connection_status", + "created_at", + "description", + "entities", + "id", + "is_identity_verified", + "location", + "most_recent_tweet_id", + "name", + "parody", + "pinned_tweet_id", + "profile_banner_url", + "profile_image_url", + "protected", + "public_metrics", + "receives_your_dm", + "subscription", + "subscription_type", + "url", + "username", + "verified", + "verified_followers_count", + "verified_type", + "withheld" + ] + }, + "example": [ + "affiliation", + "confirmed_email", + "connection_status", + "created_at", + "description", + "entities", + "id", + "is_identity_verified", + "location", + "most_recent_tweet_id", + "name", + "parody", + "pinned_tweet_id", + "profile_banner_url", + "profile_image_url", + "protected", + "public_metrics", + "receives_your_dm", + "subscription", + "subscription_type", + "url", + "username", + "verified", + "verified_followers_count", + "verified_type", + "withheld" + ] + }, + "explode": false, + "style": "form" + }, + "WebhookConfigFieldsParameter": { + "name": "webhook_config.fields", + "in": "query", + "description": "A comma separated list of WebhookConfig fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a WebhookConfig object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "id", + "url", + "valid" + ] + }, + "example": [ + "created_at", + "id", + "url", + "valid" + ] + }, + "explode": false, + "style": "form" } - } } - } - }, - "parameters" : { - "AnalyticsFieldsParameter" : { - "name" : "analytics.fields", - "in" : "query", - "description" : "A comma separated list of Analytics fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Analytics object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "app_install_attempts", - "app_opens", - "bookmarks", - "detail_expands", - "email_tweet", - "engagements", - "follows", - "hashtag_clicks", - "id", - "impressions", - "likes", - "media_views", - "permalink_clicks", - "quote_tweets", - "replies", - "retweets", - "shares", - "timestamp", - "unfollows", - "url_clicks", - "user_profile_clicks" - ] - }, - "example" : [ - "app_install_attempts", - "app_opens", - "bookmarks", - "detail_expands", - "email_tweet", - "engagements", - "follows", - "hashtag_clicks", - "id", - "impressions", - "likes", - "media_views", - "permalink_clicks", - "quote_tweets", - "replies", - "retweets", - "shares", - "timestamp", - "unfollows", - "url_clicks", - "user_profile_clicks" - ] - }, - "explode" : false, - "style" : "form" - }, - "CommunityFieldsParameter" : { - "name" : "community.fields", - "in" : "query", - "description" : "A comma separated list of Community fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Community object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "access", - "created_at", - "description", - "id", - "join_policy", - "member_count", - "name" - ] - }, - "example" : [ - "access", - "created_at", - "description", - "id", - "join_policy", - "member_count", - "name" - ] - }, - "explode" : false, - "style" : "form" - }, - "ComplianceJobFieldsParameter" : { - "name" : "compliance_job.fields", - "in" : "query", - "description" : "A comma separated list of ComplianceJob fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a ComplianceJob object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "download_expires_at", - "download_url", - "id", - "name", - "resumable", - "status", - "type", - "upload_expires_at", - "upload_url" - ] - }, - "example" : [ - "created_at", - "download_expires_at", - "download_url", - "id", - "name", - "resumable", - "status", - "type", - "upload_expires_at", - "upload_url" - ] - }, - "explode" : false, - "style" : "form" - }, - "DmConversationFieldsParameter" : { - "name" : "dm_conversation.fields", - "in" : "query", - "description" : "A comma separated list of DmConversation fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a DmConversation object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "id" - ] - }, - "example" : [ - "id" - ] - }, - "explode" : false, - "style" : "form" - }, - "DmEventExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [DmEvent](#DmEvent) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "attachments.media_keys", - "participant_ids", - "referenced_tweets.id", - "sender_id" - ] - }, - "example" : [ - "attachments.media_keys", - "participant_ids", - "referenced_tweets.id", - "sender_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "DmEventFieldsParameter" : { - "name" : "dm_event.fields", - "in" : "query", - "description" : "A comma separated list of DmEvent fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a DmEvent object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "attachments", - "created_at", - "dm_conversation_id", - "entities", - "event_type", - "id", - "participant_ids", - "referenced_tweets", - "sender_id", - "text" - ] - }, - "example" : [ - "attachments", - "created_at", - "dm_conversation_id", - "entities", - "event_type", - "id", - "participant_ids", - "referenced_tweets", - "sender_id", - "text" - ] - }, - "explode" : false, - "style" : "form" - }, - "EngagementFieldsParameter" : { - "name" : "engagement.fields", - "in" : "query", - "description" : "A comma separated list of Engagement fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Engagement object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "errors", - "measurement" - ] - }, - "example" : [ - "errors", - "measurement" - ] - }, - "explode" : false, - "style" : "form" - }, - "LikeExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [Like](#Like) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "liked_tweet_id" - ] - }, - "example" : [ - "liked_tweet_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "LikeFieldsParameter" : { - "name" : "like.fields", - "in" : "query", - "description" : "A comma separated list of Like fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Like object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "example" : [ - "created_at", - "id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "explode" : false, - "style" : "form" - }, - "LikeWithTweetAuthorExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [LikeWithTweetAuthor](#LikeWithTweetAuthor) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "liked_tweet_author_id", - "liked_tweet_id" - ] - }, - "example" : [ - "liked_tweet_author_id", - "liked_tweet_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "LikeWithTweetAuthorFieldsParameter" : { - "name" : "like_with_tweet_author.fields", - "in" : "query", - "description" : "A comma separated list of LikeWithTweetAuthor fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a LikeWithTweetAuthor object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "id", - "liked_tweet_author_id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "example" : [ - "created_at", - "id", - "liked_tweet_author_id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "explode" : false, - "style" : "form" - }, - "ListExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [List](#List) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "owner_id" - ] - }, - "example" : [ - "owner_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "ListFieldsParameter" : { - "name" : "list.fields", - "in" : "query", - "description" : "A comma separated list of List fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a List object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "description", - "follower_count", - "id", - "member_count", - "name", - "owner_id", - "private" - ] - }, - "example" : [ - "created_at", - "description", - "follower_count", - "id", - "member_count", - "name", - "owner_id", - "private" - ] - }, - "explode" : false, - "style" : "form" - }, - "MediaAnalyticsFieldsParameter" : { - "name" : "media_analytics.fields", - "in" : "query", - "description" : "A comma separated list of MediaAnalytics fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a MediaAnalytics object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "cta_url_clicks", - "cta_watch_clicks", - "media_key", - "play_from_tap", - "playback25", - "playback50", - "playback75", - "playback_complete", - "playback_start", - "timestamp", - "video_views", - "watch_time_ms" - ] - }, - "example" : [ - "cta_url_clicks", - "cta_watch_clicks", - "media_key", - "play_from_tap", - "playback25", - "playback50", - "playback75", - "playback_complete", - "playback_start", - "timestamp", - "video_views", - "watch_time_ms" - ] - }, - "explode" : false, - "style" : "form" - }, - "MediaFieldsParameter" : { - "name" : "media.fields", - "in" : "query", - "description" : "A comma separated list of Media fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Media object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "alt_text", - "duration_ms", - "height", - "media_key", - "non_public_metrics", - "organic_metrics", - "preview_image_url", - "promoted_metrics", - "public_metrics", - "type", - "url", - "variants", - "width" - ] - }, - "example" : [ - "alt_text", - "duration_ms", - "height", - "media_key", - "non_public_metrics", - "organic_metrics", - "preview_image_url", - "promoted_metrics", - "public_metrics", - "type", - "url", - "variants", - "width" - ] - }, - "explode" : false, - "style" : "form" - }, - "NoteFieldsParameter" : { - "name" : "note.fields", - "in" : "query", - "description" : "A comma separated list of Note fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Note object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "id", - "status", - "test_result" - ] - }, - "example" : [ - "id", - "status", - "test_result" - ] - }, - "explode" : false, - "style" : "form" - }, - "PersonalizedTrendFieldsParameter" : { - "name" : "personalized_trend.fields", - "in" : "query", - "description" : "A comma separated list of PersonalizedTrend fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PersonalizedTrend object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "category", - "post_count", - "trend_name", - "trending_since" - ] - }, - "example" : [ - "category", - "post_count", - "trend_name", - "trending_since" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaceFieldsParameter" : { - "name" : "place.fields", - "in" : "query", - "description" : "A comma separated list of Place fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Place object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "contained_within", - "country", - "country_code", - "full_name", - "geo", - "id", - "name", - "place_type" - ] - }, - "example" : [ - "contained_within", - "country", - "country_code", - "full_name", - "geo", - "id", - "name", - "place_type" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaidAccountContactFieldsParameter" : { - "name" : "plaid_account_contact.fields", - "in" : "query", - "description" : "A comma separated list of PlaidAccountContact fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PlaidAccountContact object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "addresses", - "emails", - "holders", - "telephones" - ] - }, - "example" : [ - "addresses", - "emails", - "holders", - "telephones" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaidAccountFieldsParameter" : { - "name" : "plaid_account.fields", - "in" : "query", - "description" : "A comma separated list of PlaidAccount fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PlaidAccount object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "accountCategory", - "accountId", - "accountNumberDisplay", - "accountType", - "availableBalance", - "currency", - "currentBalance", - "nickname", - "productName", - "status" - ] - }, - "example" : [ - "accountCategory", - "accountId", - "accountNumberDisplay", - "accountType", - "availableBalance", - "currency", - "currentBalance", - "nickname", - "productName", - "status" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaidAccountPaymentNetworkFieldsParameter" : { - "name" : "plaid_account_payment_network.fields", - "in" : "query", - "description" : "A comma separated list of PlaidAccountPaymentNetwork fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PlaidAccountPaymentNetwork object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "bankId", - "identifier", - "transferIn", - "transferOut", - "type" - ] - }, - "example" : [ - "bankId", - "identifier", - "transferIn", - "transferOut", - "type" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaidAccountTransactionFieldsParameter" : { - "name" : "plaid_account_transaction.fields", - "in" : "query", - "description" : "A comma separated list of PlaidAccountTransaction fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PlaidAccountTransaction object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "postedTimestamp", - "status", - "transactionId", - "transactionTimestamp" - ] - }, - "example" : [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "postedTimestamp", - "status", - "transactionId", - "transactionTimestamp" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaidCustomerFieldsParameter" : { - "name" : "plaid_customer.fields", - "in" : "query", - "description" : "A comma separated list of PlaidCustomer fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PlaidCustomer object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "customerId" - ] - }, - "example" : [ - "customerId" - ] - }, - "explode" : false, - "style" : "form" - }, - "PollFieldsParameter" : { - "name" : "poll.fields", - "in" : "query", - "description" : "A comma separated list of Poll fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Poll object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "duration_minutes", - "end_datetime", - "id", - "options", - "voting_status" - ] - }, - "example" : [ - "duration_minutes", - "end_datetime", - "id", - "options", - "voting_status" - ] - }, - "explode" : false, - "style" : "form" - }, - "RulesCountFieldsParameter" : { - "name" : "rules_count.fields", - "in" : "query", - "description" : "A comma separated list of RulesCount fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a RulesCount object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "all_project_client_apps", - "cap_per_client_app", - "cap_per_project", - "client_app_rules_count", - "project_rules_count" - ] - }, - "example" : [ - "all_project_client_apps", - "cap_per_client_app", - "cap_per_project", - "client_app_rules_count", - "project_rules_count" - ] - }, - "explode" : false, - "style" : "form" - }, - "SearchCountFieldsParameter" : { - "name" : "search_count.fields", - "in" : "query", - "description" : "A comma separated list of SearchCount fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a SearchCount object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "end", - "start", - "tweet_count" - ] - }, - "example" : [ - "end", - "start", - "tweet_count" - ] - }, - "explode" : false, - "style" : "form" - }, - "SpaceExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [Space](#Space) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "creator_id", - "host_ids", - "invited_user_ids", - "speaker_ids", - "topic_ids" - ] - }, - "example" : [ - "creator_id", - "host_ids", - "invited_user_ids", - "speaker_ids", - "topic_ids" - ] - }, - "explode" : false, - "style" : "form" - }, - "SpaceFieldsParameter" : { - "name" : "space.fields", - "in" : "query", - "description" : "A comma separated list of Space fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Space object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "creator_id", - "ended_at", - "host_ids", - "id", - "invited_user_ids", - "is_ticketed", - "lang", - "participant_count", - "scheduled_start", - "speaker_ids", - "started_at", - "state", - "subscriber_count", - "title", - "topic_ids", - "updated_at" - ] - }, - "example" : [ - "created_at", - "creator_id", - "ended_at", - "host_ids", - "id", - "invited_user_ids", - "is_ticketed", - "lang", - "participant_count", - "scheduled_start", - "speaker_ids", - "started_at", - "state", - "subscriber_count", - "title", - "topic_ids", - "updated_at" - ] - }, - "explode" : false, - "style" : "form" - }, - "TopicFieldsParameter" : { - "name" : "topic.fields", - "in" : "query", - "description" : "A comma separated list of Topic fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Topic object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "description", - "id", - "name" - ] - }, - "example" : [ - "description", - "id", - "name" - ] - }, - "explode" : false, - "style" : "form" - }, - "TrendFieldsParameter" : { - "name" : "trend.fields", - "in" : "query", - "description" : "A comma separated list of Trend fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Trend object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "trend_name", - "tweet_count" - ] - }, - "example" : [ - "trend_name", - "tweet_count" - ] - }, - "explode" : false, - "style" : "form" - }, - "TweetExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [Tweet](#Tweet) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "article.cover_media", - "article.media_entities", - "attachments.media_keys", - "attachments.media_source_tweet", - "attachments.poll_ids", - "author_id", - "edit_history_tweet_ids", - "entities.mentions.username", - "geo.place_id", - "in_reply_to_user_id", - "entities.note.mentions.username", - "referenced_tweets.id", - "referenced_tweets.id.attachments.media_keys", - "referenced_tweets.id.author_id" - ] - }, - "example" : [ - "article.cover_media", - "article.media_entities", - "attachments.media_keys", - "attachments.media_source_tweet", - "attachments.poll_ids", - "author_id", - "edit_history_tweet_ids", - "entities.mentions.username", - "geo.place_id", - "in_reply_to_user_id", - "entities.note.mentions.username", - "referenced_tweets.id", - "referenced_tweets.id.attachments.media_keys", - "referenced_tweets.id.author_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "TweetFieldsParameter" : { - "name" : "tweet.fields", - "in" : "query", - "description" : "A comma separated list of Tweet fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Tweet object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "article", - "attachments", - "author_id", - "card_uri", - "community_id", - "context_annotations", - "conversation_id", - "created_at", - "display_text_range", - "edit_controls", - "edit_history_tweet_ids", - "entities", - "geo", - "id", - "in_reply_to_user_id", - "lang", - "media_metadata", - "non_public_metrics", - "note_tweet", - "organic_metrics", - "possibly_sensitive", - "promoted_metrics", - "public_metrics", - "referenced_tweets", - "reply_settings", - "scopes", - "source", - "text", - "withheld" - ] - }, - "example" : [ - "article", - "attachments", - "author_id", - "card_uri", - "community_id", - "context_annotations", - "conversation_id", - "created_at", - "display_text_range", - "edit_controls", - "edit_history_tweet_ids", - "entities", - "geo", - "id", - "in_reply_to_user_id", - "lang", - "media_metadata", - "non_public_metrics", - "note_tweet", - "organic_metrics", - "possibly_sensitive", - "promoted_metrics", - "public_metrics", - "referenced_tweets", - "reply_settings", - "scopes", - "source", - "text", - "withheld" - ] - }, - "explode" : false, - "style" : "form" - }, - "UsageFieldsParameter" : { - "name" : "usage.fields", - "in" : "query", - "description" : "A comma separated list of Usage fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Usage object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "cap_reset_day", - "daily_client_app_usage", - "daily_project_usage", - "project_cap", - "project_id", - "project_usage" - ] - }, - "example" : [ - "cap_reset_day", - "daily_client_app_usage", - "daily_project_usage", - "project_cap", - "project_id", - "project_usage" - ] - }, - "explode" : false, - "style" : "form" - }, - "UserExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [User](#User) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "affiliation.user_id", - "most_recent_tweet_id", - "pinned_tweet_id" - ] - }, - "example" : [ - "affiliation.user_id", - "most_recent_tweet_id", - "pinned_tweet_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "UserFieldsParameter" : { - "name" : "user.fields", - "in" : "query", - "description" : "A comma separated list of User fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a User object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "affiliation", - "confirmed_email", - "connection_status", - "created_at", - "description", - "entities", - "id", - "is_identity_verified", - "location", - "most_recent_tweet_id", - "name", - "parody", - "pinned_tweet_id", - "profile_banner_url", - "profile_image_url", - "protected", - "public_metrics", - "receives_your_dm", - "subscription", - "subscription_type", - "url", - "username", - "verified", - "verified_followers_count", - "verified_type", - "withheld" - ] - }, - "example" : [ - "affiliation", - "confirmed_email", - "connection_status", - "created_at", - "description", - "entities", - "id", - "is_identity_verified", - "location", - "most_recent_tweet_id", - "name", - "parody", - "pinned_tweet_id", - "profile_banner_url", - "profile_image_url", - "protected", - "public_metrics", - "receives_your_dm", - "subscription", - "subscription_type", - "url", - "username", - "verified", - "verified_followers_count", - "verified_type", - "withheld" - ] - }, - "explode" : false, - "style" : "form" - }, - "WebhookConfigFieldsParameter" : { - "name" : "webhook_config.fields", - "in" : "query", - "description" : "A comma separated list of WebhookConfig fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a WebhookConfig object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "id", - "url", - "valid" - ] - }, - "example" : [ - "created_at", - "id", - "url", - "valid" - ] - }, - "explode" : false, - "style" : "form" - } } - } } \ No newline at end of file diff --git a/x-api/community-notes/community-note-lookup-by-post-id.mdx b/x-api/community-notes/community-note-lookup-by-post-id.mdx deleted file mode 100644 index 321be4a..0000000 --- a/x-api/community-notes/community-note-lookup-by-post-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/notes ---- \ No newline at end of file diff --git a/x-api/community-notes/create-a-community-note.mdx b/x-api/community-notes/create-a-community-note.mdx new file mode 100644 index 0000000..09a1908 --- /dev/null +++ b/x-api/community-notes/create-a-community-note.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/notes +--- \ No newline at end of file diff --git a/x-api/community-notes/introduction.mdx b/x-api/community-notes/introduction.mdx new file mode 100644 index 0000000..b35fc39 --- /dev/null +++ b/x-api/community-notes/introduction.mdx @@ -0,0 +1,23 @@ +The Community Notes Endpoints in the X API v2 allow developers to search for and propose Community Notes on X programmatically. Use of the API requires your account being signed up for X Developer AI access and enrolled in Community Notes as an AI Note Writer. You can enroll and learn more about AI Note Writers in the Community Notes Guide. + +Currently, the API supports two endpoint categories: + +## Search + +### Search for X Posts that are eligible to receive a Community Note + +Developers can retrieve a list of X Posts that are eligible to receive a Community Note using the `GET https://api.x.com/2/notes/search/posts_eligible_for_notes` endpoint. + +### Search for Community Notes that have been written by the user on X Posts + +Developers can retrieve a list of Community Notes that have been written by the authenticating user on X Posts using the `GET https://api.x.com/2/notes/search/notes_written` endpoint. + +## Manage Community Notes + +Developers can submit Community Notes on X Posts using the `POST https://api.x.com/2/notes` endpoint. + +## Rate Limits + +The current rate limits are 90 request per 15 minutes for all Community Notes endpoints and an additional 250 requests per day limit for the Manage Community Notes endpoint. + +**Note:** These endpoints are currently in a pilot test. Please check out our [Quick Start Guide](https://docs.x.com/x-api/community-notes/quickstart) for details on using these endpoints \ No newline at end of file diff --git a/x-api/community-notes/quickstart.mdx b/x-api/community-notes/quickstart.mdx new file mode 100644 index 0000000..3822c56 --- /dev/null +++ b/x-api/community-notes/quickstart.mdx @@ -0,0 +1,331 @@ +In this guide, we will walk you through using the new Community Notes endpoints using Python. + +In order to use the Community Notes endpoints, please ensure you have a [valid X Developers Account](https://developer.x.com/) and are enrolled as a [Community Notes AI Note Writer](https://communitynotes.x.com/guide/api/overview) in the Community Notes Guide). Once approved, please ensure you have the correct API keys and tokens to use in the examples listed below. Check out [this fundamentals section](https://docs.x.com/resources/fundamentals/developer-apps#keys-and-tokens) for instructions on obtaining your keys and tokens - please save your API key, API secret, access token and token secret as we will be using it in the examples in this guide. The Community Notes endpoints support OAuth 1.0 and 2.0 authentication. In this guide, we will be using OAuth 1.0. + +## Search for X Posts that are eligible to receive a Community Note + +Developers can retrieve a list of X Posts that are eligible to receive a Community Note using the `GET https://api.x.com/2/notes/search/posts_eligible_for_notes` endpoint. The endpoint requires you to specify a test_mode parameter and set it to true in order to use these endpoints. + +**Note:** For now, test_mode can only be set to true, otherwise these endpoints will return an error like: + +```json +{ + "errors": [ + { + "message": "The `test_mode` query parameter is invalid." + } + ], + "title": "Invalid Request", + "detail": "One or more parameters to your request was invalid.", + "type": "https://api.twitter.com/2/problems/invalid-request" +} +``` + +You can specify the maximum number of Posts you want returned per request using the max_results parameter. By default, 10 Posts are returned and a maximum of 100 Posts can be retrieved per request. If you want additional results, pass in the pagination_token. + +The code below will call the search endpoint that returns Posts that are eligible for Community Notes: + +```python +from requests_oauthlib import OAuth1Session +import json + +# API endpoint and parameters +url = "https://api.x.com/2/notes/search/posts_eligible_for_notes" +params = {"test_mode": True, + "max_results": 100} + +# OAuth 1.0 credentials +oauth = OAuth1Session( + client_key='REPLACE_ME', + client_secret='REPLACE_ME', + resource_owner_key='REPLACE_ME', + resource_owner_secret='REPLACE_ME', +) + + +# Make the request +try: + response = oauth.get(url, params=params) + response.raise_for_status() # Raises an HTTPError for bad responses + + print("Response code: {}".format(response.status_code)) + json_response = response.json() + print(json.dumps(json_response, indent=4, sort_keys=True)) + +except Exception as e: + print(f"Request failed: {e}") +``` + +The response will be something like: + +```json +{ + "data": [ + { + "text": "Join us to learn more about our new analytics endpoints available in the X API v2 📊 https://t.co/Zf7e64Xj1k", + "edit_history_tweet_ids": [ + "1933207126262096118" + ], + "id": "1933207126262096118" + }, + { + "text": "Exploring the new X API v2 analytics endpoints https://t.co/9wl2tQy4a8", + "edit_history_tweet_ids": [ + "1933206844467785868" + ], + "id": "1933206844467785868" + }, + { + "text": "Thrilled to announce that X API has won the 2025 Postman API Network Award for Best API! Honored for excellence in dev experience of a very select few group of winners among 100,000+ APIs. Thank you, @getpostman, and our amazing dev community! https://t.co/BjMZrfAoQo", + "edit_history_tweet_ids": [ + "1930672414444372186" + ], + "id": "1930672414444372186" + } + ], + "meta": { + "newest_id": "1933207126262096118", + "oldest_id": "1930672414444372186", + "result_count": 3 + } +} +``` + +You can use the Post ID from the response above to write a Community Note. + +## Search for Community Notes that have been written on X Posts + +Similarly, a developer can retrieve a list of Community Notes that have been written by the authenticating user using the GET https://api.x.com/2/notes/search/notes_written. This endpoint also requires the test_mode parameter. When test_mode is set to true: all test notes written by the user are returned. + +**Note:** For now, test_mode can only be set to true, otherwise these endpoints will return an error like: + +```json +{ + "errors":[ + { + "message":"The `test_mode` query parameter is invalid." + } + ], + "title":"Invalid Request", + "detail":"One or more parameters to your request was invalid.", + "type":"https://api.twitter.com/2/problems/invalid-request" +} +``` + +You can specify the maximum number of Notes you want returned per request using the max_results parameter. By default, 10 Notes are returned and a maximum of 100 Notes can be retrieved per request. If you want additional results, pass in the pagination_token. + +The code below will call the search endpoint that returns Notes that are written on X Posts: + +```python +from requests_oauthlib import OAuth1Session +import json + + +# API endpoint and parameters +url = "https://api.x.com/2/notes/search/notes_written" +params = {"test_mode": True, + "max_results": 100, } + +# OAuth 1.0 credentials +oauth = OAuth1Session( + client_key='REPLACE_ME', + client_secret='REPLACE_ME', + resource_owner_key='REPLACE_ME', + resource_owner_secret='REPLACE_ME', +) + +# Make the request +try: + response = oauth.get(url, params=params) + response.raise_for_status() # Raises an HTTPError for bad responses + + print("Response code: {}".format(response.status_code)) + json_response = response.json() + print(json.dumps(json_response, indent=4, sort_keys=True)) + +except Exception as e: + print(f"Request failed: {e}") +``` + +The response will be something like: + +```json +{ + "data": [ + { + "text": "Join us to learn more about our new analytics endpoints available in the X API v2 📊 https://t.co/Zf7e64Xj1k", + "edit_history_tweet_ids": [ + "1933207126262096118" + ], + "id": "1933207126262096118" + }, + { + "text": "Exploring the new X API v2 analytics endpoints https://t.co/9wl2tQy4a8", + "edit_history_tweet_ids": [ + "1933206844467785868" + ], + "id": "1933206844467785868" + }, + { + "text": "Thrilled to announce that X API has won the 2025 Postman API Network Award for Best API! Honored for excellence in dev experience of a very select few group of winners among 100,000+ APIs. Thank you, @getpostman, and our amazing dev community! https://t.co/BjMZrfAoQo", + "edit_history_tweet_ids": [ + "1930672414444372186" + ], + "id": "1930672414444372186" + } + ], + "meta": { + "newest_id": "1933207126262096118", + "oldest_id": "1930672414444372186", + "result_count": 3 + } +} +``` + +## Manage Community Notes + +Developers can submit Community Notes on X Posts using the POST https://api.x.com/2/notes endpoint. Similar to the previous endpoints, this endpoint also supports the test_mode query parameter. When test_mode is set to true, the note being submitted is only for testing, and won't be publicly visible. + +**Note:** For now, test_mode can only be set to true, otherwise these endpoints will return an error like: + +```json +{ + "errors": [ + { + "message": "The `test_mode` query parameter is invalid." + } + ], + "title": "Invalid Request", + "detail": "One or more parameters to your request was invalid.", + "type": "https://api.twitter.com/2/problems/invalid-request" +} +``` + + +In order to do so, you will need to provide the *post_id* for which you want to submit the Community Note in the request body for this endpoint, along with the required information to create a note including: +* *text*: the text for the note, which should contain at least 1 and at most 280 characters (urls count as a single character) and must contain a source url +* *classification*: which can be either misinformed_or_potentially_misleading or not_misleading +* *misleading_tags*: which is a non-empty list of tags that is either "disputed_claim_as_fact", "factual_error", "manipulated_media", "misinterpreted_satire", "missing_important_context", "outdated_information" or "other". This field is only needed when the classification is of type misinformed_or_potentially_misleading. +* *trustworthy_sources*: which is a boolean value to indicate whether a trustworthy source is provided in “text”. + +Below is an example request to this endpoint + +```python +from requests_oauthlib import OAuth1Session +import json + + +# Replace with your Note information +payload = {"test_mode": True, + "post_id": "1939667242318541239" + , + "info": { + "text": "test note text. http://source.com", + "classification": "misinformed_or_potentially_misleading", + "misleading_tags": ["missing_important_context"], + "trustworthy_sources": True, + }} + + +# Make the request +oauth = OAuth1Session( + client_key='REPLACE_ME', + client_secret='REPLACE_ME', + resource_owner_key='REPLACE_ME', + resource_owner_secret='REPLACE_ME', +) + + +# Making the request +response = oauth.post( + "https://api.twitter.com/2/notes", + json=payload, +) + + +if response.status_code != 201: + raise Exception( + "Request returned an error: {} {}".format(response.status_code, response.text) + ) + + +print("Response code: {}".format(response.status_code)) + + +# Saving the response as JSON +json_response = response.json() +print(json.dumps(json_response, indent=4, sort_keys=True)) +``` + +If the request is successful, the response will look like this: + +```json +{ + "data": { + "note_id": "1938678124100886981" + } +} +``` + +## Error Troubleshooting + +Below is a list of common error messages and resolutions when working with the Community Notes endpoints: + +### 401 Unauthorized + +```json +{ + "title": "Unauthorized", + "type": "about:blank", + "status": 401, + "detail": "Unauthorized" +} +``` + +**Explanation**: This error is returned with the request is not properly authenticated + +### 403 Forbidden + +```json +{ + "detail": "User: [userId] must be an API Note Writer to access this endpoint.", + "type": "about:blank", + "title": "Forbidden", + "status": 403 +} +``` +**Explanation**: This error is returned when a user is not enrolled to use this endpoint + +### 400 Invalid Request (test_mode) + +```json +{ + "errors": [ + { + "message": "The `test_mode` query parameter is invalid." + } + ], + "title": "Invalid Request", + "detail": "One or more parameters to your request was invalid.", + "type": "https://api.twitter.com/2/problems/invalid-request" +} +``` + +**Explanation**: This endpoint is returned when a user tries to make request with test_mode set to false + +### 400 Invalid Request (Duplicate Note) + +```json +{ + "errors": [ + { + "message": "User already created a note: [noteId] for this post." + } + ], + "title": "Invalid Request", + "detail": "One or more parameters to your request was invalid.", + "type": "https://api.twitter.com/2/problems/invalid-request" +} +``` + +**Explanation**: This error is returned when a user tries to make duplicate Community Notes \ No newline at end of file diff --git a/x-api/community-notes/search-for-community-notes-written.mdx b/x-api/community-notes/search-for-community-notes-written.mdx new file mode 100644 index 0000000..3a8680e --- /dev/null +++ b/x-api/community-notes/search-for-community-notes-written.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/notes/search/notes_written +--- \ No newline at end of file diff --git a/x-api/community-notes/search-for-posts-eligible-for-community-notes.mdx b/x-api/community-notes/search-for-posts-eligible-for-community-notes.mdx new file mode 100644 index 0000000..d94faf9 --- /dev/null +++ b/x-api/community-notes/search-for-posts-eligible-for-community-notes.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/notes/search/posts_eligible_for_notes +--- \ No newline at end of file From 0478ece8dec6c8141bd2005867898fb94bc0afc1 Mon Sep 17 00:00:00 2001 From: Suhem Parack Date: Tue, 1 Jul 2025 12:03:27 -0700 Subject: [PATCH 06/34] Added missing link for community notes guide Added missing link for community notes guide --- x-api/community-notes/introduction.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-api/community-notes/introduction.mdx b/x-api/community-notes/introduction.mdx index b35fc39..0cdb5f5 100644 --- a/x-api/community-notes/introduction.mdx +++ b/x-api/community-notes/introduction.mdx @@ -1,4 +1,4 @@ -The Community Notes Endpoints in the X API v2 allow developers to search for and propose Community Notes on X programmatically. Use of the API requires your account being signed up for X Developer AI access and enrolled in Community Notes as an AI Note Writer. You can enroll and learn more about AI Note Writers in the Community Notes Guide. +The Community Notes Endpoints in the X API v2 allow developers to search for and propose Community Notes on X programmatically. Use of the API requires your account being signed up for X Developer AI access and enrolled in Community Notes as an AI Note Writer. You can [enroll and learn more about AI Note Writers](https://communitynotes.x.com/guide/api/overview) in the Community Notes Guide. Currently, the API supports two endpoint categories: From 2cf446752a9584590f521c4d0c349d15fc6994b4 Mon Sep 17 00:00:00 2001 From: Suhem Parack Date: Tue, 1 Jul 2025 12:21:26 -0700 Subject: [PATCH 07/34] Added fields and expansions section and resources Added fields and expansions section and resources --- x-api/community-notes/quickstart.mdx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/x-api/community-notes/quickstart.mdx b/x-api/community-notes/quickstart.mdx index 3822c56..b24cda8 100644 --- a/x-api/community-notes/quickstart.mdx +++ b/x-api/community-notes/quickstart.mdx @@ -42,7 +42,6 @@ oauth = OAuth1Session( resource_owner_secret='REPLACE_ME', ) - # Make the request try: response = oauth.get(url, params=params) @@ -91,7 +90,9 @@ The response will be something like: } ``` -You can use the Post ID from the response above to write a Community Note. +You can use the Post ID from the response above to write a Community Note. + +By default, you get Post id, text and edit history. If you want additional fields, you can use [fields](https://docs.x.com/x-api/fundamentals/fields) and [expansions](https://docs.x.com/x-api/fundamentals/expansions) ## Search for Community Notes that have been written on X Posts @@ -328,4 +329,8 @@ Below is a list of common error messages and resolutions when working with the C } ``` -**Explanation**: This error is returned when a user tries to make duplicate Community Notes \ No newline at end of file +**Explanation**: This error is returned when a user tries to make duplicate Community Notes + +## Resources + +You can find code samples in other programming languages on our [Github page](https://github.com/xdevplatform/Twitter-API-v2-sample-code). You can also get started with these API endpoints using our [Postman collection](https://www.postman.com/xapidevelopers). If you have any technical questions about these endpoints, please feel free to reach out to us on the [X Developer Community support forums](https://devcommunity.x.com/). From 65e33ccb05692b54649db31c5d23571bc19054b0 Mon Sep 17 00:00:00 2001 From: Suhem Parack Date: Tue, 1 Jul 2025 12:28:27 -0700 Subject: [PATCH 08/34] Updated url for notes overview Updated url for notes overview --- x-api/community-notes/introduction.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-api/community-notes/introduction.mdx b/x-api/community-notes/introduction.mdx index 0cdb5f5..67a751b 100644 --- a/x-api/community-notes/introduction.mdx +++ b/x-api/community-notes/introduction.mdx @@ -1,4 +1,4 @@ -The Community Notes Endpoints in the X API v2 allow developers to search for and propose Community Notes on X programmatically. Use of the API requires your account being signed up for X Developer AI access and enrolled in Community Notes as an AI Note Writer. You can [enroll and learn more about AI Note Writers](https://communitynotes.x.com/guide/api/overview) in the Community Notes Guide. +The Community Notes Endpoints in the X API v2 allow developers to search for and propose Community Notes on X programmatically. Use of the API requires your account being signed up for X Developer AI access and enrolled in Community Notes as an AI Note Writer. You can [enroll and learn more about AI Note Writers](https://communitynotes.x.com/guide/en/api/overview) in the Community Notes Guide. Currently, the API supports two endpoint categories: From 534e508f4469bdf6e8e2455a5b537b88b40aa92d Mon Sep 17 00:00:00 2001 From: Suhem Parack Date: Tue, 1 Jul 2025 12:31:54 -0700 Subject: [PATCH 09/34] Update url Update url --- x-api/community-notes/quickstart.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-api/community-notes/quickstart.mdx b/x-api/community-notes/quickstart.mdx index b24cda8..625152c 100644 --- a/x-api/community-notes/quickstart.mdx +++ b/x-api/community-notes/quickstart.mdx @@ -1,6 +1,6 @@ In this guide, we will walk you through using the new Community Notes endpoints using Python. -In order to use the Community Notes endpoints, please ensure you have a [valid X Developers Account](https://developer.x.com/) and are enrolled as a [Community Notes AI Note Writer](https://communitynotes.x.com/guide/api/overview) in the Community Notes Guide). Once approved, please ensure you have the correct API keys and tokens to use in the examples listed below. Check out [this fundamentals section](https://docs.x.com/resources/fundamentals/developer-apps#keys-and-tokens) for instructions on obtaining your keys and tokens - please save your API key, API secret, access token and token secret as we will be using it in the examples in this guide. The Community Notes endpoints support OAuth 1.0 and 2.0 authentication. In this guide, we will be using OAuth 1.0. +In order to use the Community Notes endpoints, please ensure you have a [valid X Developers Account](https://developer.x.com/) and are enrolled as a [Community Notes AI Note Writer](https://communitynotes.x.com/guide/en/api/overview) in the Community Notes Guide). Once approved, please ensure you have the correct API keys and tokens to use in the examples listed below. Check out [this fundamentals section](https://docs.x.com/resources/fundamentals/developer-apps#keys-and-tokens) for instructions on obtaining your keys and tokens - please save your API key, API secret, access token and token secret as we will be using it in the examples in this guide. The Community Notes endpoints support OAuth 1.0 and 2.0 authentication. In this guide, we will be using OAuth 1.0. ## Search for X Posts that are eligible to receive a Community Note From b936d61767a97f05f1117863a92dddd026642526 Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Tue, 1 Jul 2025 13:59:20 -0700 Subject: [PATCH 10/34] Documentation edits made through Mintlify web editor --- docs.json | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/docs.json b/docs.json index 910b881..ab724a8 100644 --- a/docs.json +++ b/docs.json @@ -341,6 +341,13 @@ "x-api/posts/bookmarks/integrate" ] }, + { + "group": "Bookmark Folders", + "pages": [ + "x-api/bookmarks/bookmark-folders-by-user", + "x-api/bookmarks/bookmark-folder-posts-by-user-and-folder-id" + ] + }, "x-api/bookmarks/bookmarks-by-user", "x-api/bookmarks/add-post-to-bookmarks", "x-api/bookmarks/remove-a-bookmarked-post" @@ -745,16 +752,6 @@ } ] }, - { - "group": "Community Notes", - "pages": [ - "x-api/community-notes/introduction", - "x-api/community-notes/quickstart", - "x-api/community-notes/search-for-posts-eligible-for-community-notes", - "x-api/community-notes/search-for-community-notes-written", - "x-api/community-notes/create-a-community-note" - ] - }, { "group": "Trends", "pages": [ From f241fda22dce11fe6f9478f7ecbb125981681585 Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Tue, 1 Jul 2025 20:16:36 -0700 Subject: [PATCH 11/34] Update docs.json --- docs.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs.json b/docs.json index ab724a8..5122530 100644 --- a/docs.json +++ b/docs.json @@ -752,6 +752,16 @@ } ] }, + { + "group": "Community Notes", + "pages": [ + "x-api/community-notes/introduction", + "x-api/community-notes/quickstart", + "x-api/community-notes/search-for-posts-eligible-for-community-notes", + "x-api/community-notes/search-for-community-notes-written", + "x-api/community-notes/create-a-community-note" + ] + }, { "group": "Trends", "pages": [ From 87da77009982b860cbfe23b0fc27545a132c6fe0 Mon Sep 17 00:00:00 2001 From: Suhem Parack Date: Tue, 8 Jul 2025 08:14:56 -0700 Subject: [PATCH 12/34] update json response update json response --- x-api/community-notes/quickstart.mdx | 58 ++++++++++++++-------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/x-api/community-notes/quickstart.mdx b/x-api/community-notes/quickstart.mdx index 625152c..bfee405 100644 --- a/x-api/community-notes/quickstart.mdx +++ b/x-api/community-notes/quickstart.mdx @@ -152,34 +152,36 @@ The response will be something like: ```json { - "data": [ - { - "text": "Join us to learn more about our new analytics endpoints available in the X API v2 📊 https://t.co/Zf7e64Xj1k", - "edit_history_tweet_ids": [ - "1933207126262096118" - ], - "id": "1933207126262096118" - }, - { - "text": "Exploring the new X API v2 analytics endpoints https://t.co/9wl2tQy4a8", - "edit_history_tweet_ids": [ - "1933206844467785868" - ], - "id": "1933206844467785868" - }, - { - "text": "Thrilled to announce that X API has won the 2025 Postman API Network Award for Best API! Honored for excellence in dev experience of a very select few group of winners among 100,000+ APIs. Thank you, @getpostman, and our amazing dev community! https://t.co/BjMZrfAoQo", - "edit_history_tweet_ids": [ - "1930672414444372186" - ], - "id": "1930672414444372186" - } - ], - "meta": { - "newest_id": "1933207126262096118", - "oldest_id": "1930672414444372186", - "result_count": 3 - } + "data": [ + { + "id": "1939827717186494817", + "info": { + "text": "test note text. http://source.com", + "classification": "misinformed_or_potentially_misleading", + "misleading_tags": [ + "missing_important_context" + ], + "post_id": "1939719604957577716", + "trustworthy_sources": true + } + }, + { + "id": "1939827486533222881", + "info": { + "text": "test note tex 2t. http://source.com", + "classification": "misinformed_or_potentially_misleading", + "misleading_tags": [ + "missing_important_context" + ], + "post_id": "1939769235158237565", + "trustworthy_sources": true + } + } + ], + "meta": { + "result_count": 2, + "next_token": "[token]" + } } ``` From c9f2211ae56afcab5873e8e423a2ca9912c4c8db Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Fri, 11 Jul 2025 17:43:15 -0700 Subject: [PATCH 13/34] Update customer-directory.mdx --- resources/enterprise/customer-directory.mdx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/resources/enterprise/customer-directory.mdx b/resources/enterprise/customer-directory.mdx index 1941541..2057a9e 100644 --- a/resources/enterprise/customer-directory.mdx +++ b/resources/enterprise/customer-directory.mdx @@ -19,8 +19,6 @@ Work with a trusted X Official Partner to expand what's possible for your busine ## Enterprise customers listing -Here's the modified version of your code with all images removed from the LogoCard components: - @@ -745,4 +743,4 @@ Here's the modified version of your code with all images removed from the LogoCa href="http://www.zoho.com?utm_source=twitter_data_website&utm_medium=enterprise%20customer%20directory" /> - \ No newline at end of file + From 2d32a665a4908d12d1ab7a7eea8bf48492a4389c Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Tue, 15 Jul 2025 21:12:48 +0000 Subject: [PATCH 14/34] Update documentation with latest OpenAPI spec --- openapi.json | 41515 ++++++++-------- .../delete-a-community-note.mdx | 3 + 2 files changed, 20650 insertions(+), 20868 deletions(-) create mode 100644 x-api/community-notes/delete-a-community-note.mdx diff --git a/openapi.json b/openapi.json index 718bc94..f8a001e 100644 --- a/openapi.json +++ b/openapi.json @@ -1,21136 +1,20915 @@ { - "openapi": "3.0.0", - "info": { - "description": "Twitter API v2 available endpoints", - "version": "2.142", - "title": "Twitter API v2", - "termsOfService": "https://developer.twitter.com/en/developer-terms/agreement-and-policy.html", - "contact": { - "name": "Twitter Developers", - "url": "https://developer.twitter.com/" + "openapi" : "3.0.0", + "info" : { + "description" : "Twitter API v2 available endpoints", + "version" : "2.144", + "title" : "Twitter API v2", + "termsOfService" : "https://developer.twitter.com/en/developer-terms/agreement-and-policy.html", + "contact" : { + "name" : "Twitter Developers", + "url" : "https://developer.twitter.com/" + }, + "license" : { + "name" : "Twitter Developer Agreement and Policy", + "url" : "https://developer.twitter.com/en/developer-terms/agreement-and-policy.html" + } + }, + "paths" : { + "/2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all" : { + "post" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "AAASubscriptions" + ], + "summary" : "Request Activity Replay", + "description" : "Submits a request to retrieve activities from up to the past five days for all subscriptions associated with the specified webhook during the date and time windows provided.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "license": { - "name": "Twitter Developer Agreement and Policy", - "url": "https://developer.twitter.com/en/developer-terms/agreement-and-policy.html" + "operationId" : "postAccountActivityReplay", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The unique identifier for the webhook configuration.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + }, + { + "name" : "from_date", + "in" : "query", + "description" : "The oldest (starting) UTC timestamp (inclusive) from which events will be provided, in `yyyymmddhhmm` format.", + "required" : true, + "schema" : { + "type" : "string", + "pattern" : "^\\d{12}$", + "example" : "202504242000" + }, + "style" : "form" + }, + { + "name" : "to_date", + "in" : "query", + "description" : "The latest (ending) UTC timestamp (exclusive) up to which events will be provided, in `yyyymmddhhmm` format.", + "required" : true, + "schema" : { + "type" : "string", + "pattern" : "^\\d{12}$", + "example" : "202504242200" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ReplayJobCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } } + } }, - "paths": { - "/2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all": { - "post": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "AAASubscriptions" - ], - "summary": "Request Activity Replay", - "description": "Submits a request to retrieve activities from up to the past five days for all subscriptions associated with the specified webhook during the date and time windows provided.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "postAccountActivityReplay", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The unique identifier for the webhook configuration.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - }, - { - "name": "from_date", - "in": "query", - "description": "The oldest (starting) UTC timestamp (inclusive) from which events will be provided, in `yyyymmddhhmm` format.", - "required": true, - "schema": { - "type": "string", - "pattern": "^\\d{12}$", - "example": "202504242000" - }, - "style": "form" - }, - { - "name": "to_date", - "in": "query", - "description": "The latest (ending) UTC timestamp (exclusive) up to which events will be provided, in `yyyymmddhhmm` format.", - "required": true, - "schema": { - "type": "string", - "pattern": "^\\d{12}$", - "example": "202504242200" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReplayJobCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "/2/account_activity/subscriptions/count" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "AAASubscriptions" + ], + "summary" : "Get a count of subscriptions that are currently active on your account", + "description" : "Get a count of subscriptions that are currently active on your account.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId" : "getSubscriptionCount", + "parameters" : [ ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsCountGetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/account_activity/webhooks/{webhook_id}/subscriptions/all" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "AAASubscriptions" + ], + "summary" : "Check if a subscription exists for a given webhook and user", + "description" : "Check if a subscription exists for a given webhook and user.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "/2/account_activity/subscriptions/count": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "AAASubscriptions" - ], - "summary": "Get a count of subscriptions that are currently active on your account", - "description": "Get a count of subscriptions that are currently active on your account.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "getSubscriptionCount", - "parameters": [], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsCountGetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getSubscription", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The webhook ID to check subscription against.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsGetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "AAASubscriptions" + ], + "summary" : "Subscribes the provided application to all events for the provided user context for all message types", + "description" : "Subscribes the provided application to all events for the provided user context for all message types.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/all": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "AAASubscriptions" - ], - "summary": "Check if a subscription exists for a given webhook and user", - "description": "Check if a subscription exists for a given webhook and user.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "getSubscription", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The webhook ID to check subscription against.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsGetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "AAASubscriptions" - ], - "summary": "Subscribes the provided application to all events for the provided user context for all message types", - "description": "Subscribes the provided application to all events for the provided user context for all message types.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "postSubscription", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The webhook ID to check subscription against.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "postSubscription", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The webhook ID to check subscription against.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsCreateRequest" + } } + } }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/all/list": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "AAASubscriptions" - ], - "summary": "Get a list of the current All Activity type subscriptions for the specified webhook", - "description": "Get a list of the current All Activity type subscriptions for the specified webhook.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "getSubscriptionList", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The webhook ID to pull subscriptions for.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsListGetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsCreateResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/account_activity/webhooks/{webhook_id}/subscriptions/all/list" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "AAASubscriptions" + ], + "summary" : "Get a list of the current All Activity type subscriptions for the specified webhook", + "description" : "Get a list of the current All Activity type subscriptions for the specified webhook.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all": { - "delete": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "AAASubscriptions" - ], - "summary": "Deactivates a subscription for the specified webhook and user id", - "description": "Deactivates a subscription for the specified webhook and user id.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "deleteSubscription", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The webhook ID to check subscription against.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - }, - { - "name": "user_id", - "in": "path", - "description": "User ID to unsubscribe from.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getSubscriptionList", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The webhook ID to pull subscriptions for.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsListGetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all" : { + "delete" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "AAASubscriptions" + ], + "summary" : "Deactivates a subscription for the specified webhook and user id", + "description" : "Deactivates a subscription for the specified webhook and user id.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "/2/communities/search": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Communities" - ], - "summary": "Search Communities", - "description": "Returns Communities that match search query", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "communitiesSearch", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "Query to search communities.", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 4096, - "example": "Love" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of search results to be returned by a request.", - "required": false, - "schema": { - "type": "integer", - "minimum": 10, - "maximum": 100, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/NextToken" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/NextToken" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/CommunityFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2CommunitiesSearchResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "deleteSubscription", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The webhook ID to check subscription against.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + }, + { + "name" : "user_id", + "in" : "path", + "description" : "User ID to unsubscribe from.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsDeleteResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/communities/search" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Communities" + ], + "summary" : "Search Communities", + "description" : "Returns Communities that match search query", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/communities/{id}": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Communities" - ], - "summary": "Communities lookup by Community ID.", - "description": "Returns a Community.", - "externalDocs": { - "url": "https://developer.x.com/en/docs/x-api/communities/api-reference/get-communities-id" - }, - "operationId": "communityIdGet", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Community.", - "required": true, - "schema": { - "$ref": "#/components/schemas/CommunityId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/CommunityFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2CommunitiesIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "communitiesSearch", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "Query to search communities.", + "required" : true, + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 4096, + "example" : "Love" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of search results to be returned by a request.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 10, + "maximum" : 100, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/NextToken" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/NextToken" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/CommunityFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2CommunitiesSearchResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/communities/{id}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Communities" + ], + "summary" : "Communities lookup by Community ID.", + "description" : "Returns a Community.", + "externalDocs" : { + "url" : "https://developer.x.com/en/docs/x-api/communities/api-reference/get-communities-id" }, - "/2/compliance/jobs": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Compliance" - ], - "summary": "List Compliance Jobs", - "description": "Returns recent Compliance Jobs for a given job type and optional job status", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs" - }, - "operationId": "listBatchComplianceJobs", - "parameters": [ - { - "name": "type", - "in": "query", - "description": "Type of Compliance Job to list.", - "required": true, - "schema": { - "type": "string", - "enum": [ - "tweets", - "users" - ] - }, - "style": "form" - }, - { - "name": "status", - "in": "query", - "description": "Status of Compliance Job to list.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "in_progress", - "failed", - "complete" - ] - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/ComplianceJobFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ComplianceJobsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Compliance" - ], - "summary": "Create compliance job", - "description": "Creates a compliance for the given job type", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs" - }, - "operationId": "createBatchComplianceJob", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateComplianceJobRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateComplianceJobResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "communityIdGet", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Community.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/CommunityId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/CommunityFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2CommunitiesIdResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/compliance/jobs" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Compliance" + ], + "summary" : "List Compliance Jobs", + "description" : "Returns recent Compliance Jobs for a given job type and optional job status", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs" }, - "/2/compliance/jobs/{id}": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Compliance" - ], - "summary": "Get Compliance Job", - "description": "Returns a single Compliance Job by ID", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id" - }, - "operationId": "getBatchComplianceJob", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Compliance Job to retrieve.", - "required": true, - "schema": { - "$ref": "#/components/schemas/JobId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/ComplianceJobFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ComplianceJobsIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "listBatchComplianceJobs", + "parameters" : [ + { + "name" : "type", + "in" : "query", + "description" : "Type of Compliance Job to list.", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ + "tweets", + "users" + ] + }, + "style" : "form" + }, + { + "name" : "status", + "in" : "query", + "description" : "Status of Compliance Job to list.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "created", + "in_progress", + "failed", + "complete" + ] + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/ComplianceJobFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ComplianceJobsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "post" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Compliance" + ], + "summary" : "Create compliance job", + "description" : "Creates a compliance for the given job type", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs" }, - "/2/connections/all": { - "delete": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Connection" - ], - "summary": "Force kills all streaming connections of the authenticated application.", - "description": "Force kills all streaming connections of the authenticated application.", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "killAllAppConnections", - "parameters": [], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/KillAllConnectionsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "createBatchComplianceJob", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateComplianceJobRequest" + } } + }, + "required" : true }, - "/2/dm_conversations": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Create a new DM Conversation", - "description": "Creates a new DM Conversation.", - "operationId": "dmConversationIdCreate", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDmConversationRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateComplianceJobResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/compliance/jobs/{id}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Compliance" + ], + "summary" : "Get Compliance Job", + "description" : "Returns a single Compliance Job by ID", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id" }, - "/2/dm_conversations/with/{participant_id}/dm_events": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Get DM Events for a DM Conversation", - "description": "Returns DM Events for a DM Conversation", - "operationId": "getDmEventsByParticipantId", - "parameters": [ - { - "name": "participant_id", - "in": "path", - "description": "The ID of the participant user for the One to One DM conversation.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "name": "event_types", - "in": "query", - "description": "The set of event_types to include in the results.", - "required": false, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default": [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example": [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref": "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2DmConversationsWithParticipantIdDmEventsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getBatchComplianceJob", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Compliance Job to retrieve.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/JobId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/ComplianceJobFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ComplianceJobsIdResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/connections/all" : { + "delete" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Connection" + ], + "summary" : "Force kills all streaming connections of the authenticated application.", + "description" : "Force kills all streaming connections of the authenticated application.", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/dm_conversations/with/{participant_id}/messages": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Send a new message to a user", - "description": "Creates a new message for a DM Conversation with a participant user by ID", - "operationId": "dmConversationWithUserEventIdCreate", - "parameters": [ - { - "name": "participant_id", - "in": "path", - "description": "The ID of the recipient user that will receive the DM.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMessageRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "killAllAppConnections", + "parameters" : [ ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/KillAllConnectionsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/dm_conversations" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Create a new DM Conversation", + "description" : "Creates a new DM Conversation.", + "operationId" : "dmConversationIdCreate", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDmConversationRequest" + } + } + } }, - "/2/dm_conversations/{dm_conversation_id}/messages": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Send a new message to a DM Conversation", - "description": "Creates a new message for a DM Conversation specified by DM Conversation ID", - "operationId": "dmConversationByIdEventIdCreate", - "parameters": [ - { - "name": "dm_conversation_id", - "in": "path", - "description": "The DM Conversation ID.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMessageRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "201" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_conversations/with/{participant_id}/dm_events" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Get DM Events for a DM Conversation", + "description" : "Returns DM Events for a DM Conversation", + "operationId" : "getDmEventsByParticipantId", + "parameters" : [ + { + "name" : "participant_id", + "in" : "path", + "description" : "The ID of the participant user for the One to One DM conversation.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "name" : "event_types", + "in" : "query", + "description" : "The set of event_types to include in the results.", + "required" : false, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default" : [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example" : [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref" : "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2DmConversationsWithParticipantIdDmEventsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_conversations/with/{participant_id}/messages" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Send a new message to a user", + "description" : "Creates a new message for a DM Conversation with a participant user by ID", + "operationId" : "dmConversationWithUserEventIdCreate", + "parameters" : [ + { + "name" : "participant_id", + "in" : "path", + "description" : "The ID of the recipient user that will receive the DM.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMessageRequest" + } } + } }, - "/2/dm_conversations/{id}/dm_events": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Get DM Events for a DM Conversation", - "description": "Returns DM Events for a DM Conversation", - "operationId": "getDmConversationsIdDmEvents", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The DM Conversation ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/DmConversationId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "name": "event_types", - "in": "query", - "description": "The set of event_types to include in the results.", - "required": false, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default": [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example": [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref": "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2DmConversationsIdDmEventsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "201" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/dm_conversations/{dm_conversation_id}/messages" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Send a new message to a DM Conversation", + "description" : "Creates a new message for a DM Conversation specified by DM Conversation ID", + "operationId" : "dmConversationByIdEventIdCreate", + "parameters" : [ + { + "name" : "dm_conversation_id", + "in" : "path", + "description" : "The DM Conversation ID.", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMessageRequest" + } + } + } }, - "/2/dm_events": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Get recent DM Events", - "description": "Returns recent DM Events across DM conversations", - "operationId": "getDmEvents", - "parameters": [ - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "name": "event_types", - "in": "query", - "description": "The set of event_types to include in the results.", - "required": false, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default": [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example": [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref": "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2DmEventsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "201" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_conversations/{id}/dm_events" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Get DM Events for a DM Conversation", + "description" : "Returns DM Events for a DM Conversation", + "operationId" : "getDmConversationsIdDmEvents", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The DM Conversation ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/DmConversationId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "name" : "event_types", + "in" : "query", + "description" : "The set of event_types to include in the results.", + "required" : false, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default" : [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example" : [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref" : "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2DmConversationsIdDmEventsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_events" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Get recent DM Events", + "description" : "Returns recent DM Events across DM conversations", + "operationId" : "getDmEvents", + "parameters" : [ + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "name" : "event_types", + "in" : "query", + "description" : "The set of event_types to include in the results.", + "required" : false, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default" : [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example" : [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref" : "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2DmEventsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_events/{event_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "dm.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Delete Dm", + "description" : "Delete a Dm Event that you own.", + "operationId" : "dmEventDelete", + "parameters" : [ + { + "name" : "event_id", + "in" : "path", + "description" : "The ID of the direct-message event to delete.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/DmEventId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DeleteDmResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Get DM Events by id", + "description" : "Returns DM Events by event id.", + "operationId" : "getDmEventsById", + "parameters" : [ + { + "name" : "event_id", + "in" : "path", + "description" : "dm event id.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/DmEventId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref" : "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2DmEventsEventIdResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/insights/28hr" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get Last 28hr Metrics for Posts", + "description" : "Get 28hr Metrics for Posts.", + "operationId" : "TwentyEightHoursEngagementApi", + "parameters" : [ + { + "name" : "tweet_ids", + "in" : "query", + "description" : "List of PostIds for 28hr metrics.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 25, + "uniqueItems" : true, + "items" : { + "$ref" : "#/components/schemas/TweetId" + }, + "example" : [ + "20" + ] + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "granularity of metrics response.", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ + "Daily", + "Hourly", + "Weekly", + "Total" + ], + "example" : "Total" + }, + "style" : "form" + }, + { + "name" : "requested_metrics", + "in" : "query", + "description" : "request metrics for historical request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "AppInstallAttempts", + "AppOpens", + "DetailExpands", + "EmailTweet", + "Engagements", + "Follows", + "HashtagClicks", + "Impressions", + "Likes", + "LinkClicks", + "MediaEngagements", + "MediaViews", + "PermalinkClicks", + "ProfileVisits", + "QuoteTweets", + "Replies", + "Retweets", + "UniqueVideoViews", + "UrlClicks", + "UserProfileClicks", + "VideoCompletions", + "VideoPlayed25Percent", + "VideoPlayed50Percent", + "VideoPlayed75Percent", + "VideoStarts", + "VideoViews" + ] + } + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/EngagementFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2Insights28hrResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/insights/historical" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get Historical Metrics for Posts", + "description" : "Get Historical Metrics for Posts.", + "operationId" : "HistoricalEngagementApi", + "parameters" : [ + { + "name" : "tweet_ids", + "in" : "query", + "description" : "List of PostIds for historical metrics.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 25, + "uniqueItems" : true, + "items" : { + "$ref" : "#/components/schemas/TweetId" + }, + "example" : [ + "20" + ] + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "granularity of metrics response.", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ + "Daily", + "Hourly", + "Weekly", + "Total" + ], + "example" : "Total" + }, + "style" : "form" + }, + { + "name" : "requested_metrics", + "in" : "query", + "description" : "request metrics for historical request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "AppInstallAttempts", + "AppOpens", + "DetailExpands", + "EmailTweet", + "Engagements", + "Follows", + "HashtagClicks", + "Impressions", + "Likes", + "LinkClicks", + "MediaEngagements", + "MediaViews", + "PermalinkClicks", + "ProfileVisits", + "QuoteTweets", + "Replies", + "Retweets", + "UniqueVideoViews", + "UrlClicks", + "UserProfileClicks", + "VideoCompletions", + "VideoPlayed25Percent", + "VideoPlayed50Percent", + "VideoPlayed75Percent", + "VideoStarts", + "VideoViews" + ] + } + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/EngagementFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2InsightsHistoricalResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/likes/compliance/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Compliance" + ], + "summary" : "Likes Compliance stream", + "description" : "Streams 100% of compliance data for Users", + "operationId" : "getLikesComplianceStream", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Likes Compliance events will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Likes Compliance events will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/LikesComplianceStreamResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/dm_events/{event_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "dm.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Delete Dm", - "description": "Delete a Dm Event that you own.", - "operationId": "dmEventDelete", - "parameters": [ - { - "name": "event_id", - "in": "path", - "description": "The ID of the direct-message event to delete.", - "required": true, - "schema": { - "$ref": "#/components/schemas/DmEventId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteDmResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "get": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Get DM Events by id", - "description": "Returns DM Events by event id.", - "operationId": "getDmEventsById", - "parameters": [ - { - "name": "event_id", - "in": "path", - "description": "dm event id.", - "required": true, - "schema": { - "$ref": "#/components/schemas/DmEventId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref": "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2DmEventsEventIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/likes/firehose/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Likes" + ], + "summary" : "Likes Firehose stream", + "description" : "Streams 100% of public Likes.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-likes-firehose-stream" + }, + "operationId" : "likesFirehoseStream", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 20, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/LikeWithTweetAuthorFieldsParameter" + }, + { + "$ref" : "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingLikeResponseV2" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/insights/28hr": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get Last 28hr Metrics for Posts", - "description": "Get 28hr Metrics for Posts.", - "operationId": "TwentyEightHoursEngagementApi", - "parameters": [ - { - "name": "tweet_ids", - "in": "query", - "description": "List of PostIds for 28hr metrics.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 25, - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/TweetId" - }, - "example": [ - "20" - ] - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "granularity of metrics response.", - "required": true, - "schema": { - "type": "string", - "enum": [ - "Daily", - "Hourly", - "Weekly", - "Total" - ], - "example": "Total" - }, - "style": "form" - }, - { - "name": "requested_metrics", - "in": "query", - "description": "request metrics for historical request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "AppInstallAttempts", - "AppOpens", - "DetailExpands", - "EmailTweet", - "Engagements", - "Follows", - "HashtagClicks", - "Impressions", - "Likes", - "LinkClicks", - "MediaEngagements", - "MediaViews", - "PermalinkClicks", - "ProfileVisits", - "QuoteTweets", - "Replies", - "Retweets", - "UniqueVideoViews", - "UrlClicks", - "UserProfileClicks", - "VideoCompletions", - "VideoPlayed25Percent", - "VideoPlayed50Percent", - "VideoPlayed75Percent", - "VideoStarts", - "VideoViews" - ] - } - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/EngagementFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2Insights28hrResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/likes/sample10/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Likes" + ], + "summary" : "Likes Sample 10 stream", + "description" : "Streams 10% of public Likes.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/likes/firehose/api-reference/get-likes-sample10-stream" + }, + "operationId" : "likesSample10Stream", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 2, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/LikeWithTweetAuthorFieldsParameter" + }, + { + "$ref" : "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingLikeResponseV2" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/insights/historical": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get Historical Metrics for Posts", - "description": "Get Historical Metrics for Posts.", - "operationId": "HistoricalEngagementApi", - "parameters": [ - { - "name": "tweet_ids", - "in": "query", - "description": "List of PostIds for historical metrics.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 25, - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/TweetId" - }, - "example": [ - "20" - ] - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "granularity of metrics response.", - "required": true, - "schema": { - "type": "string", - "enum": [ - "Daily", - "Hourly", - "Weekly", - "Total" - ], - "example": "Total" - }, - "style": "form" - }, - { - "name": "requested_metrics", - "in": "query", - "description": "request metrics for historical request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "AppInstallAttempts", - "AppOpens", - "DetailExpands", - "EmailTweet", - "Engagements", - "Follows", - "HashtagClicks", - "Impressions", - "Likes", - "LinkClicks", - "MediaEngagements", - "MediaViews", - "PermalinkClicks", - "ProfileVisits", - "QuoteTweets", - "Replies", - "Retweets", - "UniqueVideoViews", - "UrlClicks", - "UserProfileClicks", - "VideoCompletions", - "VideoPlayed25Percent", - "VideoPlayed50Percent", - "VideoPlayed75Percent", - "VideoStarts", - "VideoViews" - ] - } - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/EngagementFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2InsightsHistoricalResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/lists" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.read", + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Create List", + "description" : "Creates a new List.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists" + }, + "operationId" : "listIdCreate", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListCreateRequest" + } } + } }, - "/2/likes/compliance/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Compliance" - ], - "summary": "Likes Compliance stream", - "description": "Streams 100% of compliance data for Users", - "operationId": "getLikesComplianceStream", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Likes Compliance events will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Likes Compliance events will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LikesComplianceStreamResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/lists/{id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Delete List", + "description" : "Delete a List that you own.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id" }, - "/2/likes/firehose/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Likes" - ], - "summary": "Likes Firehose stream", - "description": "Streams 100% of public Likes.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-likes-firehose-stream" - }, - "operationId": "likesFirehoseStream", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 20, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" - }, - { - "$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingLikeResponseV2" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "listIdDelete", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List to delete.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListDeleteResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "List lookup by List ID.", + "description" : "Returns a List.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id" }, - "/2/likes/sample10/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Likes" - ], - "summary": "Likes Sample 10 stream", - "description": "Streams 10% of public Likes.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/likes/firehose/api-reference/get-likes-sample10-stream" - }, - "operationId": "likesSample10Stream", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 2, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" - }, - { - "$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingLikeResponseV2" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "listIdGet", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/ListFieldsParameter" + }, + { + "$ref" : "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ListsIdResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "put" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Update List.", + "description" : "Update a List that you own.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id" }, - "/2/lists": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "list.read", - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Create List", - "description": "Creates a new List.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists" - }, - "operationId": "listIdCreate", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "listIdUpdate", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List to modify.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListUpdateRequest" + } } + } }, - "/2/lists/{id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Delete List", - "description": "Delete a List that you own.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id" - }, - "operationId": "listIdDelete", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List to delete.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "List lookup by List ID.", - "description": "Returns a List.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id" - }, - "operationId": "listIdGet", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/ListFieldsParameter" - }, - { - "$ref": "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ListsIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "put": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Update List.", - "description": "Update a List that you own.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id" - }, - "operationId": "listIdUpdate", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List to modify.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListUpdateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListUpdateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListUpdateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/lists/{id}/followers" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Returns User objects that follow a List by the provided List ID", + "description" : "Returns a list of Users that follow a List by the provided List ID", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" }, - "/2/lists/{id}/followers": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Returns User objects that follow a List by the provided List ID", - "description": "Returns a list of Users that follow a List by the provided List ID", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" - }, - "operationId": "listGetFollowers", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ListsIdFollowersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "listGetFollowers", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ListsIdFollowersResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/lists/{id}/members" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Returns User objects that are members of a List by the provided List ID.", + "description" : "Returns a list of Users that are members of a List by the provided List ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" }, - "/2/lists/{id}/members": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Returns User objects that are members of a List by the provided List ID.", - "description": "Returns a list of Users that are members of a List by the provided List ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" - }, - "operationId": "listGetMembers", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ListsIdMembersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Add a List member", - "description": "Causes a User to become a member of a List.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members" - }, - "operationId": "listAddMember", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List for which to add a member.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListAddUserRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListMutateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "listGetMembers", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ListsIdMembersResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Add a List member", + "description" : "Causes a User to become a member of a List.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members" }, - "/2/lists/{id}/members/{user_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Remove a List member", - "description": "Causes a User to be removed from the members of a List.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id" - }, - "operationId": "listRemoveMember", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List to remove a member.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - }, - { - "name": "user_id", - "in": "path", - "description": "The ID of User that will be removed from the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListMutateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "listAddMember", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List for which to add a member.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListAddUserRequest" + } } + } }, - "/2/lists/{id}/tweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "List Posts timeline by List ID.", - "description": "Returns a list of Posts associated with the provided List ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets" - }, - "operationId": "listsIdTweets", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ListsIdTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListMutateResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/lists/{id}/members/{user_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Remove a List member", + "description" : "Causes a User to be removed from the members of a List.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id" }, - "/2/media": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Media lookup by Media Key", - "description": "Returns a variety of information about the Media specified by the requested Media Key.", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "findMediaByMediaKeys", - "parameters": [ - { - "name": "media_keys", - "in": "query", - "description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/MediaKey" - } - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2MediaResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "listRemoveMember", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List to remove a member.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + }, + { + "name" : "user_id", + "in" : "path", + "description" : "The ID of User that will be removed from the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListMutateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/lists/{id}/tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "List Posts timeline by List ID.", + "description" : "Returns a list of Posts associated with the provided List ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets" }, - "/2/media/analytics": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Analytics of Media", - "description": "Returns analytics of Media.", - "operationId": "MediaAnalytics", - "parameters": [ - { - "name": "media_keys", - "in": "query", - "description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/MediaKey" - } - }, - "explode": false, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "The granularity for the search counts results.", - "required": true, - "schema": { - "type": "string", - "enum": [ - "hourly", - "daily", - "total" - ], - "default": "daily" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/MediaAnalyticsFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaAnalytics" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "listsIdTweets", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ListsIdTweetsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Media lookup by Media Key", + "description" : "Returns a variety of information about the Media specified by the requested Media Key.", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/media/metadata": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "MediaUpload" - ], - "summary": "Metadata Create", - "description": "MetadataCreate", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-metadata-create#metadata-create" - }, - "operationId": "metadataCreate", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetadataCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetadataCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "findMediaByMediaKeys", + "parameters" : [ + { + "name" : "media_keys", + "in" : "query", + "description" : "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/MediaKey" + } + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2MediaResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/analytics" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Analytics of Media", + "description" : "Returns analytics of Media.", + "operationId" : "MediaAnalytics", + "parameters" : [ + { + "name" : "media_keys", + "in" : "query", + "description" : "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/MediaKey" + } + }, + "explode" : false, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "The granularity for the search counts results.", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ + "hourly", + "daily", + "total" + ], + "default" : "daily" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/MediaAnalyticsFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaAnalytics" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/metadata" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "MediaUpload" + ], + "summary" : "Metadata Create", + "description" : "MetadataCreate", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-metadata-create#metadata-create" }, - "/2/media/subtitles": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "MediaUpload" - ], - "summary": "Subtitle Delete", - "description": "SubtitleDelete", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-subtitles-delete" - }, - "operationId": "deleteSubtitles", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubtitlesDeleteRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubtitlesDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "MediaUpload" - ], - "summary": "Subtitle Create", - "description": "SubtitleCreate", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-subtitles-create" - }, - "operationId": "createSubtitles", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubtitlesCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubtitlesCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "metadataCreate", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MetadataCreateRequest" + } } + } }, - "/2/media/upload": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "MediaUpload" - ], - "summary": "Media Upload Status", - "description": "Get MediaUpload Status", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-upload-status#media-upload-status" - }, - "operationId": "uploadMediaStatus", - "parameters": [ - { - "name": "media_id", - "in": "query", - "description": "Media id for the requested media upload status.", - "required": true, - "schema": { - "$ref": "#/components/schemas/MediaId" - }, - "style": "form" - }, - { - "name": "command", - "in": "query", - "description": "The command for the media upload request.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "STATUS" - ] - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "MediaUpload" - ], - "summary": "Image or subtitle media upload", - "description": "Uploads an image or a subtitle using a single API call.", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-upload" - }, - "operationId": "uploadMedia", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadRequestOneShot" - } - }, - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/MediaUploadRequestOneShot" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MetadataCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/subtitles" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "MediaUpload" + ], + "summary" : "Subtitle Delete", + "description" : "SubtitleDelete", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-subtitles-delete" }, - "/2/media/upload/initialize": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "MediaUpload" - ], - "summary": "Initialize a media upload request.", - "description": "Initialize a media upload request.", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-upload" - }, - "operationId": "initializeMediaUpload", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadConfigRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "deleteSubtitles", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubtitlesDeleteRequest" + } } + } }, - "/2/media/upload/{id}/append": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "MediaUpload" - ], - "summary": "Media upload resumable upload append endpoint.", - "description": "MediaUpload", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-upload" - }, - "operationId": "appendMediaUpload", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The media identifier for the media to perform the append operation.", - "required": true, - "schema": { - "$ref": "#/components/schemas/MediaId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadAppendRequest" - } - }, - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/MediaUploadAppendRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadAppendResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubtitlesDeleteResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "MediaUpload" + ], + "summary" : "Subtitle Create", + "description" : "SubtitleCreate", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-subtitles-create" }, - "/2/media/upload/{id}/finalize": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "MediaUpload" - ], - "summary": "Finalize a media upload request.", - "description": "Finalize a media upload request.", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-upload" - }, - "operationId": "finalizeMediaUpload", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The media id of the targeted media to finalize.", - "required": true, - "schema": { - "$ref": "#/components/schemas/MediaId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "createSubtitles", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubtitlesCreateRequest" + } } + } }, - "/2/media/{media_key}": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Media lookup by Media Key", - "description": "Returns a variety of information about the Media specified by the requested Media Key.", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "findMediaByMediaKey", - "parameters": [ - { - "name": "media_key", - "in": "path", - "description": "A single Media Key.", - "required": true, - "schema": { - "$ref": "#/components/schemas/MediaKey" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2MediaMediaKeyResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubtitlesCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/upload" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "MediaUpload" + ], + "summary" : "Media Upload Status", + "description" : "Get MediaUpload Status", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-upload-status#media-upload-status" }, - "/2/notes": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Community Notes" - ], - "summary": "Create a Community Note", - "description": "Creates a community note endpoint for LLM use case.", - "externalDocs": { - "url": "https://communitynotes.x.com/guide/api/overview" - }, - "operationId": "createNote", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateNoteRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteNoteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "uploadMediaStatus", + "parameters" : [ + { + "name" : "media_id", + "in" : "query", + "description" : "Media id for the requested media upload status.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/MediaId" + }, + "style" : "form" + }, + { + "name" : "command", + "in" : "query", + "description" : "The command for the media upload request.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "STATUS" + ] + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "MediaUpload" + ], + "summary" : "Image or subtitle media upload", + "description" : "Uploads an image or a subtitle using a single API call.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-upload" }, - "/2/notes/search/notes_written": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Community Notes" - ], - "summary": "Search for Community Notes Written", - "description": "Returns all the community notes written by the user.", - "externalDocs": { - "url": "https://communitynotes.x.com/guide/api/overview" - }, - "operationId": "searchNotesWritten", - "parameters": [ - { - "name": "test_mode", - "in": "query", - "description": "If true, return the notes the caller wrote for the test. If false, return the notes the caller wrote on the product.", - "required": true, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "Pagination token to get next set of posts eligible for notes.", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "Max results to return.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/NoteFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2NotesSearchNotesWrittenResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "uploadMedia", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadRequestOneShot" + } + }, + "multipart/form-data" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadRequestOneShot" + } } + } }, - "/2/notes/search/posts_eligible_for_notes": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Community Notes" - ], - "summary": "Search for Posts Eligible for Community Notes", - "description": "Returns all the posts that are eligible for community notes.", - "externalDocs": { - "url": "https://communitynotes.x.com/guide/api/overview" - }, - "operationId": "searchPostsEligibleForNotes", - "parameters": [ - { - "name": "test_mode", - "in": "query", - "description": "If true, return a list of posts that are for the test. If false, return a list of posts that the bots can write proposed notes on the product.", - "required": true, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "Pagination token to get next set of posts eligible for notes.", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "Max results to return.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2NotesSearchPostsEligibleForNotesResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/upload/initialize" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "MediaUpload" + ], + "summary" : "Initialize a media upload request.", + "description" : "Initialize a media upload request.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-upload" }, - "/2/notes/{id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Community Notes" - ], - "summary": "Delete a Community Note", - "description": "Deletes a community note.", - "externalDocs": { - "url": "https://communitynotes.x.com/guide/api/overview" - }, - "operationId": "deleteNote", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The community note id to delete.", - "required": true, - "schema": { - "$ref": "#/components/schemas/NoteId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateNoteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "initializeMediaUpload", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadConfigRequest" + } } + } }, - "/2/openapi.json": { - "get": { - "tags": [ - "General" - ], - "summary": "Returns the OpenAPI Specification document.", - "description": "Full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", - "operationId": "getOpenApiSpec", - "parameters": [], - "responses": { - "200": { - "description": "The request was successful", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/upload/{id}/append" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "MediaUpload" + ], + "summary" : "Media upload resumable upload append endpoint.", + "description" : "MediaUpload", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-upload" }, - "/2/spaces": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces" - ], - "summary": "Space lookup up Space IDs", - "description": "Returns a variety of information about the Spaces specified by the requested IDs", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces" - }, - "operationId": "findSpacesByIds", - "parameters": [ - { - "name": "ids", - "in": "query", - "description": "The list of Space IDs to return.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "type": "string", - "description": "The unique identifier of this Space.", - "pattern": "^[a-zA-Z0-9]{1,13}$", - "example": "1SLjjRYNejbKM" - } - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref": "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TopicFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "appendMediaUpload", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The media identifier for the media to perform the append operation.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/MediaId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadAppendRequest" + } + }, + "multipart/form-data" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadAppendRequest" + } } + } }, - "/2/spaces/by/creator_ids": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces" - ], - "summary": "Space lookup by their creators", - "description": "Returns a variety of information about the Spaces created by the provided User IDs", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids" - }, - "operationId": "findSpacesByCreatorIds", - "parameters": [ - { - "name": "user_ids", - "in": "query", - "description": "The IDs of Users to search through.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref": "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TopicFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesByCreatorIdsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadAppendResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/upload/{id}/finalize" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "MediaUpload" + ], + "summary" : "Finalize a media upload request.", + "description" : "Finalize a media upload request.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-upload" }, - "/2/spaces/search": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces" - ], - "summary": "Search for Spaces", - "description": "Returns Spaces that match the provided query.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search" - }, - "operationId": "searchSpaces", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "The search query.", - "required": true, - "example": "crypto", - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 2048, - "example": "crypto" - }, - "style": "form" - }, - { - "name": "state", - "in": "query", - "description": "The state of Spaces to search for.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "live", - "scheduled", - "all" - ], - "default": "all" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The number of results to return.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref": "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TopicFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesSearchResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "finalizeMediaUpload", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The media id of the targeted media to finalize.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/MediaId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/{media_key}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Media lookup by Media Key", + "description" : "Returns a variety of information about the Media specified by the requested Media Key.", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/spaces/{id}": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces" - ], - "summary": "Space lookup by Space ID", - "description": "Returns a variety of information about the Space specified by the requested ID", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id" - }, - "operationId": "findSpaceById", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Space to be retrieved.", - "required": true, - "example": "1YqKDqWqdPLsV", - "schema": { - "type": "string", - "description": "The unique identifier of this Space.", - "pattern": "^[a-zA-Z0-9]{1,13}$", - "example": "1SLjjRYNejbKM" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref": "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TopicFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "findMediaByMediaKey", + "parameters" : [ + { + "name" : "media_key", + "in" : "path", + "description" : "A single Media Key.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/MediaKey" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2MediaMediaKeyResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/notes" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Community Notes" + ], + "summary" : "Create a Community Note", + "description" : "Creates a community note endpoint for LLM use case.", + "externalDocs" : { + "url" : "https://communitynotes.x.com/guide/api/overview" }, - "/2/spaces/{id}/buyers": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces", - "Tweets" - ], - "summary": "Retrieve the list of Users who purchased a ticket to the given space", - "description": "Retrieves the list of Users who purchased a ticket to the given space", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers" - }, - "operationId": "spaceBuyers", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Space to be retrieved.", - "required": true, - "example": "1YqKDqWqdPLsV", - "schema": { - "type": "string", - "description": "The unique identifier of this Space.", - "pattern": "^[a-zA-Z0-9]{1,13}$", - "example": "1SLjjRYNejbKM" - }, - "style": "simple" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesIdBuyersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "createNote", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateNoteRequest" + } } + } }, - "/2/spaces/{id}/tweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces", - "Tweets" - ], - "summary": "Retrieve Posts from a Space.", - "description": "Retrieves Posts shared in the specified Space.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets" - }, - "operationId": "spaceTweets", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Space to be retrieved.", - "required": true, - "example": "1YqKDqWqdPLsV", - "schema": { - "type": "string", - "description": "The unique identifier of this Space.", - "pattern": "^[a-zA-Z0-9]{1,13}$", - "example": "1SLjjRYNejbKM" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The number of Posts to fetch from the provided space. If not provided, the value will default to the maximum of 100.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100, - "example": 25 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesIdTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DeleteNoteResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/notes/search/notes_written" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Community Notes" + ], + "summary" : "Search for Community Notes Written", + "description" : "Returns all the community notes written by the user.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/community-notes/search-for-community-notes-written" }, - "/2/trends/by/woeid/{woeid}": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Trends" - ], - "summary": "Trends", - "description": "Returns the Trend associated with the supplied WoeId.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/trends/api-reference/get-trends-by-woeid" - }, - "operationId": "getTrends", - "parameters": [ - { - "name": "woeid", - "in": "path", - "description": "The WOEID of the place to lookup a trend for.", - "required": true, - "example": "2244994945", - "schema": { - "type": "integer", - "format": "int32" - }, - "style": "simple" - }, - { - "name": "max_trends", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "format": "int32", - "default": 20 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TrendFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TrendsByWoeidWoeidResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "searchNotesWritten", + "parameters" : [ + { + "name" : "test_mode", + "in" : "query", + "description" : "If true, return the notes the caller wrote for the test. If false, return the notes the caller wrote on the product.", + "required" : true, + "schema" : { + "type" : "boolean" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "Pagination token to get next set of posts eligible for notes.", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "Max results to return.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/NoteFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2NotesSearchNotesWrittenResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/notes/search/posts_eligible_for_notes" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Community Notes" + ], + "summary" : "Search for Posts Eligible for Community Notes", + "description" : "Returns all the posts that are eligible for community notes.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/community-notes/search-for-posts-eligible-for-community-notes" }, - "/2/tweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Post lookup by Post IDs", - "description": "Returns a variety of information about the Post specified by the requested ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets" - }, - "operationId": "findTweetsById", - "parameters": [ - { - "name": "ids", - "in": "query", - "description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/TweetId" - } - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Creation of a Post", - "description": "Causes the User to create a Post under the authorized account.", - "externalDocs": { - "url": "https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets" - }, - "operationId": "createTweet", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetCreateRequest" - } - } - }, - "required": true - }, - "responses": { - "201": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "searchPostsEligibleForNotes", + "parameters" : [ + { + "name" : "test_mode", + "in" : "query", + "description" : "If true, return a list of posts that are for the test. If false, return a list of posts that the bots can write proposed notes on the product.", + "required" : true, + "schema" : { + "type" : "boolean" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "Pagination token to get next set of posts eligible for notes.", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "Max results to return.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2NotesSearchPostsEligibleForNotesResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/notes/{id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Community Notes" + ], + "summary" : "Delete a Community Note", + "description" : "Deletes a community note.", + "externalDocs" : { + "url" : "https://communitynotes.x.com/guide/api/overview" }, - "/2/tweets/analytics": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Analytics of posts", - "description": "Returns analytics of posts.", - "operationId": "postAnalytics2", - "parameters": [ - { - "name": "ids", - "in": "query", - "description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/TweetId" - } - }, - "explode": false, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "The granularity for the search counts results.", - "required": true, - "schema": { - "type": "string", - "enum": [ - "hourly", - "daily", - "weekly", - "total" - ], - "default": "total" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/AnalyticsFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Analytics" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "deleteNote", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The community note id to delete.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/NoteId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateNoteResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/openapi.json" : { + "get" : { + "tags" : [ + "General" + ], + "summary" : "Returns the OpenAPI Specification document.", + "description" : "Full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", + "operationId" : "getOpenApiSpec", + "parameters" : [ ], + "responses" : { + "200" : { + "description" : "The request was successful", + "content" : { + "application/json" : { + "schema" : { + "type" : "object" + } + } } + } + } + } + }, + "/2/spaces" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces" + ], + "summary" : "Space lookup up Space IDs", + "description" : "Returns a variety of information about the Spaces specified by the requested IDs", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces" }, - "/2/tweets/compliance/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Compliance" - ], - "summary": "Posts Compliance stream", - "description": "Streams 100% of compliance data for Posts", - "operationId": "getTweetsComplianceStream", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post Compliance events will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Post Compliance events will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetComplianceStreamResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "findSpacesByIds", + "parameters" : [ + { + "name" : "ids", + "in" : "query", + "description" : "The list of Space IDs to return.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "type" : "string", + "description" : "The unique identifier of this Space.", + "pattern" : "^[a-zA-Z0-9]{1,13}$", + "example" : "1SLjjRYNejbKM" + } + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref" : "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TopicFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/spaces/by/creator_ids" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces" + ], + "summary" : "Space lookup by their creators", + "description" : "Returns a variety of information about the Spaces created by the provided User IDs", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids" }, - "/2/tweets/counts/all": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Full archive search counts", - "description": "Returns Post Counts that match a search query.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" - }, - "operationId": "tweetCountsFullArchiveSearch", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 4096, - "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "since_id", - "in": "query", - "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "The granularity for the search counts results.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "minute", - "hour", - "day" - ], - "default": "hour" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/SearchCountFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsCountsAllResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "findSpacesByCreatorIds", + "parameters" : [ + { + "name" : "user_ids", + "in" : "query", + "description" : "The IDs of Users to search through.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref" : "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TopicFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesByCreatorIdsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/spaces/search" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces" + ], + "summary" : "Search for Spaces", + "description" : "Returns Spaces that match the provided query.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search" }, - "/2/tweets/counts/recent": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Recent search counts", - "description": "Returns Post Counts from the last 7 days that match a search query.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent" - }, - "operationId": "tweetCountsRecentSearch", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 4096, - "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "since_id", - "in": "query", - "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "The granularity for the search counts results.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "minute", - "hour", - "day" - ], - "default": "hour" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/SearchCountFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsCountsRecentResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "searchSpaces", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "The search query.", + "required" : true, + "example" : "crypto", + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 2048, + "example" : "crypto" + }, + "style" : "form" + }, + { + "name" : "state", + "in" : "query", + "description" : "The state of Spaces to search for.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "live", + "scheduled", + "all" + ], + "default" : "all" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The number of results to return.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref" : "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TopicFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesSearchResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/spaces/{id}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces" + ], + "summary" : "Space lookup by Space ID", + "description" : "Returns a variety of information about the Space specified by the requested ID", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id" }, - "/2/tweets/firehose/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Firehose stream", - "description": "Streams 100% of public Posts.", - "operationId": "getTweetsFirehoseStream", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 20, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "findSpaceById", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Space to be retrieved.", + "required" : true, + "example" : "1YqKDqWqdPLsV", + "schema" : { + "type" : "string", + "description" : "The unique identifier of this Space.", + "pattern" : "^[a-zA-Z0-9]{1,13}$", + "example" : "1SLjjRYNejbKM" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref" : "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TopicFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesIdResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/spaces/{id}/buyers" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces", + "Tweets" + ], + "summary" : "Retrieve the list of Users who purchased a ticket to the given space", + "description" : "Retrieves the list of Users who purchased a ticket to the given space", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers" }, - "/2/tweets/firehose/stream/lang/en": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "English Language Firehose stream", - "description": "Streams 100% of English Language public Posts.", - "operationId": "getTweetsFirehoseStreamLangEn", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 8, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "spaceBuyers", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Space to be retrieved.", + "required" : true, + "example" : "1YqKDqWqdPLsV", + "schema" : { + "type" : "string", + "description" : "The unique identifier of this Space.", + "pattern" : "^[a-zA-Z0-9]{1,13}$", + "example" : "1SLjjRYNejbKM" + }, + "style" : "simple" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesIdBuyersResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/spaces/{id}/tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces", + "Tweets" + ], + "summary" : "Retrieve Posts from a Space.", + "description" : "Retrieves Posts shared in the specified Space.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets" }, - "/2/tweets/firehose/stream/lang/ja": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Japanese Language Firehose stream", - "description": "Streams 100% of Japanese Language public Posts.", - "operationId": "getTweetsFirehoseStreamLangJa", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 2, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "spaceTweets", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Space to be retrieved.", + "required" : true, + "example" : "1YqKDqWqdPLsV", + "schema" : { + "type" : "string", + "description" : "The unique identifier of this Space.", + "pattern" : "^[a-zA-Z0-9]{1,13}$", + "example" : "1SLjjRYNejbKM" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The number of Posts to fetch from the provided space. If not provided, the value will default to the maximum of 100.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100, + "example" : 25 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesIdTweetsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/trends/by/woeid/{woeid}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Trends" + ], + "summary" : "Trends", + "description" : "Returns the Trend associated with the supplied WoeId.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/trends/api-reference/get-trends-by-woeid" }, - "/2/tweets/firehose/stream/lang/ko": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Korean Language Firehose stream", - "description": "Streams 100% of Korean Language public Posts.", - "operationId": "getTweetsFirehoseStreamLangKo", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 2, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "getTrends", + "parameters" : [ + { + "name" : "woeid", + "in" : "path", + "description" : "The WOEID of the place to lookup a trend for.", + "required" : true, + "example" : "2244994945", + "schema" : { + "type" : "integer", + "format" : "int32" + }, + "style" : "simple" + }, + { + "name" : "max_trends", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 50, + "format" : "int32", + "default" : 20 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TrendFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TrendsByWoeidWoeidResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Post lookup by Post IDs", + "description" : "Returns a variety of information about the Post specified by the requested ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets" }, - "/2/tweets/firehose/stream/lang/pt": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Portuguese Language Firehose stream", - "description": "Streams 100% of Portuguese Language public Posts.", - "operationId": "getTweetsFirehoseStreamLangPt", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 2, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "findTweetsById", + "parameters" : [ + { + "name" : "ids", + "in" : "query", + "description" : "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Creation of a Post", + "description" : "Causes the User to create a Post under the authorized account.", + "externalDocs" : { + "url" : "https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets" }, - "/2/tweets/label/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Compliance" - ], - "summary": "Posts Label stream", - "description": "Streams 100% of labeling events applied to Posts", - "operationId": "getTweetsLabelStream", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post labels will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Post labels will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetLabelStreamResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "createTweet", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetCreateRequest" + } } + }, + "required" : true }, - "/2/tweets/sample/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Sample stream", - "description": "Streams a deterministic 1% of public Posts.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/api-reference/get-tweets-sample-stream" - }, - "operationId": "sampleStream", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "responses" : { + "201" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/analytics" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Analytics of posts", + "description" : "Returns analytics of posts.", + "operationId" : "postAnalytics2", + "parameters" : [ + { + "name" : "ids", + "in" : "query", + "description" : "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "explode" : false, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "The granularity for the search counts results.", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ + "hourly", + "daily", + "weekly", + "total" + ], + "default" : "total" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/AnalyticsFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Analytics" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/compliance/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Compliance" + ], + "summary" : "Posts Compliance stream", + "description" : "Streams 100% of compliance data for Posts", + "operationId" : "getTweetsComplianceStream", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 4, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post Compliance events will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Post Compliance events will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetComplianceStreamResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/tweets/sample10/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Sample 10% stream", - "description": "Streams a deterministic 10% of public Posts.", - "operationId": "getTweetsSample10Stream", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 2, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsSample10StreamResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "x-twitter-streaming" : true + } + }, + "/2/tweets/counts/all" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Full archive search counts", + "description" : "Returns Post Counts that match a search query.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" + }, + "operationId" : "tweetCountsFullArchiveSearch", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required" : true, + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 4096, + "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "The granularity for the search counts results.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "minute", + "hour", + "day" + ], + "default" : "hour" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/SearchCountFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsCountsAllResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/counts/recent" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Recent search counts", + "description" : "Returns Post Counts from the last 7 days that match a search query.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent" }, - "/2/tweets/search/all": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Full-archive search", - "description": "Returns Posts that match a search query.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" - }, - "operationId": "tweetsFullarchiveSearch", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 4096, - "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "since_id", - "in": "query", - "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of search results to be returned by a request.", - "required": false, - "schema": { - "type": "integer", - "minimum": 10, - "maximum": 500, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "sort_order", - "in": "query", - "description": "This order in which to return results.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "recency", - "relevancy" - ] - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsSearchAllResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "tweetCountsRecentSearch", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required" : true, + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 4096, + "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "The granularity for the search counts results.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "minute", + "hour", + "day" + ], + "default" : "hour" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/SearchCountFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsCountsRecentResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/firehose/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Firehose stream", + "description" : "Streams 100% of public Posts.", + "operationId" : "getTweetsFirehoseStream", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 20, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/search/recent": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Recent search", - "description": "Returns Posts from the last 7 days that match a search query.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent" - }, - "operationId": "tweetsRecentSearch", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 4096, - "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "since_id", - "in": "query", - "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of search results to be returned by a request.", - "required": false, - "schema": { - "type": "integer", - "minimum": 10, - "maximum": 100, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "sort_order", - "in": "query", - "description": "This order in which to return results.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "recency", - "relevancy" - ] - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsSearchRecentResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/firehose/stream/lang/en" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "English Language Firehose stream", + "description" : "Streams 100% of English Language public Posts.", + "operationId" : "getTweetsFirehoseStreamLangEn", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 8, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/search/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Filtered stream", - "description": "Streams Posts matching the stream's active rule set.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream" - }, - "operationId": "searchStream", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FilteredStreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "x-twitter-streaming" : true + } + }, + "/2/tweets/firehose/stream/lang/ja" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Japanese Language Firehose stream", + "description" : "Streams 100% of Japanese Language public Posts.", + "operationId" : "getTweetsFirehoseStreamLangJa", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 2, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/search/stream/rules": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Rules lookup", - "description": "Returns rules from a User's active rule set. Users can fetch all of their rules or a subset, specified by the provided rule ids.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules" - }, - "operationId": "getRules", - "parameters": [ - { - "name": "ids", - "in": "query", - "description": "A comma-separated list of Rule IDs.", - "required": false, - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RuleId" - } - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32", - "default": 1000 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This value is populated by passing the 'next_token' returned in a request to paginate through results.", - "required": false, - "schema": { - "type": "string", - "minLength": 16, - "maxLength": 16 - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RulesLookupResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Add/Delete rules", - "description": "Add or delete rules from a User's active rule set. Users can provide unique, optionally tagged rules to add. Users can delete their entire rule set or a subset specified by rule ids or values.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/post-tweets-search-stream-rules" - }, - "operationId": "addOrDeleteRules", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "description": "Dry Run can be used with both the add and delete action, with the expected result given, but without actually taking any action in the system (meaning the end state will always be as it was when the request was submitted). This is particularly useful to validate rule changes.", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "name": "delete_all", - "in": "query", - "description": "Delete All can be used to delete all of the rules associated this client app, it should be specified with no other parameters. Once deleted, rules cannot be recovered.", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddOrDeleteRulesRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddOrDeleteRulesResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/firehose/stream/lang/ko" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Korean Language Firehose stream", + "description" : "Streams 100% of Korean Language public Posts.", + "operationId" : "getTweetsFirehoseStreamLangKo", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 2, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/search/stream/rules/counts": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "General" - ], - "summary": "Rules Count", - "description": "Returns the counts of rules from a User's active rule set, to reflect usage by project and application.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules-counts" - }, - "operationId": "getRuleCount", - "parameters": [ - { - "$ref": "#/components/parameters/RulesCountFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsSearchStreamRulesCountsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/firehose/stream/lang/pt" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Portuguese Language Firehose stream", + "description" : "Streams 100% of Portuguese Language public Posts.", + "operationId" : "getTweetsFirehoseStreamLangPt", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 2, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/tweets/{id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Post delete by Post ID", - "description": "Delete specified Post (in the path) by ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id" - }, - "operationId": "deleteTweetById", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Post to be deleted.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Post lookup by Post ID", - "description": "Returns a variety of information about the Post specified by the requested ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id" - }, - "operationId": "findTweetById", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "A single Post ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/sample/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Sample stream", + "description" : "Streams a deterministic 1% of public Posts.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/api-reference/get-tweets-sample-stream" + }, + "operationId" : "sampleStream", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/{id}/liking_users": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "like.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Returns User objects that have liked the provided Post ID", - "description": "Returns a list of Users that have liked the provided Post ID", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-tweets-id-liking_users" - }, - "operationId": "tweetsIdLikingUsers", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "A single Post ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsIdLikingUsersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/sample10/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Sample 10% stream", + "description" : "Streams a deterministic 10% of public Posts.", + "operationId" : "getTweetsSample10Stream", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 2, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsSample10StreamResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/{id}/quote_tweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Retrieve Posts that quote a Post.", - "description": "Returns a variety of information about each Post that quotes the Post specified by the requested ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets" - }, - "operationId": "findTweetsThatQuoteATweet", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "A single Post ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results to be returned.", - "required": false, - "schema": { - "type": "integer", - "minimum": 10, - "maximum": 100, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "exclude", - "in": "query", - "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required": false, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "replies", - "retweets" - ] - }, - "example": [ - "replies", - "retweets" - ] - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsIdQuoteTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/search/all" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Full-archive search", + "description" : "Returns Posts that match a search query.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" + }, + "operationId" : "tweetsFullarchiveSearch", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required" : true, + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 4096, + "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of search results to be returned by a request.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 10, + "maximum" : 500, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "sort_order", + "in" : "query", + "description" : "This order in which to return results.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "recency", + "relevancy" + ] + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsSearchAllResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/search/recent" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Recent search", + "description" : "Returns Posts from the last 7 days that match a search query.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent" }, - "/2/tweets/{id}/retweeted_by": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Returns User objects that have retweeted the provided Post ID", - "description": "Returns a list of Users that have retweeted the provided Post ID", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweeted_by" - }, - "operationId": "tweetsIdRetweetingUsers", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "A single Post ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsIdRetweetedByResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "tweetsRecentSearch", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required" : true, + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 4096, + "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of search results to be returned by a request.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 10, + "maximum" : 100, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "sort_order", + "in" : "query", + "description" : "This order in which to return results.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "recency", + "relevancy" + ] + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsSearchRecentResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/search/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Filtered stream", + "description" : "Streams Posts matching the stream's active rule set.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream" }, - "/2/tweets/{id}/retweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Retrieve Posts that repost a Post.", - "description": "Returns a variety of information about each Post that has retweeted the Post specified by the requested ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets" - }, - "operationId": "findTweetsThatRetweetATweet", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "A single Post ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsIdRetweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "searchStream", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/FilteredStreamingTweetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/{tweet_id}/hidden": { - "put": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.moderate.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Hide replies", - "description": "Hides or unhides a reply to an owned conversation.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden" - }, - "operationId": "hideReplyById", - "parameters": [ - { - "name": "tweet_id", - "in": "path", - "description": "The ID of the reply that you want to hide or unhide.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetHideRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetHideResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/search/stream/rules" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Rules lookup", + "description" : "Returns rules from a User's active rule set. Users can fetch all of their rules or a subset, specified by the provided rule ids.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules" + }, + "operationId" : "getRules", + "parameters" : [ + { + "name" : "ids", + "in" : "query", + "description" : "A comma-separated list of Rule IDs.", + "required" : false, + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/RuleId" + } + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32", + "default" : 1000 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This value is populated by passing the 'next_token' returned in a request to paginate through results.", + "required" : false, + "schema" : { + "type" : "string", + "minLength" : 16, + "maxLength" : 16 + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RulesLookupResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Add/Delete rules", + "description" : "Add or delete rules from a User's active rule set. Users can provide unique, optionally tagged rules to add. Users can delete their entire rule set or a subset specified by rule ids or values.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/post-tweets-search-stream-rules" }, - "/2/usage/tweets": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Usage" - ], - "summary": "Post Usage", - "description": "Returns the Post Usage.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets" - }, - "operationId": "getUsageTweets", - "parameters": [ - { - "name": "days", - "in": "query", - "description": "The number of days for which you need usage for.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 90, - "format": "int32", - "default": 7 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UsageFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsageTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "addOrDeleteRules", + "parameters" : [ + { + "name" : "dry_run", + "in" : "query", + "description" : "Dry Run can be used with both the add and delete action, with the expected result given, but without actually taking any action in the system (meaning the end state will always be as it was when the request was submitted). This is particularly useful to validate rule changes.", + "required" : false, + "schema" : { + "type" : "boolean" + }, + "style" : "form" + }, + { + "name" : "delete_all", + "in" : "query", + "description" : "Delete All can be used to delete all of the rules associated this client app, it should be specified with no other parameters. Once deleted, rules cannot be recovered.", + "required" : false, + "schema" : { + "type" : "boolean" + }, + "style" : "form" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddOrDeleteRulesRequest" + } } + }, + "required" : true }, - "/2/users": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "User lookup by IDs", - "description": "This endpoint returns information about Users. Specify Users by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users" - }, - "operationId": "findUsersById", - "parameters": [ - { - "name": "ids", - "in": "query", - "description": "A list of User IDs, comma-separated. You can specify up to 100 IDs.", - "required": true, - "example": "2244994945,6253282,12", - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddOrDeleteRulesResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/search/stream/rules/counts" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "General" + ], + "summary" : "Rules Count", + "description" : "Returns the counts of rules from a User's active rule set, to reflect usage by project and application.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules-counts" }, - "/2/users/by": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "User lookup by usernames", - "description": "This endpoint returns information about Users. Specify Users by their username.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by" - }, - "operationId": "findUsersByUsername", - "parameters": [ - { - "name": "usernames", - "in": "query", - "description": "A list of usernames, comma-separated.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "type": "string", - "description": "The X handle (screen name) of this User.", - "pattern": "^[A-Za-z0-9_]{1,15}$" - }, - "example": "TwitterDev,TwitterAPI" - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersByResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getRuleCount", + "parameters" : [ + { + "$ref" : "#/components/parameters/RulesCountFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsSearchStreamRulesCountsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Post delete by Post ID", + "description" : "Delete specified Post (in the path) by ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id" }, - "/2/users/by/username/{username}": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "User lookup by username", - "description": "This endpoint returns information about a User. Specify User by username.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username" - }, - "operationId": "findUserByUsername", - "parameters": [ - { - "name": "username", - "in": "path", - "description": "A username.", - "required": true, - "example": "TwitterDev", - "schema": { - "type": "string", - "pattern": "^[A-Za-z0-9_]{1,15}$" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersByUsernameUsernameResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "deleteTweetById", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Post to be deleted.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetDeleteResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Post lookup by Post ID", + "description" : "Returns a variety of information about the Post specified by the requested ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id" }, - "/2/users/compliance/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Compliance" - ], - "summary": "Users Compliance stream", - "description": "Streams 100% of compliance data for Users", - "operationId": "getUsersComplianceStream", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the User Compliance events will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the User Compliance events will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserComplianceStreamResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "findTweetById", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "A single Post ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsIdResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/tweets/{id}/liking_users" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "like.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Returns User objects that have liked the provided Post ID", + "description" : "Returns a list of Users that have liked the provided Post ID", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-tweets-id-liking_users" }, - "/2/users/me": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "User lookup me", - "description": "This endpoint returns information about the requesting User.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me" - }, - "operationId": "findMyUser", - "parameters": [ - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersMeResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "tweetsIdLikingUsers", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "A single Post ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsIdLikingUsersResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{id}/quote_tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Retrieve Posts that quote a Post.", + "description" : "Returns a variety of information about each Post that quotes the Post specified by the requested ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets" }, - "/2/users/personalized_trends": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Trends" - ], - "summary": "Get personalized Trends", - "description": "Returns Personalized trends for the authenticated user", - "externalDocs": { - "url": "https://developer.x.com/" - }, - "operationId": "personalizedTrends", - "parameters": [ - { - "$ref": "#/components/parameters/PersonalizedTrendFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersPersonalizedTrendsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "findTweetsThatQuoteATweet", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "A single Post ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results to be returned.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 10, + "maximum" : 100, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "exclude", + "in" : "query", + "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required" : false, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "replies", + "retweets" + ] + }, + "example" : [ + "replies", + "retweets" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsIdQuoteTweetsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{id}/retweeted_by" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Returns User objects that have retweeted the provided Post ID", + "description" : "Returns a list of Users that have retweeted the provided Post ID", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweeted_by" }, - "/2/users/reposts_of_me": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "timeline.read", - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Returns repost of user", - "description": "This endpoint returns reposts of the requesting User.", - "operationId": "listOfRepostOfUser", - "parameters": [ - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersRepostsOfMeResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "tweetsIdRetweetingUsers", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "A single Post ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsIdRetweetedByResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/tweets/{id}/retweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Retrieve Posts that repost a Post.", + "description" : "Returns a variety of information about each Post that has retweeted the Post specified by the requested ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets" }, - "/2/users/search": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "User search", - "description": "Returns Users that match a search query.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-search" - }, - "operationId": "searchUserByQuery", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "TThe the query string by which to query for users.", - "required": true, - "example": "someXUser", - "schema": { - "$ref": "#/components/schemas/UserSearchQueryVnext" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersSearchResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "findTweetsThatRetweetATweet", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "A single Post ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsIdRetweetsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{tweet_id}/hidden" : { + "put" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.moderate.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Hide replies", + "description" : "Hides or unhides a reply to an owned conversation.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden" }, - "/2/users/{id}": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "User lookup by ID", - "description": "This endpoint returns information about a User. Specify User by ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id" - }, - "operationId": "findUserById", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "hideReplyById", + "parameters" : [ + { + "name" : "tweet_id", + "in" : "path", + "description" : "The ID of the reply that you want to hide or unhide.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetHideRequest" + } } + } }, - "/2/users/{id}/blocking": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "block.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Returns User objects that are blocked by provided User ID", - "description": "Returns a list of Users that are blocked by the provided User ID", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking" - }, - "operationId": "usersIdBlocking", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdBlockingResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetHideResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/usage/tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Usage" + ], + "summary" : "Post Usage", + "description" : "Returns the Post Usage.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets" }, - "/2/users/{id}/bookmarks": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "bookmark.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Bookmarks" - ], - "summary": "Bookmarks by User", - "description": "Returns Post objects that have been bookmarked by the requesting User", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks" - }, - "operationId": "getUsersIdBookmarks", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdBookmarksResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "bookmark.write", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Bookmarks" - ], - "summary": "Add Post to Bookmarks", - "description": "Adds a Post (ID in the body) to the requesting User's (in the path) bookmarks", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks" - }, - "operationId": "postUsersIdBookmarks", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to add bookmarks.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookmarkAddRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookmarkMutationResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsageTweets", + "parameters" : [ + { + "name" : "days", + "in" : "query", + "description" : "The number of days for which you need usage for.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 90, + "format" : "int32", + "default" : 7 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UsageFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsageTweetsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "User lookup by IDs", + "description" : "This endpoint returns information about Users. Specify Users by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users" }, - "/2/users/{id}/bookmarks/folders": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "bookmark.read", - "users.read" - ] - } - ], - "tags": [ - "Bookmarks" - ], - "summary": "Bookmark folders by User", - "description": "Returns metadata about Bookmark folders that have been created by the requesting User", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "getUsersIdBookmarkFolders", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookmarkFoldersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "findUsersById", + "parameters" : [ + { + "name" : "ids", + "in" : "query", + "description" : "A list of User IDs, comma-separated. You can specify up to 100 IDs.", + "required" : true, + "example" : "2244994945,6253282,12", + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/by" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "User lookup by usernames", + "description" : "This endpoint returns information about Users. Specify Users by their username.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by" }, - "/2/users/{id}/bookmarks/folders/{folder_id}": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "bookmark.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Bookmarks" - ], - "summary": "Bookmark Folder Posts by User and Folder id", - "description": "Returns posts belonging to input bookmarks folder id that have been created by the requesting User", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "getUsersIdBookmarkFolderPosts", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "folder_id", - "in": "path", - "description": "The ID of the Bookmark Folder that the authenticated User is trying to fetch Posts for.", - "required": true, - "schema": { - "$ref": "#/components/schemas/BookmarkFolderId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookmarkFolderPostsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "findUsersByUsername", + "parameters" : [ + { + "name" : "usernames", + "in" : "query", + "description" : "A list of usernames, comma-separated.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "type" : "string", + "description" : "The X handle (screen name) of this User.", + "pattern" : "^[A-Za-z0-9_]{1,15}$" + }, + "example" : "TwitterDev,TwitterAPI" + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersByResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/by/username/{username}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "User lookup by username", + "description" : "This endpoint returns information about a User. Specify User by username.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username" }, - "/2/users/{id}/bookmarks/{tweet_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "bookmark.write", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Bookmarks" - ], - "summary": "Remove a bookmarked Post", - "description": "Removes a Post from the requesting User's bookmarked Posts.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id" - }, - "operationId": "usersIdBookmarksDelete", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User whose bookmark is to be removed.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "tweet_id", - "in": "path", - "description": "The ID of the Post that the source User is removing from bookmarks.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookmarkMutationResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "findUserByUsername", + "parameters" : [ + { + "name" : "username", + "in" : "path", + "description" : "A username.", + "required" : true, + "example" : "TwitterDev", + "schema" : { + "type" : "string", + "pattern" : "^[A-Za-z0-9_]{1,15}$" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersByUsernameUsernameResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/compliance/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Compliance" + ], + "summary" : "Users Compliance stream", + "description" : "Streams 100% of compliance data for Users", + "operationId" : "getUsersComplianceStream", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 4, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the User Compliance events will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the User Compliance events will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UserComplianceStreamResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/users/{id}/dm/block": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Causes DMs to/from the target User (in the path) to be blocked by the authenticated request user", - "description": "Causes DMs to/from the target User (in the path) to be blocked by the authenticated request user", - "externalDocs": { - "url": "https://developer.x.com/" - }, - "operationId": "usersIdDMBlock", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the target User that the authenticated user requesting to block dms for.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersDMBlockCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/users/me" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "User lookup me", + "description" : "This endpoint returns information about the requesting User.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me" + }, + "operationId" : "findMyUser", + "parameters" : [ + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersMeResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/personalized_trends" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Trends" + ], + "summary" : "Get personalized Trends", + "description" : "Returns Personalized trends for the authenticated user", + "externalDocs" : { + "url" : "https://developer.x.com/" }, - "/2/users/{id}/dm/unblock": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Causes DMs to/from the target User (in the path) to be unblocked by the authenticated request user", - "description": "Causes DMs to/from the target User (in the path) to be unblocked by the authenticated request user", - "externalDocs": { - "url": "https://developer.x.com/" - }, - "operationId": "usersIdDMUnBlock", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the target User that the authenticated user requesting to unblock dms for.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersDMUnBlockCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "personalizedTrends", + "parameters" : [ + { + "$ref" : "#/components/parameters/PersonalizedTrendFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersPersonalizedTrendsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/reposts_of_me" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "timeline.read", + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Returns repost of user", + "description" : "This endpoint returns reposts of the requesting User.", + "operationId" : "listOfRepostOfUser", + "parameters" : [ + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersRepostsOfMeResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/search" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "User search", + "description" : "Returns Users that match a search query.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-search" }, - "/2/users/{id}/followed_lists": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Get User's Followed Lists", - "description": "Returns a User's followed Lists.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists" - }, - "operationId": "userFollowedLists", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/ListFieldsParameter" - }, - { - "$ref": "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdFollowedListsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Follow a List", - "description": "Causes a User to follow a List.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/post-users-id-followed-lists" - }, - "operationId": "listUserFollow", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that will follow the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListFollowedRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListFollowedResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "searchUserByQuery", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "TThe the query string by which to query for users.", + "required" : true, + "example" : "someXUser", + "schema" : { + "$ref" : "#/components/schemas/UserSearchQueryVnext" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersSearchResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "User lookup by ID", + "description" : "This endpoint returns information about a User. Specify User by ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id" }, - "/2/users/{id}/followed_lists/{list_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Unfollow a List", - "description": "Causes a User to unfollow a List.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/delete-users-id-followed-lists-list_id" - }, - "operationId": "listUserUnfollow", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that will unfollow the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "list_id", - "in": "path", - "description": "The ID of the List to unfollow.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListFollowedResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "findUserById", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/blocking" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "block.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Returns User objects that are blocked by provided User ID", + "description" : "Returns a list of Users that are blocked by the provided User ID", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking" }, - "/2/users/{id}/followers": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "follows.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Followers by User ID", - "description": "Returns a list of Users who are followers of the specified User ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" - }, - "operationId": "usersIdFollowers", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdFollowersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "usersIdBlocking", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdBlockingResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/bookmarks" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "bookmark.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Bookmarks" + ], + "summary" : "Bookmarks by User", + "description" : "Returns Post objects that have been bookmarked by the requesting User", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks" }, - "/2/users/{id}/following": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "follows.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Following by User ID", - "description": "Returns a list of Users that are being followed by the provided User ID", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following" - }, - "operationId": "usersIdFollowing", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdFollowingResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "follows.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Follow User", - "description": "Causes the User(in the path) to follow, or “request to follow” for protected Users, the target User. The User(in the path) must match the User context authorizing the request", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following" - }, - "operationId": "usersIdFollow", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to follow the target User.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersFollowingCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersFollowingCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersIdBookmarks", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdBookmarksResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "bookmark.write", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Bookmarks" + ], + "summary" : "Add Post to Bookmarks", + "description" : "Adds a Post (ID in the body) to the requesting User's (in the path) bookmarks", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks" }, - "/2/users/{id}/liked_tweets": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "like.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Returns Post objects liked by the provided User ID", - "description": "Returns a list of Posts liked by the provided User ID", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets" - }, - "operationId": "usersIdLikedTweets", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 5, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdLikedTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "postUsersIdBookmarks", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to add bookmarks.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BookmarkAddRequest" + } } + }, + "required" : true }, - "/2/users/{id}/likes": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "like.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Causes the User (in the path) to like the specified Post", - "description": "Causes the User (in the path) to like the specified Post. The User in the path must match the User context authorizing the request.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-id-likes" - }, - "operationId": "usersIdLike", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to like the Post.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersLikesCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersLikesCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BookmarkMutationResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/bookmarks/folders" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "bookmark.read", + "users.read" + ] + } + ], + "tags" : [ + "Bookmarks" + ], + "summary" : "Bookmark folders by User", + "description" : "Returns metadata about Bookmark folders that have been created by the requesting User", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/users/{id}/likes/{tweet_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "like.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Causes the User (in the path) to unlike the specified Post", - "description": "Causes the User (in the path) to unlike the specified Post. The User must match the User context authorizing the request", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id" - }, - "operationId": "usersIdUnlike", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to unlike the Post.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "tweet_id", - "in": "path", - "description": "The ID of the Post that the User is requesting to unlike.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersLikesDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersIdBookmarkFolders", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BookmarkFoldersResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/bookmarks/folders/{folder_id}" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "bookmark.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Bookmarks" + ], + "summary" : "Bookmark Folder Posts by User and Folder id", + "description" : "Returns posts belonging to input bookmarks folder id that have been created by the requesting User", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/users/{id}/list_memberships": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Get a User's List Memberships", - "description": "Get a User's List Memberships.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" - }, - "operationId": "getUserListMemberships", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/ListFieldsParameter" - }, - { - "$ref": "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdListMembershipsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersIdBookmarkFolderPosts", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "folder_id", + "in" : "path", + "description" : "The ID of the Bookmark Folder that the authenticated User is trying to fetch Posts for.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/BookmarkFolderId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BookmarkFolderPostsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/bookmarks/{tweet_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "bookmark.write", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Bookmarks" + ], + "summary" : "Remove a bookmarked Post", + "description" : "Removes a Post from the requesting User's bookmarked Posts.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id" }, - "/2/users/{id}/mentions": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "User mention timeline by User ID", - "description": "Returns Post objects that mention username associated to the provided User ID", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions" - }, - "operationId": "usersIdMentions", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "since_id", - "in": "query", - "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required": false, - "example": "1346889436626259968", - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 5, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdMentionsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "usersIdBookmarksDelete", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User whose bookmark is to be removed.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "tweet_id", + "in" : "path", + "description" : "The ID of the Post that the source User is removing from bookmarks.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BookmarkMutationResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/dm/block" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Causes DMs to/from the target User (in the path) to be blocked by the authenticated request user", + "description" : "Causes DMs to/from the target User (in the path) to be blocked by the authenticated request user", + "externalDocs" : { + "url" : "https://developer.x.com/" }, - "/2/users/{id}/muting": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "mute.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Returns User objects that are muted by the provided User ID", - "description": "Returns a list of Users that are muted by the provided User ID", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting" - }, - "operationId": "usersIdMuting", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdMutingResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "mute.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Mute User by User ID.", - "description": "Causes the User (in the path) to mute the target User. The User (in the path) must match the User context authorizing the request.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting" - }, - "operationId": "usersIdMute", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to mute the target User.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MuteUserRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MuteUserMutationResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "usersIdDMBlock", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the target User that the authenticated user requesting to block dms for.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersDMBlockCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/dm/unblock" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Causes DMs to/from the target User (in the path) to be unblocked by the authenticated request user", + "description" : "Causes DMs to/from the target User (in the path) to be unblocked by the authenticated request user", + "externalDocs" : { + "url" : "https://developer.x.com/" }, - "/2/users/{id}/owned_lists": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Get a User's Owned Lists.", - "description": "Get a User's Owned Lists.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists" - }, - "operationId": "listUserOwnedLists", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/ListFieldsParameter" - }, - { - "$ref": "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdOwnedListsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "usersIdDMUnBlock", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the target User that the authenticated user requesting to unblock dms for.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersDMUnBlockCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/followed_lists" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Get User's Followed Lists", + "description" : "Returns a User's followed Lists.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists" }, - "/2/users/{id}/pinned_lists": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Get a User's Pinned Lists", - "description": "Get a User's Pinned Lists.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/get-users-id-pinned_lists" - }, - "operationId": "listUserPinnedLists", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/ListFieldsParameter" - }, - { - "$ref": "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdPinnedListsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Pin a List", - "description": "Causes a User to pin a List.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/post-users-id-pinned-lists" - }, - "operationId": "listUserPin", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that will pin the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPinnedRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPinnedResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "userFollowedLists", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/ListFieldsParameter" + }, + { + "$ref" : "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdFollowedListsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Follow a List", + "description" : "Causes a User to follow a List.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/post-users-id-followed-lists" }, - "/2/users/{id}/pinned_lists/{list_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Unpin a List", - "description": "Causes a User to remove a pinned List.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/delete-users-id-pinned-lists-list_id" - }, - "operationId": "listUserUnpin", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "list_id", - "in": "path", - "description": "The ID of the List to unpin.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListUnpinResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "listUserFollow", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that will follow the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListFollowedRequest" + } } + } }, - "/2/users/{id}/retweets": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Causes the User (in the path) to repost the specified Post.", - "description": "Causes the User (in the path) to repost the specified Post. The User in the path must match the User context authorizing the request.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets" - }, - "operationId": "usersIdRetweets", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to repost the Post.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersRetweetsCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersRetweetsCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListFollowedResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/followed_lists/{list_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Unfollow a List", + "description" : "Causes a User to unfollow a List.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/delete-users-id-followed-lists-list_id" }, - "/2/users/{id}/retweets/{source_tweet_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Causes the User (in the path) to unretweet the specified Post", - "description": "Causes the User (in the path) to unretweet the specified Post. The User must match the User context authorizing the request", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id" - }, - "operationId": "usersIdUnretweets", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to repost the Post.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "source_tweet_id", - "in": "path", - "description": "The ID of the Post that the User is requesting to unretweet.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersRetweetsDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "listUserUnfollow", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that will unfollow the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "list_id", + "in" : "path", + "description" : "The ID of the List to unfollow.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListFollowedResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/followers" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "follows.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Followers by User ID", + "description" : "Returns a list of Users who are followers of the specified User ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" }, - "/2/users/{id}/timelines/reverse_chronological": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "User home timeline by User ID", - "description": "Returns Post objects that appears in the provided User ID's home timeline", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological" - }, - "operationId": "usersIdTimeline", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User to list Reverse Chronological Timeline Posts of.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "since_id", - "in": "query", - "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required": false, - "example": "791775337160081409", - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required": false, - "example": "1346889436626259968", - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "exclude", - "in": "query", - "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required": false, - "schema": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "replies", - "retweets" - ] - }, - "example": [ - "replies", - "retweets" - ] - }, - "explode": false, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdTimelinesReverseChronologicalResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "usersIdFollowers", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdFollowersResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/following" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "follows.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Following by User ID", + "description" : "Returns a list of Users that are being followed by the provided User ID", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following" }, - "/2/users/{id}/tweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "User Posts timeline by User ID", - "description": "Returns a list of Posts authored by the provided User ID", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets" - }, - "operationId": "usersIdTweets", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "since_id", - "in": "query", - "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required": false, - "example": "791775337160081409", - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required": false, - "example": "1346889436626259968", - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 5, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "exclude", - "in": "query", - "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required": false, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "replies", - "retweets" - ] - }, - "example": [ - "replies", - "retweets" - ] - }, - "explode": false, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "usersIdFollowing", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdFollowingResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "follows.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Follow User", + "description" : "Causes the User(in the path) to follow, or “request to follow” for protected Users, the target User. The User(in the path) must match the User context authorizing the request", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following" }, - "/2/users/{source_user_id}/following/{target_user_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "follows.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Unfollow User", - "description": "Causes the source User to unfollow the target User. The source User must match the User context authorizing the request", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following" - }, - "operationId": "usersIdUnfollow", - "parameters": [ - { - "name": "source_user_id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to unfollow the target User.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "target_user_id", - "in": "path", - "description": "The ID of the User that the source User is requesting to unfollow.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersFollowingDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "usersIdFollow", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to follow the target User.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersFollowingCreateRequest" + } } + } }, - "/2/users/{source_user_id}/muting/{target_user_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "mute.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Unmute User by User ID", - "description": "Causes the source User to unmute the target User. The source User must match the User context authorizing the request", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting" - }, - "operationId": "usersIdUnmute", - "parameters": [ - { - "name": "source_user_id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to unmute the target User.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "target_user_id", - "in": "path", - "description": "The ID of the User that the source User is requesting to unmute.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MuteUserMutationResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersFollowingCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/liked_tweets" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "like.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Returns Post objects liked by the provided User ID", + "description" : "Returns a list of Posts liked by the provided User ID", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets" }, - "/2/webhooks": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Webhooks" - ], - "summary": "Get a list of webhook configs associated with a client app", - "description": "Get a list of webhook configs associated with a client app.", - "externalDocs": { - "url": "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId": "getWebhooksConfig", - "parameters": [ - { - "$ref": "#/components/parameters/WebhookConfigFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2WebhooksResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "BearerToken": [] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Webhooks" - ], - "summary": "Create Webhook Config", - "description": "Creates a new webhook config.", - "externalDocs": { - "url": "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId": "createWebhooksConfig", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfigCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfigCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "usersIdLikedTweets", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 5, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdLikedTweetsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/likes" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "like.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Causes the User (in the path) to like the specified Post", + "description" : "Causes the User (in the path) to like the specified Post. The User in the path must match the User context authorizing the request.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-id-likes" }, - "/2/webhooks/{webhook_id}": { - "delete": { - "security": [ - { - "BearerToken": [] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Webhooks" - ], - "summary": "Delete Webhook Config", - "description": "Deletes a webhook config.", - "externalDocs": { - "url": "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId": "deleteWebhooksConfig", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The ID of the webhook to delete.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfigDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "put": { - "security": [ - { - "BearerToken": [] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Webhooks" - ], - "summary": "Webhook CRC Check", - "description": "Manually trigger a CRC check for a webhook.", - "externalDocs": { - "url": "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId": "putWebhooksConfig", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The ID of the webhook to check.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfigPutResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "usersIdLike", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to like the Post.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersLikesCreateRequest" + } } + } + }, + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersLikesCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } } + } }, - "servers": [ - { - "description": "Twitter API", - "url": "https://api.twitter.com" - } - ], - "tags": [ - { - "name": "Bookmarks", - "description": "Endpoints related to retrieving, managing bookmarks of a user", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/bookmarks" + "/2/users/{id}/likes/{tweet_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "like.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Causes the User (in the path) to unlike the specified Post", + "description" : "Causes the User (in the path) to unlike the specified Post. The User must match the User context authorizing the request", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id" + }, + "operationId" : "usersIdUnlike", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to unlike the Post.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "tweet_id", + "in" : "path", + "description" : "The ID of the Post that the User is requesting to unlike.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersLikesDeleteResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/list_memberships" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Get a User's List Memberships", + "description" : "Get a User's List Memberships.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" }, - { - "name": "Compliance", - "description": "Endpoints related to keeping X data in your systems compliant", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-tweet/introduction" + "operationId" : "getUserListMemberships", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/ListFieldsParameter" + }, + { + "$ref" : "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdListMembershipsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/mentions" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "User mention timeline by User ID", + "description" : "Returns Post objects that mention username associated to the provided User ID", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions" }, - { - "name": "Direct Messages", - "description": "Endpoints related to retrieving, managing Direct Messages", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/direct-messages" + "operationId" : "usersIdMentions", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required" : false, + "example" : "1346889436626259968", + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 5, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdMentionsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/muting" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "mute.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Returns User objects that are muted by the provided User ID", + "description" : "Returns a list of Users that are muted by the provided User ID", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting" }, - { - "name": "General", - "description": "Miscellaneous endpoints for general API functionality", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api" + "operationId" : "usersIdMuting", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdMutingResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "mute.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Mute User by User ID.", + "description" : "Causes the User (in the path) to mute the target User. The User (in the path) must match the User context authorizing the request.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting" }, - { - "name": "Lists", - "description": "Endpoints related to retrieving, managing Lists", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/lists" + "operationId" : "usersIdMute", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to mute the target User.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MuteUserRequest" + } } + } }, - { - "name": "Media", - "description": "Endpoints related to Media", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.x.com" + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MuteUserMutationResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/owned_lists" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Get a User's Owned Lists.", + "description" : "Get a User's Owned Lists.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists" }, - { - "name": "MediaUpload", - "description": "Endpoints related to uploading Media", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.x.com" + "operationId" : "listUserOwnedLists", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/ListFieldsParameter" + }, + { + "$ref" : "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdOwnedListsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/pinned_lists" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Get a User's Pinned Lists", + "description" : "Get a User's Pinned Lists.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/get-users-id-pinned_lists" }, - { - "name": "Spaces", - "description": "Endpoints related to retrieving, managing Spaces", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces" + "operationId" : "listUserPinnedLists", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/ListFieldsParameter" + }, + { + "$ref" : "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdPinnedListsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Pin a List", + "description" : "Causes a User to pin a List.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/post-users-id-pinned-lists" }, - { - "name": "Tweets", - "description": "Endpoints related to retrieving, searching, and modifying Tweets", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup" + "operationId" : "listUserPin", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that will pin the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPinnedRequest" + } } + }, + "required" : true }, - { - "name": "Users", - "description": "Endpoints related to retrieving, managing relationships of Users", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup" - } - } - ], - "components": { - "securitySchemes": { - "BearerToken": { - "type": "http", - "scheme": "bearer" - }, - "OAuth2UserToken": { - "type": "oauth2", - "flows": { - "authorizationCode": { - "authorizationUrl": "https://api.twitter.com/2/oauth2/authorize", - "tokenUrl": "https://api.twitter.com/2/oauth2/token", - "scopes": { - "block.read": "Accounts you’ve blocked.", - "bookmark.read": "Allows an app to read bookmarked Tweets", - "bookmark.write": "Allows an app to create and delete bookmarks", - "dm.read": "All your Direct Messages", - "dm.write": "Send and manage Direct Messages for you", - "follows.read": "People who follow you and people who you follow.", - "follows.write": "Follow and unfollow people for you.", - "like.read": "Tweets you’ve liked and likes you can view.", - "like.write": "Like and un-like Tweets for you.", - "list.read": "Lists, list members, and list followers of lists you’ve created or are a member of, including private lists.", - "list.write": "Create and manage Lists for you.", - "media.write": "Upload media like photos and videos for you.", - "mute.read": "Accounts you’ve muted.", - "mute.write": "Mute and unmute accounts for you.", - "offline.access": "App can request refresh token.", - "space.read": "Access all of the Spaces you can see.", - "timeline.read": "All the Custom Timelines you can see, including public Custom Timelines from other developers.", - "tweet.moderate.write": "Hide and unhide replies to your Tweets.", - "tweet.read": "All the Tweets you can see, including Tweets from protected accounts.", - "tweet.write": "Tweet and retweet for you.", - "users.read": "Any account you can see, including protected accounts. Any account you can see, including protected accounts." - } - } - } - }, - "UserToken": { - "type": "http", - "scheme": "OAuth" + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPinnedResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/pinned_lists/{list_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Unpin a List", + "description" : "Causes a User to remove a pinned List.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/delete-users-id-pinned-lists-list_id" }, - "schemas": { - "AddOrDeleteRulesRequest": { - "oneOf": [ - { - "$ref": "#/components/schemas/AddRulesRequest" - }, - { - "$ref": "#/components/schemas/DeleteRulesRequest" - } - ] - }, - "AddOrDeleteRulesResponse": { - "type": "object", - "description": "A response from modifying user-specified stream filtering rules.", - "required": [ - "meta" - ], - "properties": { - "data": { - "type": "array", - "description": "All user-specified stream filtering rules that were created.", - "items": { - "$ref": "#/components/schemas/Rule" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "$ref": "#/components/schemas/RulesResponseMetadata" - } - } - }, - "AddRulesRequest": { - "type": "object", - "description": "A request to add a user-specified stream filtering rule.", - "required": [ - "add" - ], - "properties": { - "add": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RuleNoId" - } - } - } - }, - "Aggregate": { - "type": "integer", - "description": "The sum of results returned in this response.", - "format": "int32" - }, - "AllProjectClientApps": { - "type": "array", - "description": "Client App Rule Counts for all applications in the project", - "items": { - "$ref": "#/components/schemas/AppRulesCount" - } - }, - "AllowDownloadStatus": { - "type": "object", - "properties": { - "allow_download": { - "type": "boolean", - "example": true - } - } - }, - "AltText": { - "type": "object", - "properties": { - "text": { - "type": "string", - "description": "Description of media ( <= 1000 characters )", - "maxLength": 1000, - "example": "A dancing cat" - } - } - }, - "Analytics": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "timestamped_metrics": { - "type": "array", - "title": "Timestamped Metrics", - "description": "Array containing metrics data along with the timestamps of their recording.", - "items": { - "$ref": "#/components/schemas/TimestampedMetrics" - } - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "AnimatedGif": { - "allOf": [ - { - "$ref": "#/components/schemas/Media" - }, - { - "type": "object", - "properties": { - "preview_image_url": { - "type": "string", - "format": "uri" - }, - "variants": { - "$ref": "#/components/schemas/Variants" - } - } - } - ] - }, - "AppRulesCount": { - "type": "object", - "description": "A count of user-provided stream filtering rules at the client application level.", - "properties": { - "client_app_id": { - "$ref": "#/components/schemas/ClientAppId" - }, - "rule_count": { - "type": "integer", - "description": "Number of rules for client application", - "format": "int32" - } - } - }, - "AudiencePolicy": { - "type": "object", - "properties": { - "creator_subscriptions": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "Any" - ] - } - }, - "x_subscriptions": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "Any" - ] - } - } - } - }, - "BookmarkAddRequest": { - "type": "object", - "required": [ - "tweet_id" - ], - "properties": { - "tweet_id": { - "$ref": "#/components/schemas/TweetId" - } - } - }, - "BookmarkFolderId": { - "type": "string", - "description": "The unique identifier of this Bookmark folder.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "BookmarkFolderPostsResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - } - }, - "BookmarkFoldersResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/BookmarkFolderId" - }, - "name": { - "type": "string" - } - } - } - } - }, - "BookmarkMutationResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "bookmarked": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "CashtagEntity": { - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref": "#/components/schemas/CashtagFields" - } - ] - }, - "CashtagFields": { - "type": "object", - "description": "Represent the portion of text recognized as a Cashtag, and its start and end position within the text.", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "example": "TWTR" - } - } - }, - "ClientAppId": { - "type": "string", - "description": "The ID of the client application", - "minLength": 1, - "maxLength": 19 - }, - "ClientAppUsage": { - "type": "object", - "description": "Usage per client app", - "properties": { - "client_app_id": { - "type": "string", - "description": "The unique identifier for this project", - "format": "^[0-9]{1,19}$" - }, - "usage": { - "type": "array", - "description": "The usage value", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UsageFields" - } - }, - "usage_result_count": { - "type": "integer", - "description": "The number of results returned", - "format": "int32" - } - } - }, - "ClientDisconnectedProblem": { - "description": "Your client has gone away.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } + "operationId" : "listUserUnpin", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "list_id", + "in" : "path", + "description" : "The ID of the List to unpin.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListUnpinResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/retweets" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Causes the User (in the path) to repost the specified Post.", + "description" : "Causes the User (in the path) to repost the specified Post. The User in the path must match the User context authorizing the request.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets" + }, + "operationId" : "usersIdRetweets", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to repost the Post.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersRetweetsCreateRequest" + } + } + } + }, + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersRetweetsCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/retweets/{source_tweet_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Causes the User (in the path) to unretweet the specified Post", + "description" : "Causes the User (in the path) to unretweet the specified Post. The User must match the User context authorizing the request", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id" + }, + "operationId" : "usersIdUnretweets", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to repost the Post.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "source_tweet_id", + "in" : "path", + "description" : "The ID of the Post that the User is requesting to unretweet.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersRetweetsDeleteResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/timelines/reverse_chronological" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "User home timeline by User ID", + "description" : "Returns Post objects that appears in the provided User ID's home timeline", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological" + }, + "operationId" : "usersIdTimeline", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User to list Reverse Chronological Timeline Posts of.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required" : false, + "example" : "791775337160081409", + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required" : false, + "example" : "1346889436626259968", + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "exclude", + "in" : "query", + "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required" : false, + "schema" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "replies", + "retweets" ] - }, - "ClientForbiddenProblem": { - "description": "A problem that indicates your client is forbidden from making this request.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "reason": { - "type": "string", - "enum": [ - "official-client-forbidden", - "client-not-enrolled" - ] - }, - "registration_url": { - "type": "string", - "format": "uri" - } - } - } + }, + "example" : [ + "replies", + "retweets" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdTimelinesReverseChronologicalResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "User Posts timeline by User ID", + "description" : "Returns a list of Posts authored by the provided User ID", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets" + }, + "operationId" : "usersIdTweets", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required" : false, + "example" : "791775337160081409", + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required" : false, + "example" : "1346889436626259968", + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 5, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "exclude", + "in" : "query", + "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required" : false, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "replies", + "retweets" ] - }, - "Community": { - "type": "object", - "description": "A X Community is a curated group of Posts.", - "required": [ - "id", - "name" - ], - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "$ref": "#/components/schemas/CommunityId" - }, - "name": { - "type": "string", - "description": "The name of this Community." - } - } - }, - "CommunityId": { - "type": "string", - "description": "The unique identifier of this Community.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "ComplianceJob": { - "type": "object", - "required": [ - "id", - "type", - "created_at", - "upload_url", - "download_url", - "upload_expires_at", - "download_expires_at", - "status" - ], - "properties": { - "created_at": { - "$ref": "#/components/schemas/CreatedAt" - }, - "download_expires_at": { - "$ref": "#/components/schemas/DownloadExpiration" - }, - "download_url": { - "$ref": "#/components/schemas/DownloadUrl" - }, - "id": { - "$ref": "#/components/schemas/JobId" - }, - "name": { - "$ref": "#/components/schemas/ComplianceJobName" - }, - "status": { - "$ref": "#/components/schemas/ComplianceJobStatus" - }, - "type": { - "$ref": "#/components/schemas/ComplianceJobType" - }, - "upload_expires_at": { - "$ref": "#/components/schemas/UploadExpiration" - }, - "upload_url": { - "$ref": "#/components/schemas/UploadUrl" - } - } - }, - "ComplianceJobName": { - "type": "string", - "description": "User-provided name for a compliance job.", - "maxLength": 64, - "example": "my-job" - }, - "ComplianceJobStatus": { - "type": "string", - "description": "Status of a compliance job.", - "enum": [ - "created", - "in_progress", - "failed", - "complete", - "expired" + }, + "example" : [ + "replies", + "retweets" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdTweetsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{source_user_id}/following/{target_user_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "follows.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Unfollow User", + "description" : "Causes the source User to unfollow the target User. The source User must match the User context authorizing the request", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following" + }, + "operationId" : "usersIdUnfollow", + "parameters" : [ + { + "name" : "source_user_id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to unfollow the target User.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "target_user_id", + "in" : "path", + "description" : "The ID of the User that the source User is requesting to unfollow.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersFollowingDeleteResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{source_user_id}/muting/{target_user_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "mute.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Unmute User by User ID", + "description" : "Causes the source User to unmute the target User. The source User must match the User context authorizing the request", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting" + }, + "operationId" : "usersIdUnmute", + "parameters" : [ + { + "name" : "source_user_id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to unmute the target User.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "target_user_id", + "in" : "path", + "description" : "The ID of the User that the source User is requesting to unmute.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MuteUserMutationResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/webhooks" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Webhooks" + ], + "summary" : "Get a list of webhook configs associated with a client app", + "description" : "Get a list of webhook configs associated with a client app.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId" : "getWebhooksConfig", + "parameters" : [ + { + "$ref" : "#/components/parameters/WebhookConfigFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2WebhooksResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "post" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Webhooks" + ], + "summary" : "Create Webhook Config", + "description" : "Creates a new webhook config.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId" : "createWebhooksConfig", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigCreateRequest" + } + } + } + }, + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/webhooks/{webhook_id}" : { + "delete" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Webhooks" + ], + "summary" : "Delete Webhook Config", + "description" : "Deletes a webhook config.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId" : "deleteWebhooksConfig", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The ID of the webhook to delete.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigDeleteResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "put" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Webhooks" + ], + "summary" : "Webhook CRC Check", + "description" : "Manually trigger a CRC check for a webhook.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId" : "putWebhooksConfig", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The ID of the webhook to check.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigPutResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + } + }, + "servers" : [ + { + "description" : "Twitter API", + "url" : "https://api.twitter.com" + } + ], + "tags" : [ + { + "name" : "Bookmarks", + "description" : "Endpoints related to retrieving, managing bookmarks of a user", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/bookmarks" + } + }, + { + "name" : "Compliance", + "description" : "Endpoints related to keeping X data in your systems compliant", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-tweet/introduction" + } + }, + { + "name" : "Direct Messages", + "description" : "Endpoints related to retrieving, managing Direct Messages", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/direct-messages" + } + }, + { + "name" : "General", + "description" : "Miscellaneous endpoints for general API functionality", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api" + } + }, + { + "name" : "Lists", + "description" : "Endpoints related to retrieving, managing Lists", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists" + } + }, + { + "name" : "Media", + "description" : "Endpoints related to Media", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.x.com" + } + }, + { + "name" : "MediaUpload", + "description" : "Endpoints related to uploading Media", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.x.com" + } + }, + { + "name" : "Spaces", + "description" : "Endpoints related to retrieving, managing Spaces", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces" + } + }, + { + "name" : "Tweets", + "description" : "Endpoints related to retrieving, searching, and modifying Tweets", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup" + } + }, + { + "name" : "Users", + "description" : "Endpoints related to retrieving, managing relationships of Users", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup" + } + } + ], + "components" : { + "securitySchemes" : { + "BearerToken" : { + "type" : "http", + "scheme" : "bearer" + }, + "OAuth2UserToken" : { + "type" : "oauth2", + "flows" : { + "authorizationCode" : { + "authorizationUrl" : "https://api.twitter.com/2/oauth2/authorize", + "tokenUrl" : "https://api.twitter.com/2/oauth2/token", + "scopes" : { + "block.read" : "Accounts you’ve blocked.", + "bookmark.read" : "Allows an app to read bookmarked Tweets", + "bookmark.write" : "Allows an app to create and delete bookmarks", + "dm.read" : "All your Direct Messages", + "dm.write" : "Send and manage Direct Messages for you", + "follows.read" : "People who follow you and people who you follow.", + "follows.write" : "Follow and unfollow people for you.", + "like.read" : "Tweets you’ve liked and likes you can view.", + "like.write" : "Like and un-like Tweets for you.", + "list.read" : "Lists, list members, and list followers of lists you’ve created or are a member of, including private lists.", + "list.write" : "Create and manage Lists for you.", + "media.write" : "Upload media like photos and videos for you.", + "mute.read" : "Accounts you’ve muted.", + "mute.write" : "Mute and unmute accounts for you.", + "offline.access" : "App can request refresh token.", + "space.read" : "Access all of the Spaces you can see.", + "timeline.read" : "All the Custom Timelines you can see, including public Custom Timelines from other developers.", + "tweet.moderate.write" : "Hide and unhide replies to your Tweets.", + "tweet.read" : "All the Tweets you can see, including Tweets from protected accounts.", + "tweet.write" : "Tweet and retweet for you.", + "users.read" : "Any account you can see, including protected accounts. Any account you can see, including protected accounts." + } + } + } + }, + "UserToken" : { + "type" : "http", + "scheme" : "OAuth" + } + }, + "schemas" : { + "AddOrDeleteRulesRequest" : { + "oneOf" : [ + { + "$ref" : "#/components/schemas/AddRulesRequest" + }, + { + "$ref" : "#/components/schemas/DeleteRulesRequest" + } + ] + }, + "AddOrDeleteRulesResponse" : { + "type" : "object", + "description" : "A response from modifying user-specified stream filtering rules.", + "required" : [ + "meta" + ], + "properties" : { + "data" : { + "type" : "array", + "description" : "All user-specified stream filtering rules that were created.", + "items" : { + "$ref" : "#/components/schemas/Rule" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "$ref" : "#/components/schemas/RulesResponseMetadata" + } + } + }, + "AddRulesRequest" : { + "type" : "object", + "description" : "A request to add a user-specified stream filtering rule.", + "required" : [ + "add" + ], + "properties" : { + "add" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/RuleNoId" + } + } + } + }, + "Aggregate" : { + "type" : "integer", + "description" : "The sum of results returned in this response.", + "format" : "int32" + }, + "AllProjectClientApps" : { + "type" : "array", + "description" : "Client App Rule Counts for all applications in the project", + "items" : { + "$ref" : "#/components/schemas/AppRulesCount" + } + }, + "AllowDownloadStatus" : { + "type" : "object", + "properties" : { + "allow_download" : { + "type" : "boolean", + "example" : true + } + } + }, + "AltText" : { + "type" : "object", + "properties" : { + "text" : { + "type" : "string", + "description" : "Description of media ( <= 1000 characters )", + "maxLength" : 1000, + "example" : "A dancing cat" + } + } + }, + "Analytics" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "timestamped_metrics" : { + "type" : "array", + "title" : "Timestamped Metrics", + "description" : "Array containing metrics data along with the timestamps of their recording.", + "items" : { + "$ref" : "#/components/schemas/TimestampedMetrics" + } + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "AnimatedGif" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/Media" + }, + { + "type" : "object", + "properties" : { + "preview_image_url" : { + "type" : "string", + "format" : "uri" + }, + "variants" : { + "$ref" : "#/components/schemas/Variants" + } + } + } + ] + }, + "AppRulesCount" : { + "type" : "object", + "description" : "A count of user-provided stream filtering rules at the client application level.", + "properties" : { + "client_app_id" : { + "$ref" : "#/components/schemas/ClientAppId" + }, + "rule_count" : { + "type" : "integer", + "description" : "Number of rules for client application", + "format" : "int32" + } + } + }, + "AudiencePolicy" : { + "type" : "object", + "properties" : { + "creator_subscriptions" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ + "Any" + ] + } + }, + "x_subscriptions" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ + "Any" + ] + } + } + } + }, + "BookmarkAddRequest" : { + "type" : "object", + "required" : [ + "tweet_id" + ], + "properties" : { + "tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + }, + "BookmarkFolderId" : { + "type" : "string", + "description" : "The unique identifier of this Bookmark folder.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "BookmarkFolderPostsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + } + } + }, + "BookmarkFoldersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/BookmarkFolderId" + }, + "name" : { + "type" : "string" + } + } + } + } + }, + "BookmarkMutationResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "bookmarked" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "CashtagEntity" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref" : "#/components/schemas/CashtagFields" + } + ] + }, + "CashtagFields" : { + "type" : "object", + "description" : "Represent the portion of text recognized as a Cashtag, and its start and end position within the text.", + "required" : [ + "tag" + ], + "properties" : { + "tag" : { + "type" : "string", + "example" : "TWTR" + } + } + }, + "ClientAppId" : { + "type" : "string", + "description" : "The ID of the client application", + "minLength" : 1, + "maxLength" : 19 + }, + "ClientAppUsage" : { + "type" : "object", + "description" : "Usage per client app", + "properties" : { + "client_app_id" : { + "type" : "string", + "description" : "The unique identifier for this project", + "format" : "^[0-9]{1,19}$" + }, + "usage" : { + "type" : "array", + "description" : "The usage value", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UsageFields" + } + }, + "usage_result_count" : { + "type" : "integer", + "description" : "The number of results returned", + "format" : "int32" + } + } + }, + "ClientDisconnectedProblem" : { + "description" : "Your client has gone away.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "ClientForbiddenProblem" : { + "description" : "A problem that indicates your client is forbidden from making this request.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "reason" : { + "type" : "string", + "enum" : [ + "official-client-forbidden", + "client-not-enrolled" ] - }, - "ComplianceJobType": { - "type": "string", - "description": "Type of compliance job to list.", - "enum": [ - "tweets", - "users" + }, + "registration_url" : { + "type" : "string", + "format" : "uri" + } + } + } + ] + }, + "Community" : { + "type" : "object", + "description" : "A X Community is a curated group of Posts.", + "required" : [ + "id", + "name" + ], + "properties" : { + "created_at" : { + "type" : "string", + "format" : "date-time" + }, + "id" : { + "$ref" : "#/components/schemas/CommunityId" + }, + "name" : { + "type" : "string", + "description" : "The name of this Community." + } + } + }, + "CommunityId" : { + "type" : "string", + "description" : "The unique identifier of this Community.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "ComplianceJob" : { + "type" : "object", + "required" : [ + "id", + "type", + "created_at", + "upload_url", + "download_url", + "upload_expires_at", + "download_expires_at", + "status" + ], + "properties" : { + "created_at" : { + "$ref" : "#/components/schemas/CreatedAt" + }, + "download_expires_at" : { + "$ref" : "#/components/schemas/DownloadExpiration" + }, + "download_url" : { + "$ref" : "#/components/schemas/DownloadUrl" + }, + "id" : { + "$ref" : "#/components/schemas/JobId" + }, + "name" : { + "$ref" : "#/components/schemas/ComplianceJobName" + }, + "status" : { + "$ref" : "#/components/schemas/ComplianceJobStatus" + }, + "type" : { + "$ref" : "#/components/schemas/ComplianceJobType" + }, + "upload_expires_at" : { + "$ref" : "#/components/schemas/UploadExpiration" + }, + "upload_url" : { + "$ref" : "#/components/schemas/UploadUrl" + } + } + }, + "ComplianceJobName" : { + "type" : "string", + "description" : "User-provided name for a compliance job.", + "maxLength" : 64, + "example" : "my-job" + }, + "ComplianceJobStatus" : { + "type" : "string", + "description" : "Status of a compliance job.", + "enum" : [ + "created", + "in_progress", + "failed", + "complete", + "expired" + ] + }, + "ComplianceJobType" : { + "type" : "string", + "description" : "Type of compliance job to list.", + "enum" : [ + "tweets", + "users" + ] + }, + "ConflictProblem" : { + "description" : "You cannot create a new job if one is already in progress.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "ConnectionExceptionProblem" : { + "description" : "A problem that indicates something is wrong with the connection.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "connection_issue" : { + "type" : "string", + "enum" : [ + "TooManyConnections", + "ProvisioningSubscription", + "RuleConfigurationIssue", + "RulesInvalidIssue" ] - }, - "ConflictProblem": { - "description": "You cannot create a new job if one is already in progress.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } + } + } + } + ] + }, + "ContentExpiration" : { + "type" : "object", + "properties" : { + "timestamp_sec" : { + "type" : "number", + "description" : "Expiration time for content as a Unix timestamp in seconds", + "format" : "long", + "example" : 1740787200 + } + } + }, + "ContextAnnotation" : { + "type" : "object", + "description" : "Annotation inferred from the Tweet text.", + "required" : [ + "domain", + "entity" + ], + "properties" : { + "domain" : { + "$ref" : "#/components/schemas/ContextAnnotationDomainFields" + }, + "entity" : { + "$ref" : "#/components/schemas/ContextAnnotationEntityFields" + } + } + }, + "ContextAnnotationDomainFields" : { + "type" : "object", + "description" : "Represents the data for the context annotation domain.", + "required" : [ + "id" + ], + "properties" : { + "description" : { + "type" : "string", + "description" : "Description of the context annotation domain." + }, + "id" : { + "type" : "string", + "description" : "The unique id for a context annotation domain.", + "pattern" : "^[0-9]{1,19}$" + }, + "name" : { + "type" : "string", + "description" : "Name of the context annotation domain." + } + } + }, + "ContextAnnotationEntityFields" : { + "type" : "object", + "description" : "Represents the data for the context annotation entity.", + "required" : [ + "id" + ], + "properties" : { + "description" : { + "type" : "string", + "description" : "Description of the context annotation entity." + }, + "id" : { + "type" : "string", + "description" : "The unique id for a context annotation entity.", + "pattern" : "^[0-9]{1,19}$" + }, + "name" : { + "type" : "string", + "description" : "Name of the context annotation entity." + } + } + }, + "CountryCode" : { + "type" : "string", + "description" : "A two-letter ISO 3166-1 alpha-2 country code.", + "pattern" : "^[A-Z]{2}$", + "example" : "US" + }, + "CreateAttachmentsMessageRequest" : { + "type" : "object", + "required" : [ + "attachments" + ], + "properties" : { + "attachments" : { + "$ref" : "#/components/schemas/DmAttachments" + }, + "text" : { + "type" : "string", + "description" : "Text of the message.", + "minLength" : 1 + } + } + }, + "CreateComplianceJobRequest" : { + "type" : "object", + "description" : "A request to create a new batch compliance job.", + "required" : [ + "type" + ], + "properties" : { + "name" : { + "$ref" : "#/components/schemas/ComplianceJobName" + }, + "resumable" : { + "type" : "boolean", + "description" : "If true, this endpoint will return a pre-signed URL with resumable uploads enabled." + }, + "type" : { + "type" : "string", + "description" : "Type of compliance job to list.", + "enum" : [ + "tweets", + "users" + ] + } + } + }, + "CreateComplianceJobResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/ComplianceJob" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "CreateDmConversationRequest" : { + "type" : "object", + "required" : [ + "conversation_type", + "participant_ids", + "message" + ], + "properties" : { + "conversation_type" : { + "type" : "string", + "description" : "The conversation type that is being created.", + "enum" : [ + "Group" + ] + }, + "message" : { + "$ref" : "#/components/schemas/CreateMessageRequest" + }, + "participant_ids" : { + "$ref" : "#/components/schemas/DmParticipants" + } + }, + "additionalProperties" : false + }, + "CreateDmEventResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "dm_conversation_id", + "dm_event_id" + ], + "properties" : { + "dm_conversation_id" : { + "$ref" : "#/components/schemas/DmConversationId" + }, + "dm_event_id" : { + "$ref" : "#/components/schemas/DmEventId" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "CreateMessageRequest" : { + "anyOf" : [ + { + "$ref" : "#/components/schemas/CreateTextMessageRequest" + }, + { + "$ref" : "#/components/schemas/CreateAttachmentsMessageRequest" + } + ] + }, + "CreateNoteRequest" : { + "type" : "object", + "title" : "Note", + "required" : [ + "test_mode", + "post_id", + "info" + ], + "properties" : { + "info" : { + "$ref" : "#/components/schemas/NoteInfo" + }, + "post_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "test_mode" : { + "type" : "boolean", + "description" : "If true, the note being submitted is only for testing the capability of the bot, and won't be publicly visible. If false, the note being submitted will be a new proposed note on the product." + } + }, + "additionalProperties" : false + }, + "CreateNoteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/NoteId" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "CreateTextMessageRequest" : { + "type" : "object", + "required" : [ + "text" + ], + "properties" : { + "attachments" : { + "$ref" : "#/components/schemas/DmAttachments" + }, + "text" : { + "type" : "string", + "description" : "Text of the message.", + "minLength" : 1 + } + } + }, + "CreatedAt" : { + "type" : "string", + "description" : "Creation time of the compliance job.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "DeleteDmResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "DeleteNoteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "deleted" + ], + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "DeleteRulesRequest" : { + "type" : "object", + "description" : "A response from deleting user-specified stream filtering rules.", + "required" : [ + "delete" + ], + "properties" : { + "delete" : { + "type" : "object", + "description" : "IDs and values of all deleted user-specified stream filtering rules.", + "properties" : { + "ids" : { + "type" : "array", + "description" : "IDs of all deleted user-specified stream filtering rules.", + "items" : { + "$ref" : "#/components/schemas/RuleId" + } + }, + "values" : { + "type" : "array", + "description" : "Values of all deleted user-specified stream filtering rules.", + "items" : { + "$ref" : "#/components/schemas/RuleValue" + } + } + } + } + } + }, + "DisallowedResourceProblem" : { + "description" : "A problem that indicates that the resource requested violates the precepts of this API.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "required" : [ + "resource_id", + "resource_type", + "section" + ], + "properties" : { + "resource_id" : { + "type" : "string" + }, + "resource_type" : { + "type" : "string", + "enum" : [ + "user", + "tweet", + "media", + "list", + "space" ] - }, - "ConnectionExceptionProblem": { - "description": "A problem that indicates something is wrong with the connection.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "connection_issue": { - "type": "string", - "enum": [ - "TooManyConnections", - "ProvisioningSubscription", - "RuleConfigurationIssue", - "RulesInvalidIssue" - ] - } - } - } + }, + "section" : { + "type" : "string", + "enum" : [ + "data", + "includes" ] - }, - "ContentExpiration": { - "type": "object", - "properties": { - "timestamp_sec": { - "type": "number", - "description": "Expiration time for content as a Unix timestamp in seconds", - "format": "long", - "example": 1740787200 - } - } - }, - "ContextAnnotation": { - "type": "object", - "description": "Annotation inferred from the Tweet text.", - "required": [ - "domain", - "entity" - ], - "properties": { - "domain": { - "$ref": "#/components/schemas/ContextAnnotationDomainFields" - }, - "entity": { - "$ref": "#/components/schemas/ContextAnnotationEntityFields" - } - } - }, - "ContextAnnotationDomainFields": { - "type": "object", - "description": "Represents the data for the context annotation domain.", - "required": [ - "id" - ], - "properties": { - "description": { - "type": "string", - "description": "Description of the context annotation domain." - }, - "id": { - "type": "string", - "description": "The unique id for a context annotation domain.", - "pattern": "^[0-9]{1,19}$" - }, - "name": { - "type": "string", - "description": "Name of the context annotation domain." - } - } - }, - "ContextAnnotationEntityFields": { - "type": "object", - "description": "Represents the data for the context annotation entity.", - "required": [ - "id" - ], - "properties": { - "description": { - "type": "string", - "description": "Description of the context annotation entity." - }, - "id": { - "type": "string", - "description": "The unique id for a context annotation entity.", - "pattern": "^[0-9]{1,19}$" - }, - "name": { - "type": "string", - "description": "Name of the context annotation entity." - } - } - }, - "CountryCode": { - "type": "string", - "description": "A two-letter ISO 3166-1 alpha-2 country code.", - "pattern": "^[A-Z]{2}$", - "example": "US" - }, - "CreateAttachmentsMessageRequest": { - "type": "object", - "required": [ - "attachments" - ], - "properties": { - "attachments": { - "$ref": "#/components/schemas/DmAttachments" - }, - "text": { - "type": "string", - "description": "Text of the message.", - "minLength": 1 - } - } - }, - "CreateComplianceJobRequest": { - "type": "object", - "description": "A request to create a new batch compliance job.", - "required": [ - "type" - ], - "properties": { - "name": { - "$ref": "#/components/schemas/ComplianceJobName" - }, - "resumable": { - "type": "boolean", - "description": "If true, this endpoint will return a pre-signed URL with resumable uploads enabled." - }, - "type": { - "type": "string", - "description": "Type of compliance job to list.", - "enum": [ - "tweets", - "users" - ] - } - } - }, - "CreateComplianceJobResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/ComplianceJob" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "CreateDmConversationRequest": { - "type": "object", - "required": [ - "conversation_type", - "participant_ids", - "message" - ], - "properties": { - "conversation_type": { - "type": "string", - "description": "The conversation type that is being created.", - "enum": [ - "Group" - ] - }, - "message": { - "$ref": "#/components/schemas/CreateMessageRequest" - }, - "participant_ids": { - "$ref": "#/components/schemas/DmParticipants" - } + } + } + } + ] + }, + "DisplayTextRange" : { + "type" : "array", + "description" : "Represent a boundary range (start and end zero-based indices) for the portion of text that is displayed for a post. `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", + "minItems" : 2, + "maxItems" : 2, + "items" : { + "type" : "integer", + "minimum" : 0 + } + }, + "DmAttachments" : { + "type" : "array", + "description" : "Attachments to a DM Event.", + "items" : { + "$ref" : "#/components/schemas/DmMediaAttachment" + } + }, + "DmConversationId" : { + "type" : "string", + "description" : "Unique identifier of a DM conversation. This can either be a numeric string, or a pair of numeric strings separated by a '-' character in the case of one-on-one DM Conversations.", + "pattern" : "^([0-9]{1,19}-[0-9]{1,19}|[0-9]{15,19})$", + "example" : "123123123-456456456" + }, + "DmEvent" : { + "type" : "object", + "required" : [ + "id", + "event_type" + ], + "properties" : { + "attachments" : { + "type" : "object", + "description" : "Specifies the type of attachments (if any) present in this DM.", + "properties" : { + "card_ids" : { + "type" : "array", + "description" : "A list of card IDs (if cards are attached).", + "minItems" : 1, + "items" : { + "type" : "string" + } + }, + "media_keys" : { + "type" : "array", + "description" : "A list of Media Keys for each one of the media attachments (if media are attached).", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/MediaKey" + } + } + } + }, + "cashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/CashtagEntity" + } + }, + "created_at" : { + "type" : "string", + "format" : "date-time" + }, + "dm_conversation_id" : { + "$ref" : "#/components/schemas/DmConversationId" + }, + "event_type" : { + "type" : "string", + "example" : "MessageCreate" + }, + "hashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/HashtagEntity" + } + }, + "id" : { + "$ref" : "#/components/schemas/DmEventId" + }, + "mentions" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/MentionEntity" + } + }, + "participant_ids" : { + "type" : "array", + "description" : "A list of participants for a ParticipantsJoin or ParticipantsLeave event_type.", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "referenced_tweets" : { + "type" : "array", + "description" : "A list of Posts this DM refers to.", + "minItems" : 1, + "items" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + } + }, + "sender_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "text" : { + "type" : "string" + }, + "urls" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UrlEntityDm" + } + } + } + }, + "DmEventId" : { + "type" : "string", + "description" : "Unique identifier of a DM Event.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "DmMediaAttachment" : { + "type" : "object", + "required" : [ + "media_id" + ], + "properties" : { + "media_id" : { + "$ref" : "#/components/schemas/MediaId" + } + } + }, + "DmParticipants" : { + "type" : "array", + "description" : "Participants for the DM Conversation.", + "minItems" : 2, + "maxItems" : 49, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "DomainRestrictions" : { + "type" : "object", + "properties" : { + "whitelist" : { + "type" : "array", + "description" : "List of whitelisted domains", + "items" : { + "type" : "string" + } + } + } + }, + "DownloadExpiration" : { + "type" : "string", + "description" : "Expiration time of the download URL.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "DownloadUrl" : { + "type" : "string", + "description" : "URL from which the user will retrieve their compliance results.", + "format" : "uri" + }, + "DuplicateRuleProblem" : { + "description" : "The rule you have submitted is a duplicate.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "id" : { + "type" : "string" + }, + "value" : { + "type" : "string" + } + } + } + ] + }, + "End" : { + "type" : "string", + "description" : "The end time of the bucket.", + "format" : "date-time" + }, + "Engagement" : { + "type" : "object", + "description" : "An Engagement Api Response.", + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "type" : "object", + "properties" : { + "error" : { + "type" : "string" }, - "additionalProperties": false - }, - "CreateDmEventResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "dm_conversation_id", - "dm_event_id" - ], - "properties": { - "dm_conversation_id": { - "$ref": "#/components/schemas/DmConversationId" - }, - "dm_event_id": { - "$ref": "#/components/schemas/DmEventId" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } + "tweets" : { + "type" : "array", + "items" : { + "type" : "string" + } } - }, - "CreateMessageRequest": { - "anyOf": [ - { - "$ref": "#/components/schemas/CreateTextMessageRequest" - }, - { - "$ref": "#/components/schemas/CreateAttachmentsMessageRequest" - } + } + } + }, + "measurement" : { + "type" : "object", + "properties" : { + "metrics_time_series" : { + "type" : "array", + "minItems" : 1, + "items" : { + "type" : "object", + "properties" : { + "tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "value" : { + "type" : "object", + "properties" : { + "metric_values" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "metric_type" : { + "type" : "string" + }, + "metric_value" : { + "type" : "number" + } + } + } + }, + "timestamp" : { + "type" : "object", + "properties" : { + "iso8601_time" : { + "type" : "string" + } + } + } + } + } + } + } + }, + "metrics_total" : { + "type" : "array", + "minItems" : 1, + "items" : { + "type" : "object", + "properties" : { + "tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "value" : { + "type" : "array", + "minItems" : 1, + "items" : { + "type" : "object", + "properties" : { + "metric_type" : { + "type" : "string" + }, + "metric_value" : { + "type" : "number" + } + } + } + } + } + } + } + } + } + } + }, + "EntityIndicesInclusiveExclusive" : { + "type" : "object", + "description" : "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", + "required" : [ + "start", + "end" + ], + "properties" : { + "end" : { + "type" : "integer", + "description" : "Index (zero-based) at which position this entity ends. The index is exclusive.", + "minimum" : 0, + "example" : 61 + }, + "start" : { + "type" : "integer", + "description" : "Index (zero-based) at which position this entity starts. The index is inclusive.", + "minimum" : 0, + "example" : 50 + } + } + }, + "EntityIndicesInclusiveInclusive" : { + "type" : "object", + "description" : "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is inclusive.", + "required" : [ + "start", + "end" + ], + "properties" : { + "end" : { + "type" : "integer", + "description" : "Index (zero-based) at which position this entity ends. The index is inclusive.", + "minimum" : 0, + "example" : 61 + }, + "start" : { + "type" : "integer", + "description" : "Index (zero-based) at which position this entity starts. The index is inclusive.", + "minimum" : 0, + "example" : 50 + } + } + }, + "Error" : { + "type" : "object", + "required" : [ + "code", + "message" + ], + "properties" : { + "code" : { + "type" : "integer", + "format" : "int32" + }, + "message" : { + "type" : "string" + } + } + }, + "Expansions" : { + "type" : "object", + "properties" : { + "media" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Media" + } + }, + "places" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Place" + } + }, + "polls" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Poll" + } + }, + "topics" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Topic" + } + }, + "tweets" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "users" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + } + } + }, + "FieldUnauthorizedProblem" : { + "description" : "A problem that indicates that you are not allowed to see a particular field on a Tweet, User, etc.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "required" : [ + "resource_type", + "field", + "section" + ], + "properties" : { + "field" : { + "type" : "string" + }, + "resource_type" : { + "type" : "string", + "enum" : [ + "user", + "tweet", + "media", + "list", + "space" ] - }, - "CreateNoteRequest": { - "type": "object", - "title": "Note", - "required": [ - "test_mode", - "post_id", - "info" - ], - "properties": { - "info": { - "$ref": "#/components/schemas/NoteInfo" - }, - "post_id": { - "$ref": "#/components/schemas/TweetId" - }, - "test_mode": { - "type": "boolean", - "description": "If true, the note being submitted is only for testing the capability of the bot, and won't be publicly visible. If false, the note being submitted will be a new proposed note on the product." - } + }, + "section" : { + "type" : "string", + "enum" : [ + "data", + "includes" + ] + } + } + } + ] + }, + "FilteredStreamingTweetResponse" : { + "type" : "object", + "description" : "A Tweet or error that can be returned by the streaming Tweet API. The values returned with a successful streamed Tweet includes the user provided rules that the Tweet matched.", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "matching_rules" : { + "type" : "array", + "description" : "The list of rules which matched the Tweet", + "items" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/RuleId" }, - "additionalProperties": false - }, - "CreateNoteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/NoteId" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "CreateTextMessageRequest": { - "type": "object", - "required": [ - "text" - ], - "properties": { - "attachments": { - "$ref": "#/components/schemas/DmAttachments" - }, - "text": { - "type": "string", - "description": "Text of the message.", - "minLength": 1 - } - } - }, - "CreatedAt": { - "type": "string", - "description": "Creation time of the compliance job.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "DeleteDmResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "DeleteNoteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "deleted" - ], - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "DeleteRulesRequest": { - "type": "object", - "description": "A response from deleting user-specified stream filtering rules.", - "required": [ - "delete" - ], - "properties": { - "delete": { - "type": "object", - "description": "IDs and values of all deleted user-specified stream filtering rules.", - "properties": { - "ids": { - "type": "array", - "description": "IDs of all deleted user-specified stream filtering rules.", - "items": { - "$ref": "#/components/schemas/RuleId" - } - }, - "values": { - "type": "array", - "description": "Values of all deleted user-specified stream filtering rules.", - "items": { - "$ref": "#/components/schemas/RuleValue" - } - } - } - } + "tag" : { + "$ref" : "#/components/schemas/RuleTag" } - }, - "DisallowedResourceProblem": { - "description": "A problem that indicates that the resource requested violates the precepts of this API.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "required": [ - "resource_id", - "resource_type", - "section" - ], - "properties": { - "resource_id": { - "type": "string" - }, - "resource_type": { - "type": "string", - "enum": [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "section": { - "type": "string", - "enum": [ - "data", - "includes" - ] - } - } - } - ] - }, - "DisplayTextRange": { - "type": "array", - "description": "Represent a boundary range (start and end zero-based indices) for the portion of text that is displayed for a post. `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", - "minItems": 2, - "maxItems": 2, - "items": { - "type": "integer", - "minimum": 0 - } - }, - "DmAttachments": { - "type": "array", - "description": "Attachments to a DM Event.", - "items": { - "$ref": "#/components/schemas/DmMediaAttachment" - } - }, - "DmConversationId": { - "type": "string", - "description": "Unique identifier of a DM conversation. This can either be a numeric string, or a pair of numeric strings separated by a '-' character in the case of one-on-one DM Conversations.", - "pattern": "^([0-9]{1,19}-[0-9]{1,19}|[0-9]{15,19})$", - "example": "123123123-456456456" - }, - "DmEvent": { - "type": "object", - "required": [ - "id", - "event_type" - ], - "properties": { - "attachments": { - "type": "object", - "description": "Specifies the type of attachments (if any) present in this DM.", - "properties": { - "card_ids": { - "type": "array", - "description": "A list of card IDs (if cards are attached).", - "minItems": 1, - "items": { - "type": "string" - } - }, - "media_keys": { - "type": "array", - "description": "A list of Media Keys for each one of the media attachments (if media are attached).", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/MediaKey" - } - } - } - }, - "cashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/CashtagEntity" - } - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "dm_conversation_id": { - "$ref": "#/components/schemas/DmConversationId" - }, - "event_type": { - "type": "string", - "example": "MessageCreate" - }, - "hashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/HashtagEntity" - } - }, - "id": { - "$ref": "#/components/schemas/DmEventId" - }, - "mentions": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/MentionEntity" - } - }, - "participant_ids": { - "type": "array", - "description": "A list of participants for a ParticipantsJoin or ParticipantsLeave event_type.", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "referenced_tweets": { - "type": "array", - "description": "A list of Posts this DM refers to.", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - }, - "sender_id": { - "$ref": "#/components/schemas/UserId" - }, - "text": { - "type": "string" - }, - "urls": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UrlEntityDm" - } - } - } - }, - "DmEventId": { - "type": "string", - "description": "Unique identifier of a DM Event.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "DmMediaAttachment": { - "type": "object", - "required": [ - "media_id" - ], - "properties": { - "media_id": { - "$ref": "#/components/schemas/MediaId" - } - } - }, - "DmParticipants": { - "type": "array", - "description": "Participants for the DM Conversation.", - "minItems": 2, - "maxItems": 49, - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "DomainRestrictions": { - "type": "object", - "properties": { - "whitelist": { - "type": "array", - "description": "List of whitelisted domains", - "items": { - "type": "string" - } - } - } - }, - "DownloadExpiration": { - "type": "string", - "description": "Expiration time of the download URL.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "DownloadUrl": { - "type": "string", - "description": "URL from which the user will retrieve their compliance results.", - "format": "uri" - }, - "DuplicateRuleProblem": { - "description": "The rule you have submitted is a duplicate.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "value": { - "type": "string" - } - } - } - ] - }, - "End": { - "type": "string", - "description": "The end time of the bucket.", - "format": "date-time" - }, - "Engagement": { - "type": "object", - "description": "An Engagement Api Response.", - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "tweets": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "measurement": { - "type": "object", - "properties": { - "metrics_time_series": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "value": { - "type": "object", - "properties": { - "metric_values": { - "type": "array", - "items": { - "type": "object", - "properties": { - "metric_type": { - "type": "string" - }, - "metric_value": { - "type": "number" - } - } - } - }, - "timestamp": { - "type": "object", - "properties": { - "iso8601_time": { - "type": "string" - } - } - } - } - } - } - } - }, - "metrics_total": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "value": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "metric_type": { - "type": "string" - }, - "metric_value": { - "type": "number" - } - } - } - } - } - } - } - } - } - } - }, - "EntityIndicesInclusiveExclusive": { - "type": "object", - "description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", - "required": [ - "start", - "end" - ], - "properties": { - "end": { - "type": "integer", - "description": "Index (zero-based) at which position this entity ends. The index is exclusive.", - "minimum": 0, - "example": 61 - }, - "start": { - "type": "integer", - "description": "Index (zero-based) at which position this entity starts. The index is inclusive.", - "minimum": 0, - "example": 50 - } - } - }, - "EntityIndicesInclusiveInclusive": { - "type": "object", - "description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is inclusive.", - "required": [ - "start", - "end" - ], - "properties": { - "end": { - "type": "integer", - "description": "Index (zero-based) at which position this entity ends. The index is inclusive.", - "minimum": 0, - "example": 61 - }, - "start": { - "type": "integer", - "description": "Index (zero-based) at which position this entity starts. The index is inclusive.", - "minimum": 0, - "example": 50 - } - } - }, - "Error": { - "type": "object", - "required": [ - "code", - "message" - ], - "properties": { - "code": { - "type": "integer", - "format": "int32" - }, - "message": { - "type": "string" - } - } - }, - "Expansions": { - "type": "object", - "properties": { - "media": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Media" - } - }, - "places": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Place" - } - }, - "polls": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Poll" - } - }, - "topics": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Topic" - } - }, - "tweets": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "users": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "FieldUnauthorizedProblem": { - "description": "A problem that indicates that you are not allowed to see a particular field on a Tweet, User, etc.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "required": [ - "resource_type", - "field", - "section" - ], - "properties": { - "field": { - "type": "string" - }, - "resource_type": { - "type": "string", - "enum": [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "section": { - "type": "string", - "enum": [ - "data", - "includes" - ] - } - } - } - ] - }, - "FilteredStreamingTweetResponse": { - "type": "object", - "description": "A Tweet or error that can be returned by the streaming Tweet API. The values returned with a successful streamed Tweet includes the user provided rules that the Tweet matched.", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "matching_rules": { - "type": "array", - "description": "The list of rules which matched the Tweet", - "items": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/RuleId" - }, - "tag": { - "$ref": "#/components/schemas/RuleTag" - } - } - } - } - } - }, - "FoundMediaOrigin": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique Identifier of media within provider ( <= 24 characters ))", - "example": "u5BzatR15TZ04" - }, - "provider": { - "type": "string", - "description": "The media provider (e.g., 'giphy') that sourced the media ( <= 8 Characters )", - "example": "giphy" - } - } - }, - "FullTextEntities": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "minItems": 1, - "items": { - "description": "Annotation for entities based on the Tweet text.", - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveInclusive" - }, - { - "type": "object", - "description": "Represents the data for the annotation.", - "properties": { - "normalized_text": { - "type": "string", - "description": "Text used to determine annotation.", - "example": "Barack Obama" - }, - "probability": { - "type": "number", - "description": "Confidence factor for annotation type.", - "minimum": 0, - "maximum": 1, - "format": "double" - }, - "type": { - "type": "string", - "description": "Annotation type.", - "example": "Person" - } - } - } - ] - } - }, - "cashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/CashtagEntity" - } - }, - "hashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/HashtagEntity" - } - }, - "mentions": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/MentionEntity" - } - }, - "urls": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UrlEntity" - } - } - } - }, - "GenericProblem": { - "description": "A generic problem with no additional information beyond that provided by the HTTP status code.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "Geo": { - "type": "object", - "required": [ - "type", - "bbox", - "properties" - ], - "properties": { - "bbox": { - "type": "array", - "minItems": 4, - "maxItems": 4, - "items": { - "type": "number", - "minimum": -180, - "maximum": 180, - "format": "double" - }, - "example": [ - -105.193475, - 39.60973, - -105.053164, - 39.761974 - ] - }, - "geometry": { - "$ref": "#/components/schemas/Point" - }, - "properties": { - "type": "object" - }, - "type": { - "type": "string", - "enum": [ - "Feature" - ] - } - } - }, - "GeoRestrictions": { - "oneOf": [ - { - "type": "object", - "required": [ - "whitelisted_country_codes", - "blacklisted_country_codes" - ], - "properties": { - "blacklisted_country_codes": { - "type": "array", - "description": "List of blacklisted country codes", - "minItems": 0, - "maxItems": 0, - "items": { - "type": "string", - "description": "Country code in ISO 3166-1 alpha-2 format", - "pattern": "^[a-zA-Z]{2}$", - "example": "us" - } - }, - "whitelisted_country_codes": { - "type": "array", - "description": "List of whitelisted country codes", - "minItems": 1, - "items": { - "type": "string", - "description": "Country code in ISO 3166-1 alpha-2 format", - "pattern": "^[a-zA-Z]{2}$", - "example": "us" - } - } - } - }, - { - "type": "object", - "required": [ - "whitelisted_country_codes", - "blacklisted_country_codes" - ], - "properties": { - "blacklisted_country_codes": { - "type": "array", - "description": "List of blacklisted country codes", - "minItems": 1, - "items": { - "type": "string", - "description": "Country code in ISO 3166-1 alpha-2 format", - "pattern": "^[a-zA-Z]{2}$", - "example": "us" - } - }, - "whitelisted_country_codes": { - "type": "array", - "description": "List of whitelisted country codes", - "minItems": 0, - "maxItems": 0, - "items": { - "type": "string", - "description": "Country code in ISO 3166-1 alpha-2 format", - "pattern": "^[a-zA-Z]{2}$", - "example": "us" - } - } - } - } - ] - }, - "Get2CommunitiesIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Community" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2CommunitiesSearchResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Community" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - } - } - } - } - }, - "Get2ComplianceJobsIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/ComplianceJob" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2ComplianceJobsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/ComplianceJob" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmConversationsIdDmEventsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/DmEvent" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmConversationsWithParticipantIdDmEventsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/DmEvent" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmEventsEventIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/DmEvent" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2DmEventsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/DmEvent" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2FdxAccountsAccountidContactResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/PlaidAccountContact" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidPayment-networksResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/PlaidAccountPaymentNetwork" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/PlaidAccount" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidTransactionsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/PlaidAccountTransaction" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxCustomersCurrentResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/PlaidCustomer" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2Insights28hrResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Engagement" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2InsightsHistoricalResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Engagement" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2LikesFirehoseStreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/LikeWithTweetAuthor" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2LikesSample10StreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/LikeWithTweetAuthor" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2ListsIdFollowersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2ListsIdMembersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2ListsIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/List" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2ListsIdTweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2MediaAnalyticsResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/MediaAnalytics" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2MediaMediaKeyResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Media" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2MediaResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Media" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2NotesSearchNotesWrittenResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Note" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2NotesSearchPostsEligibleForNotesResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesByCreatorIdsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Space" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesIdBuyersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Space" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2SpacesIdTweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Space" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2SpacesSearchResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Space" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TrendsByWoeidWoeidResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Trend" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2TweetsAnalyticsResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Analytics" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2TweetsCountsAllResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/SearchCount" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "total_tweet_count": { - "$ref": "#/components/schemas/Aggregate" - } - } - } - } - }, - "Get2TweetsCountsRecentResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/SearchCount" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "total_tweet_count": { - "$ref": "#/components/schemas/Aggregate" - } - } - } - } - }, - "Get2TweetsFirehoseStreamLangEnResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangJaResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangKoResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangPtResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsIdLikingUsersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdQuoteTweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsIdRetweetedByResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdRetweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSample10StreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSampleStreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSearchAllResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsSearchRecentResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsSearchStreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSearchStreamRulesCountsResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/RulesCount" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2UsageTweetsResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Usage" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2UsersByResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2UsersByUsernameUsernameResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/User" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2UsersIdBlockingResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdBookmarksResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowedListsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/List" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowingResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdLikedTweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdListMembershipsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/List" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdMentionsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdMutingResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdOwnedListsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/List" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdPinnedListsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/List" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/User" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2UsersIdTimelinesReverseChronologicalResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdTweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersMeResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/User" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2UsersPersonalizedTrendsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/PersonalizedTrend" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2UsersRepostsOfMeResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2UsersSearchResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - } - } - } - } - }, - "Get2WebhooksResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/WebhookConfig" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "HashtagEntity": { - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref": "#/components/schemas/HashtagFields" - } - ] - }, - "HashtagFields": { - "type": "object", - "description": "Represent the portion of text recognized as a Hashtag, and its start and end position within the text.", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "description": "The text of the Hashtag.", - "example": "MondayMotivation" - } - } - }, - "HttpStatusCode": { - "type": "integer", - "description": "HTTP Status Code.", - "minimum": 100, - "maximum": 599 - }, - "InvalidRequestProblem": { - "description": "A problem that indicates this request is invalid.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "parameters": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - } - ] - }, - "InvalidRuleProblem": { - "description": "The rule you have submitted is invalid.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "JobId": { - "type": "string", - "description": "Compliance Job ID.", - "pattern": "^[0-9]{1,19}$", - "example": "1372966999991541762" - }, - "KillAllConnectionsResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "killed_connections": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "LikeComplianceSchema": { - "type": "object", - "required": [ - "delete" - ], - "properties": { - "delete": { - "$ref": "#/components/schemas/UnlikeComplianceSchema" - } - } - }, - "LikeId": { - "type": "string", - "description": "The unique identifier of this Like.", - "pattern": "^[A-Za-z0-9_]{1,40}$", - "example": "8ba4f34e6235d905a46bac021d98e923" - }, - "LikeWithTweetAuthor": { - "type": "object", - "description": "A Like event, with the tweet author user and the tweet being liked", - "properties": { - "created_at": { - "type": "string", - "description": "Creation time of the Tweet.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "id": { - "$ref": "#/components/schemas/LikeId" - }, - "liked_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "timestamp_ms": { - "type": "integer", - "description": "Timestamp in milliseconds of creation.", - "format": "int32" - }, - "tweet_author_id": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "LikesComplianceStreamResponse": { - "description": "Likes compliance stream events.", - "oneOf": [ - { - "type": "object", - "description": "Compliance event.", - "required": [ - "data" - ], - "properties": { - "data": { - "$ref": "#/components/schemas/LikeComplianceSchema" - } - } - }, - { - "type": "object", - "required": [ - "errors" - ], - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - ] - }, - "List": { - "type": "object", - "description": "A X List is a curated group of accounts.", - "required": [ - "id", - "name" - ], - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "description": { - "type": "string" - }, - "follower_count": { - "type": "integer" - }, - "id": { - "$ref": "#/components/schemas/ListId" - }, - "member_count": { - "type": "integer" - }, - "name": { - "type": "string", - "description": "The name of this List." - }, - "owner_id": { - "$ref": "#/components/schemas/UserId" - }, - "private": { - "type": "boolean" - } - } - }, - "ListAddUserRequest": { - "type": "object", - "required": [ - "user_id" - ], - "properties": { - "user_id": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "ListCreateRequest": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "description": { - "type": "string", - "minLength": 0, - "maxLength": 100 - }, - "name": { - "type": "string", - "minLength": 1, - "maxLength": 25 - }, - "private": { - "type": "boolean", - "default": false - } - } - }, - "ListCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "description": "A X List is a curated group of accounts.", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/ListId" - }, - "name": { - "type": "string", - "description": "The name of this List." - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListFollowedRequest": { - "type": "object", - "required": [ - "list_id" - ], - "properties": { - "list_id": { - "$ref": "#/components/schemas/ListId" - } - } - }, - "ListFollowedResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "following": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListId": { - "type": "string", - "description": "The unique identifier of this List.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "ListMutateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "is_member": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListPinnedRequest": { - "type": "object", - "required": [ - "list_id" - ], - "properties": { - "list_id": { - "$ref": "#/components/schemas/ListId" - } - } - }, - "ListPinnedResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "pinned": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListUnpinResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "pinned": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListUpdateRequest": { - "type": "object", - "properties": { - "description": { - "type": "string", - "minLength": 0, - "maxLength": 100 - }, - "name": { - "type": "string", - "minLength": 1, - "maxLength": 25 - }, - "private": { - "type": "boolean" - } - } - }, - "ListUpdateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "updated": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ManagementInfo": { - "type": "object", - "properties": { - "managed": { - "type": "boolean", - "description": "Indicates if the media is managed by Media Studio", - "example": false - } - } - }, - "Media": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "height": { - "$ref": "#/components/schemas/MediaHeight" - }, - "media_key": { - "$ref": "#/components/schemas/MediaKey" - }, - "type": { - "type": "string" - }, - "width": { - "$ref": "#/components/schemas/MediaWidth" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "animated_gif": "#/components/schemas/AnimatedGif", - "photo": "#/components/schemas/Photo", - "video": "#/components/schemas/Video" - } - } - }, - "MediaAnalytics": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "media_key": { - "$ref": "#/components/schemas/MediaKey" - }, - "timestamped_metrics": { - "type": "array", - "title": "Timestamped Metrics", - "description": "Array containing metrics data along with the timestamps of their recording.", - "items": { - "$ref": "#/components/schemas/MediaTimestampedMetrics" - } - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "MediaCategory": { - "type": "string", - "description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size, video duration) and enable advanced features.", - "enum": [ - "amplify_video", - "tweet_gif", - "tweet_image", - "tweet_video", - "dm_gif", - "dm_image", - "dm_video", - "subtitles" - ], - "example": "tweet_video" - }, - "MediaCategoryOneShot": { - "type": "string", - "description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size) and enable advanced features.", - "enum": [ - "tweet_image", - "dm_image", - "subtitles" - ], - "example": "tweet_image" - }, - "MediaCategorySubtitles": { - "type": "string", - "description": "The media category of uploaded media to which subtitles should be added/deleted", - "enum": [ - "AmplifyVideo", - "TweetVideo" - ], - "example": "TweetVideo" - }, - "MediaHeight": { - "type": "integer", - "description": "The height of the media in pixels.", - "minimum": 0 - }, - "MediaId": { - "type": "string", - "description": "The unique identifier of this Media.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "MediaKey": { - "type": "string", - "description": "The Media Key identifier for this attachment.", - "pattern": "^([0-9]+)_([0-9]+)$" - }, - "MediaMetrics": { - "type": "object", - "properties": { - "cta_url_clicks": { - "type": "integer", - "title": "CTA URL Clicks", - "description": "Tracks the number of clicks on a call-to-action URL" - }, - "cta_watch_clicks": { - "type": "integer", - "title": "CTA Watch Clicks", - "description": "Tracks the number of clicks to watch a video or media content" - }, - "play_from_tap": { - "type": "integer", - "title": "Play From Tap", - "description": "Tracks the number of times a video or media is played from a user tap" - }, - "playback25": { - "type": "integer", - "title": "Playback 25%", - "description": "Tracks the number of times a video reaches 25% of its duration" - }, - "playback50": { - "type": "integer", - "title": "Playback 50%", - "description": "Tracks the number of times a video reaches 50% of its duration" - }, - "playback75": { - "type": "integer", - "title": "Playback 75%", - "description": "Tracks the number of times a video reaches 75% of its duration" - }, - "playback_complete": { - "type": "integer", - "title": "Playback Complete", - "description": "Tracks the number of times a video is played to completion" - }, - "playback_start": { - "type": "integer", - "title": "Playback Start", - "description": "Tracks the number of times a video playback is initiated" - }, - "video_views": { - "type": "integer", - "title": "Video Views", - "description": "Tracks the number of times a video is viewed" - }, - "watch_time_ms": { - "type": "integer", - "title": "Watch Time (ms)", - "description": "Tracks the total time spent watching a video, measured in milliseconds" - } - } - }, - "MediaPayloadBinary": { - "type": "string", - "description": "The file to upload.", - "format": "binary" - }, - "MediaPayloadByte": { - "type": "string", - "description": "The file to upload.", - "format": "byte" - }, - "MediaSegments": { - "oneOf": [ - { - "type": "integer", - "description": "An integer value representing the media upload segment.", - "minimum": 0, - "maximum": 999, - "format": "int32" - }, - { - "type": "string", - "description": "An integer value representing the media upload segment.", - "pattern": "^[0-9]{1,3}$", - "format": "integer" - } - ] - }, - "MediaTimestampedMetrics": { - "type": "object", - "properties": { - "metrics": { - "$ref": "#/components/schemas/MediaMetrics" - }, - "timestamp": { - "type": "string", - "title": "Timestamp", - "description": "ISO8601 Time", - "example": "2025-03-17T06:30:00Z" - } - } - }, - "MediaUploadAppendRequest": { - "anyOf": [ - { - "type": "object", - "required": [ - "media", - "segment_index" - ], - "properties": { - "media": { - "$ref": "#/components/schemas/MediaPayloadBinary" - }, - "segment_index": { - "$ref": "#/components/schemas/MediaSegments" - } - } - }, - { - "type": "object", - "required": [ - "media", - "segment_index" - ], - "properties": { - "media": { - "$ref": "#/components/schemas/MediaPayloadByte" - }, - "segment_index": { - "$ref": "#/components/schemas/MediaSegments" - } - } - } - ] - }, - "MediaUploadAppendResponse": { - "type": "object", - "description": "A response from getting a media upload request status.", - "required": [ - "meta" - ], - "properties": { - "data": { - "type": "object", - "properties": { - "expires_at": { - "type": "integer", - "description": "Unix epoch time in seconds after when the upload session expires.", - "format": "int64" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "MediaUploadConfigRequest": { - "type": "object", - "properties": { - "additional_owners": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "media_category": { - "$ref": "#/components/schemas/MediaCategory" - }, - "media_type": { - "type": "string", - "description": "The type of media.", - "enum": [ - "video/mp4", - "video/webm", - "video/mp2t", - "video/quicktime", - "text/srt", - "text/vtt", - "image/jpeg", - "image/gif", - "image/bmp", - "image/png", - "image/webp", - "image/pjpeg", - "image/tiff", - "model/gltf-binary", - "model/vnd.usdz+zip" - ], - "example": "video/mp4" - }, - "shared": { - "type": "boolean", - "description": "Whether this media is shared or not." - }, - "total_bytes": { - "type": "integer", - "description": "The total size of the media upload in bytes.", - "minimum": 0, - "maximum": 17179869184 - } - }, - "additionalProperties": false - }, - "MediaUploadRequestOneShot": { - "type": "object", - "required": [ - "media", - "media_category" - ], - "properties": { - "additional_owners": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "media": { - "anyOf": [ - { - "$ref": "#/components/schemas/MediaPayloadBinary" - }, - { - "$ref": "#/components/schemas/MediaPayloadByte" - } - ] - }, - "media_category": { - "$ref": "#/components/schemas/MediaCategoryOneShot" - }, - "media_type": { - "type": "string", - "description": "The type of image or subtitle.", - "enum": [ - "text/srt", - "text/vtt", - "image/jpeg", - "image/bmp", - "image/png", - "image/webp", - "image/pjpeg", - "image/tiff" - ], - "example": "image/png" - }, - "shared": { - "type": "boolean", - "description": "Whether this media is shared or not.", - "default": false - } - }, - "additionalProperties": false - }, - "MediaUploadResponse": { - "type": "object", - "description": "A response from getting a media upload request status.", - "required": [ - "meta" - ], - "properties": { - "data": { - "type": "object", - "required": [ - "id", - "media_key" - ], - "properties": { - "expires_after_secs": { - "type": "integer", - "description": "Number of seconds after which upload session expires.", - "format": "int32" - }, - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "media_key": { - "$ref": "#/components/schemas/MediaKey" - }, - "processing_info": { - "$ref": "#/components/schemas/ProcessingInfo" - }, - "size": { - "type": "integer", - "description": "Size of the upload", - "format": "int32" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "MediaWidth": { - "type": "integer", - "description": "The width of the media in pixels.", - "minimum": 0 - }, - "MentionEntity": { - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref": "#/components/schemas/MentionFields" - } - ] - }, - "MentionFields": { - "type": "object", - "description": "Represent the portion of text recognized as a User mention, and its start and end position within the text.", - "required": [ - "username" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/UserId" - }, - "username": { - "$ref": "#/components/schemas/UserName" - } - } - }, - "MetadataCreateRequest": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "metadata": { - "type": "object", - "properties": { - "allow_download_status": { - "$ref": "#/components/schemas/AllowDownloadStatus" - }, - "alt_text": { - "$ref": "#/components/schemas/AltText" - }, - "audience_policy": { - "$ref": "#/components/schemas/AudiencePolicy" - }, - "content_expiration": { - "$ref": "#/components/schemas/ContentExpiration" - }, - "domain_restrictions": { - "$ref": "#/components/schemas/DomainRestrictions" - }, - "found_media_origin": { - "$ref": "#/components/schemas/FoundMediaOrigin" - }, - "geo_restrictions": { - "$ref": "#/components/schemas/GeoRestrictions" - }, - "management_info": { - "$ref": "#/components/schemas/ManagementInfo" - }, - "preview_image": { - "$ref": "#/components/schemas/PreviewImage" - }, - "sensitive_media_warning": { - "$ref": "#/components/schemas/SensitiveMediaWarning" - }, - "shared_info": { - "$ref": "#/components/schemas/SharedInfo" - }, - "sticker_info": { - "$ref": "#/components/schemas/StickerInfo" - }, - "upload_source": { - "$ref": "#/components/schemas/UploadSource" - } - } - } - } - }, - "MetadataCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "associated_metadata": { - "type": "object", - "properties": { - "allow_download_status": { - "$ref": "#/components/schemas/AllowDownloadStatus" - }, - "alt_text": { - "$ref": "#/components/schemas/AltText" - }, - "audience_policy": { - "$ref": "#/components/schemas/AudiencePolicy" - }, - "content_expiration": { - "$ref": "#/components/schemas/ContentExpiration" - }, - "domain_restrictions": { - "$ref": "#/components/schemas/DomainRestrictions" - }, - "found_media_origin": { - "$ref": "#/components/schemas/FoundMediaOrigin" - }, - "geo_restrictions": { - "$ref": "#/components/schemas/GeoRestrictions" - }, - "management_info": { - "$ref": "#/components/schemas/ManagementInfo" - }, - "preview_image": { - "$ref": "#/components/schemas/PreviewImage" - }, - "sensitive_media_warning": { - "$ref": "#/components/schemas/SensitiveMediaWarning" - }, - "shared_info": { - "$ref": "#/components/schemas/SharedInfo" - }, - "sticker_info": { - "$ref": "#/components/schemas/StickerInfo" - }, - "upload_source": { - "$ref": "#/components/schemas/UploadSource" - } - } - }, - "id": { - "$ref": "#/components/schemas/MediaId" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Metrics": { - "type": "object", - "properties": { - "app_install_attempts": { - "type": "integer", - "title": "App Install Attempts", - "description": "Tracks number of App Install Attempts" - }, - "app_opens": { - "type": "integer", - "title": "App Opens", - "description": "Tracks number of App opens" - }, - "detail_expands": { - "type": "integer", - "title": "Detail Expands", - "description": "Tracks number of Detail expands" - }, - "email_tweet": { - "type": "integer", - "title": "Email Tweet", - "description": "Tracks number of Email Tweet actions" - }, - "engagements": { - "type": "integer", - "title": "Engagements", - "description": "Tracks total Engagements" - }, - "follows": { - "type": "integer", - "title": "Follows", - "description": "Tracks number of Follows" - }, - "hashtag_clicks": { - "type": "integer", - "title": "Hashtag Clicks", - "description": "Tracks number of Hashtag clicks" - }, - "impressions": { - "type": "integer", - "title": "Impressions", - "description": "Tracks number of Impressions" - }, - "likes": { - "type": "integer", - "title": "Likes", - "description": "Tracks number of Likes" - }, - "link_clicks": { - "type": "integer", - "title": "Link Clicks", - "description": "Tracks number of Link clicks" - }, - "media_engagements": { - "type": "integer", - "title": "Media Engagements", - "description": "Tracks number of Media engagements" - }, - "media_views": { - "type": "integer", - "title": "Media Views", - "description": "Tracks number of Media views" - }, - "permalink_clicks": { - "type": "integer", - "title": "Permalink Clicks", - "description": "Tracks number of Permalink clicks" - }, - "profile_visits": { - "type": "integer", - "title": "Profile Visits", - "description": "Tracks number of Profile visits" - }, - "quote_tweets": { - "type": "integer", - "title": "Quote Tweets", - "description": "Tracks number of Quote Tweets" - }, - "replies": { - "type": "integer", - "title": "Replies", - "description": "Tracks number of Replies" - }, - "retweets": { - "type": "integer", - "title": "Retweets", - "description": "Tracks number of Retweets" - }, - "url_clicks": { - "type": "integer", - "title": "URL Clicks", - "description": "Tracks number of URL clicks" - }, - "user_profile_clicks": { - "type": "integer", - "title": "User Profile Clicks", - "description": "Tracks number of User Profile clicks" - } - } - }, - "MisleadingTags": { - "type": "string", - "description": "Community Note misleading tags type.", - "enum": [ - "disputed_claim_as_fact", - "factual_error", - "manipulated_media", - "misinterpreted_satire", - "missing_important_context", - "other", - "outdated_information" - ] - }, - "MuteUserMutationResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "muting": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "MuteUserRequest": { - "type": "object", - "required": [ - "target_user_id" - ], - "properties": { - "target_user_id": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "NewestId": { - "type": "string", - "description": "The newest id in this response." - }, - "NextToken": { - "type": "string", - "description": "The next token.", - "minLength": 1 - }, - "NonCompliantRulesProblem": { - "description": "A problem that indicates the user's rule set is not compliant.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "Note": { - "type": "object", - "description": "A X Community Note is a note on a Post.", - "required": [ - "id", - "post_id", - "note_info" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/NoteId" - }, - "info": { - "$ref": "#/components/schemas/NoteInfo" - }, - "post_id": { - "$ref": "#/components/schemas/TweetId" - }, - "status": { - "$ref": "#/components/schemas/NoteRatingStatus" - }, - "test_result": { - "type": "boolean", - "description": "Test result information. Only returned when test result is true." - } - } - }, - "NoteClassification": { - "type": "string", - "description": "Community Note classification type.", - "enum": [ - "misinformed_or_potentially_misleading", - "not_misleading" - ] - }, - "NoteId": { - "type": "string", - "description": "The unique identifier of this Community Note.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "NoteInfo": { - "type": "object", - "description": "A X Community Note is a note on a Post.", - "required": [ - "text", - "classification", - "misleading_tags", - "trustworthy_sources" - ], - "properties": { - "classification": { - "$ref": "#/components/schemas/NoteClassification" - }, - "misleading_tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MisleadingTags" - } - }, - "text": { - "type": "string", - "description": "The text summary in the Community Note.", - "pattern": "^(?=.*https?://\\S+).+$" - }, - "trustworthy_sources": { - "type": "boolean", - "description": "Whether the note provided trustworthy links." - } - }, - "additionalProperties": false - }, - "NoteRatingStatus": { - "type": "string", - "description": "Community Note rating status. Only returned when test result is false", - "enum": [ - "currently_rated_helpful", - "currently_rated_not_helpful", - "firm_reject", - "insufficient_consensus", - "minimum_ratings_not_met", - "needs_more_ratings", - "needs_your_help" - ] - }, - "NoteTweetText": { - "type": "string", - "description": "The note content of the Tweet.", - "example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet https:\/\/t.co\/56a0vZUx7i" - }, - "Oauth1PermissionsProblem": { - "description": "A problem that indicates your client application does not have the required OAuth1 permissions for the requested endpoint.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "OldestId": { - "type": "string", - "description": "The oldest id in this response." - }, - "OperationalDisconnectProblem": { - "description": "You have been disconnected for operational reasons.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "disconnect_type": { - "type": "string", - "enum": [ - "OperationalDisconnect", - "UpstreamOperationalDisconnect", - "ForceDisconnect", - "UpstreamUncleanDisconnect", - "SlowReader", - "InternalError", - "ClientApplicationStateDegraded", - "InvalidRules" - ] - } - } - } - ] - }, - "PaginationToken32": { - "type": "string", - "description": "A base32 pagination token.", - "minLength": 16 - }, - "PaginationToken36": { - "type": "string", - "description": "A base36 pagination token.", - "minLength": 1 - }, - "PaginationTokenLong": { - "type": "string", - "description": "A 'long' pagination token.", - "minLength": 1, - "maxLength": 19 - }, - "PersonalizedTrend": { - "type": "object", - "description": "A trend.", - "properties": { - "category": { - "type": "string", - "description": "Category of this trend." - }, - "post_count": { - "type": "integer", - "description": "Number of posts pertaining to this trend." - }, - "trend_name": { - "type": "string", - "description": "Name of the trend." - }, - "trending_since": { - "type": "string", - "description": "Time since this is trending." - } - } - }, - "Photo": { - "allOf": [ - { - "$ref": "#/components/schemas/Media" - }, - { - "type": "object", - "properties": { - "alt_text": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - } - } - ] - }, - "Place": { - "type": "object", - "required": [ - "id", - "full_name" - ], - "properties": { - "contained_within": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/PlaceId" - } - }, - "country": { - "type": "string", - "description": "The full name of the county in which this place exists.", - "example": "United States" - }, - "country_code": { - "$ref": "#/components/schemas/CountryCode" - }, - "full_name": { - "type": "string", - "description": "The full name of this place.", - "example": "Lakewood, CO" - }, - "geo": { - "$ref": "#/components/schemas/Geo" - }, - "id": { - "$ref": "#/components/schemas/PlaceId" - }, - "name": { - "type": "string", - "description": "The human readable name of this place.", - "example": "Lakewood" - }, - "place_type": { - "$ref": "#/components/schemas/PlaceType" - } - } - }, - "PlaceId": { - "type": "string", - "description": "The identifier for this place.", - "example": "f7eb2fa2fea288b1" - }, - "PlaceType": { - "type": "string", - "enum": [ - "poi", - "neighborhood", - "city", - "admin", - "country", - "unknown" - ], - "example": "city" - }, - "PlaidAccount": { - "type": "object", - "description": "Descriptor for a Plaid account.", - "required": [ - "accountId", - "accountCategory", - "accountNumberDisplay", - "accountType", - "currency", - "productName", - "status" - ], - "properties": { - "accountCategory": { - "type": "string", - "description": "The category of the account (e.g., personal, business)." - }, - "accountId": { - "type": "string", - "description": "The Plaid account ID." - }, - "accountNumberDisplay": { - "type": "string", - "description": "The last 2-4 digits of the account number." - }, - "accountType": { - "type": "string", - "description": "The type of the account (e.g., checking, savings)." - }, - "availableBalance": { - "type": "number", - "description": "The available balance of the account." - }, - "currency": { - "$ref": "#/components/schemas/PlaidCurrency" - }, - "currentBalance": { - "type": "number", - "description": "The current balance of the account." - }, - "nickname": { - "type": "string", - "description": "The nickname of the account." - }, - "productName": { - "type": "string", - "description": "The name of the product associated with the account." - }, - "status": { - "type": "string", - "description": "The status of the account." - } - } - }, - "PlaidAccountContact": { - "type": "object", - "description": "Contact information associated with a Plaid account.", - "required": [ - "name", - "addresses", - "emails", - "telephones" - ], - "properties": { - "addresses": { - "type": "array", - "description": "List of addresses associated with the account holder.", - "items": { - "$ref": "#/components/schemas/PlaidAddress" - } - }, - "emails": { - "type": "array", - "description": "List of email addresses associated with the account holder.", - "items": { - "type": "string" - } - }, - "name": { - "$ref": "#/components/schemas/PlaidName" - }, - "relationship": { - "type": "string", - "description": "Relationship of the contact to the account." - }, - "telephones": { - "type": "array", - "description": "List of telephone numbers associated with the account holder.", - "items": { - "$ref": "#/components/schemas/PlaidTelephone" - } - } - } - }, - "PlaidAccountPaymentNetwork": { - "type": "object", - "description": "Payment network details associated with the account.", - "required": [ - "identifier", - "type", - "transferIn", - "transferOut", - "bankId" - ], - "properties": { - "bankId": { - "type": "string", - "description": "The bank ID associated with the account." - }, - "identifier": { - "type": "string", - "description": "The payment network identifier." - }, - "transferIn": { - "type": "boolean", - "description": "Indicates if transfers into the account are supported." - }, - "transferOut": { - "type": "boolean", - "description": "Indicates if transfers out of the account are supported." - }, - "type": { - "type": "string", - "description": "The type of payment network (e.g., ACH, SEPA)." - } - } - }, - "PlaidAccountTransaction": { - "type": "object", - "description": "Descriptor for a Plaid account.", - "required": [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "status", - "transactionId", - "transactionTimestamp" - ], - "properties": { - "accountCategory": { - "type": "string", - "description": "The category of the account (e.g., personal, business)." - }, - "amount": { - "type": "number", - "description": "The amount transacted." - }, - "debitCreditMemo": { - "type": "string", - "description": "Memo for transaction (e.g. CREDIT)" - }, - "description": { - "type": "string", - "description": "The transaction description" - }, - "postedTimestamp": { - "type": "string", - "description": "The timestamp when the transaction was posted." - }, - "status": { - "type": "string", - "description": "The status of the transaction." - }, - "transactionId": { - "type": "string", - "description": "The identifier for the transaction." - }, - "transactionTimestamp": { - "type": "string", - "description": "The timestamp when the transaction occurred." - } - } - }, - "PlaidAddress": { - "type": "object", - "description": "Address information for the account holder.", - "required": [ - "city", - "country", - "line1" - ], - "properties": { - "city": { - "type": "string", - "description": "The city of the address." - }, - "country": { - "type": "string", - "description": "The country of the address (ISO 3166-1 alpha-2 code)." - }, - "line1": { - "type": "string", - "description": "The first line of the address." - }, - "line2": { - "type": "string", - "description": "The second line of the address." - }, - "postalCode": { - "type": "string", - "description": "The postal code of the address." - }, - "region": { - "type": "string", - "description": "The region or state of the address." - } - } - }, - "PlaidCurrency": { - "type": "object", - "description": "Currency information.", - "required": [ - "currencyCode" - ], - "properties": { - "currencyCode": { - "type": "string", - "description": "The ISO 4217 currency code." - } - } - }, - "PlaidCustomer": { - "type": "object", - "description": "A user id for the plaid customer", - "properties": { - "customerId": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "PlaidName": { - "type": "object", - "description": "Name information for the account holder.", - "required": [ - "first", - "last" - ], - "properties": { - "first": { - "type": "string", - "description": "The first name of the account holder." - }, - "last": { - "type": "string", - "description": "The last name of the account holder." - } - } - }, - "PlaidTelephone": { - "type": "object", - "description": "Telephone information for the account holder.", - "required": [ - "country", - "number", - "type" - ], - "properties": { - "country": { - "type": "string", - "description": "The country code for the phone number (e.g., '+1')." - }, - "number": { - "type": "string", - "description": "The phone number." - }, - "type": { - "type": "string", - "description": "The type of phone number (e.g., 'mobile')." - } - } - }, - "Point": { - "type": "object", - "description": "A [GeoJson Point](https://tools.ietf.org/html/rfc7946#section-3.1.2) geometry object.", - "required": [ - "type", - "coordinates" - ], - "properties": { - "coordinates": { - "$ref": "#/components/schemas/Position" - }, - "type": { - "type": "string", - "enum": [ - "Point" - ], - "example": "Point" - } - } - }, - "Poll": { - "type": "object", - "description": "Represent a Poll attached to a Tweet.", - "required": [ - "id", - "options" - ], - "properties": { - "duration_minutes": { - "type": "integer", - "minimum": 5, - "maximum": 10080, - "format": "int32" - }, - "end_datetime": { - "type": "string", - "format": "date-time" - }, - "id": { - "$ref": "#/components/schemas/PollId" - }, - "options": { - "type": "array", - "minItems": 2, - "maxItems": 4, - "items": { - "$ref": "#/components/schemas/PollOption" - } - }, - "voting_status": { - "type": "string", - "enum": [ - "open", - "closed" - ] - } - } - }, - "PollId": { - "type": "string", - "description": "Unique identifier of this poll.", - "pattern": "^[0-9]{1,19}$", - "example": "1365059861688410112" - }, - "PollOption": { - "type": "object", - "description": "Describes a choice in a Poll object.", - "required": [ - "position", - "label", - "votes" - ], - "properties": { - "label": { - "$ref": "#/components/schemas/PollOptionLabel" - }, - "position": { - "type": "integer", - "description": "Position of this choice in the poll." - }, - "votes": { - "type": "integer", - "description": "Number of users who voted for this choice." - } - } - }, - "PollOptionLabel": { - "type": "string", - "description": "The text of a poll choice.", - "minLength": 1, - "maxLength": 25 - }, - "Position": { - "type": "array", - "description": "A [GeoJson Position](https://tools.ietf.org/html/rfc7946#section-3.1.1) in the format `[longitude,latitude]`.", - "minItems": 2, - "maxItems": 2, - "items": { - "type": "number" - }, - "example": [ - -105.18816086351444, - 40.247749999999996 - ] - }, - "PreviewImage": { - "type": "object", - "properties": { - "media_key": { - "type": "object", - "properties": { - "media": { - "$ref": "#/components/schemas/MediaId" - }, - "media_category": { - "type": "string", - "description": "The media category of media", - "enum": [ - "TweetImage" - ], - "default": "TweetImage", - "example": "TweetImage" - } - } - } - } - }, - "PreviousToken": { - "type": "string", - "description": "The previous token.", - "minLength": 1 - }, - "Problem": { - "type": "object", - "description": "An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).", - "required": [ - "type", - "title" - ], - "properties": { - "detail": { - "type": "string" - }, - "status": { - "type": "integer" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "about:blank": "#/components/schemas/GenericProblem", - "https://api.twitter.com/2/problems/client-disconnected": "#/components/schemas/ClientDisconnectedProblem", - "https://api.twitter.com/2/problems/client-forbidden": "#/components/schemas/ClientForbiddenProblem", - "https://api.twitter.com/2/problems/conflict": "#/components/schemas/ConflictProblem", - "https://api.twitter.com/2/problems/disallowed-resource": "#/components/schemas/DisallowedResourceProblem", - "https://api.twitter.com/2/problems/duplicate-rules": "#/components/schemas/DuplicateRuleProblem", - "https://api.twitter.com/2/problems/invalid-request": "#/components/schemas/InvalidRequestProblem", - "https://api.twitter.com/2/problems/invalid-rules": "#/components/schemas/InvalidRuleProblem", - "https://api.twitter.com/2/problems/noncompliant-rules": "#/components/schemas/NonCompliantRulesProblem", - "https://api.twitter.com/2/problems/not-authorized-for-field": "#/components/schemas/FieldUnauthorizedProblem", - "https://api.twitter.com/2/problems/not-authorized-for-resource": "#/components/schemas/ResourceUnauthorizedProblem", - "https://api.twitter.com/2/problems/operational-disconnect": "#/components/schemas/OperationalDisconnectProblem", - "https://api.twitter.com/2/problems/resource-not-found": "#/components/schemas/ResourceNotFoundProblem", - "https://api.twitter.com/2/problems/resource-unavailable": "#/components/schemas/ResourceUnavailableProblem", - "https://api.twitter.com/2/problems/rule-cap": "#/components/schemas/RulesCapProblem", - "https://api.twitter.com/2/problems/streaming-connection": "#/components/schemas/ConnectionExceptionProblem", - "https://api.twitter.com/2/problems/unsupported-authentication": "#/components/schemas/UnsupportedAuthenticationProblem", - "https://api.twitter.com/2/problems/usage-capped": "#/components/schemas/UsageCapExceededProblem" - } - } - }, - "ProcessingInfo": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "check_after_secs": { - "type": "integer", - "description": "Number of seconds to check again for status", - "format": "int32" - }, - "progress_percent": { - "type": "integer", - "description": "Percent of upload progress", - "format": "int32" - }, - "state": { - "type": "string", - "description": "State of upload", - "enum": [ - "succeeded", - "in_progress", - "pending", - "failed" - ] - } - } - }, - "ReplayJobCreateResponse": { - "type": "object", - "description": "Confirmation that the replay job request was accepted.", - "required": [ - "job_id", - "created_at" - ], - "properties": { - "created_at": { - "type": "string", - "description": "The UTC timestamp indicating when the replay job was created.", - "format": "date-time", - "example": "2025-04-24T20:57:15.242Z" - }, - "job_id": { - "type": "string", - "description": "The unique identifier for the initiated replay job.", - "example": "1915510368169844736" - } - } - }, - "ReplySettings": { - "type": "string", - "description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, and following.", - "pattern": "^[A-Za-z]{1,12}$", - "enum": [ - "everyone", - "mentionedUsers", - "following", - "other" - ] - }, - "ReplySettingsWithVerifiedUsers": { - "type": "string", - "description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, subscribers, verified and following.", - "pattern": "^[A-Za-z]{1,12}$", - "enum": [ - "everyone", - "mentionedUsers", - "following", - "other", - "subscribers", - "verified" - ] - }, - "ResourceNotFoundProblem": { - "description": "A problem that indicates that a given Tweet, User, etc. does not exist.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "required": [ - "parameter", - "value", - "resource_id", - "resource_type" - ], - "properties": { - "parameter": { - "type": "string", - "minLength": 1 - }, - "resource_id": { - "type": "string" - }, - "resource_type": { - "type": "string", - "enum": [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "value": { - "type": "string", - "description": "Value will match the schema of the field." - } - } - } - ] - }, - "ResourceUnauthorizedProblem": { - "description": "A problem that indicates you are not allowed to see a particular Tweet, User, etc.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "required": [ - "value", - "resource_id", - "resource_type", - "section", - "parameter" - ], - "properties": { - "parameter": { - "type": "string" - }, - "resource_id": { - "type": "string" - }, - "resource_type": { - "type": "string", - "enum": [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "section": { - "type": "string", - "enum": [ - "data", - "includes" - ] - }, - "value": { - "type": "string" - } - } - } - ] - }, - "ResourceUnavailableProblem": { - "description": "A problem that indicates a particular Tweet, User, etc. is not available to you.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "required": [ - "parameter", - "resource_id", - "resource_type" - ], - "properties": { - "parameter": { - "type": "string", - "minLength": 1 - }, - "resource_id": { - "type": "string" - }, - "resource_type": { - "type": "string", - "enum": [ - "user", - "tweet", - "media", - "list", - "space" - ] - } - } - } - ] - }, - "ResultCount": { - "type": "integer", - "description": "The number of results returned in this response.", - "format": "int32" - }, - "Rule": { - "type": "object", - "description": "A user-provided stream filtering rule.", - "required": [ - "value" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/RuleId" - }, - "tag": { - "$ref": "#/components/schemas/RuleTag" - }, - "value": { - "$ref": "#/components/schemas/RuleValue" - } - } - }, - "RuleId": { - "type": "string", - "description": "Unique identifier of this rule.", - "pattern": "^[0-9]{1,19}$", - "example": "120897978112909812" - }, - "RuleNoId": { - "type": "object", - "description": "A user-provided stream filtering rule.", - "required": [ - "value" - ], - "properties": { - "tag": { - "$ref": "#/components/schemas/RuleTag" - }, - "value": { - "$ref": "#/components/schemas/RuleValue" - } - } - }, - "RuleTag": { - "type": "string", - "description": "A tag meant for the labeling of user provided rules.", - "example": "Non-retweeted coffee Posts" - }, - "RuleValue": { - "type": "string", - "description": "The filterlang value of the rule.", - "example": "coffee -is:retweet" - }, - "RulesCapProblem": { - "description": "You have exceeded the maximum number of rules.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "RulesCount": { - "type": "object", - "description": "A count of user-provided stream filtering rules at the application and project levels.", - "properties": { - "all_project_client_apps": { - "$ref": "#/components/schemas/AllProjectClientApps" - }, - "cap_per_client_app": { - "type": "integer", - "description": "Cap of number of rules allowed per client application", - "format": "int32" - }, - "cap_per_project": { - "type": "integer", - "description": "Cap of number of rules allowed per project", - "format": "int32" - }, - "client_app_rules_count": { - "$ref": "#/components/schemas/AppRulesCount" - }, - "project_rules_count": { - "type": "integer", - "description": "Number of rules for project", - "format": "int32" - } - } - }, - "RulesLookupResponse": { - "type": "object", - "required": [ - "meta" - ], - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Rule" - } - }, - "meta": { - "$ref": "#/components/schemas/RulesResponseMetadata" - } - } - }, - "RulesRequestSummary": { - "oneOf": [ - { - "type": "object", - "description": "A summary of the results of the addition of user-specified stream filtering rules.", - "required": [ - "created", - "not_created", - "valid", - "invalid" - ], - "properties": { - "created": { - "type": "integer", - "description": "Number of user-specified stream filtering rules that were created.", - "format": "int32", - "example": 1 - }, - "invalid": { - "type": "integer", - "description": "Number of invalid user-specified stream filtering rules.", - "format": "int32", - "example": 1 - }, - "not_created": { - "type": "integer", - "description": "Number of user-specified stream filtering rules that were not created.", - "format": "int32", - "example": 1 - }, - "valid": { - "type": "integer", - "description": "Number of valid user-specified stream filtering rules.", - "format": "int32", - "example": 1 - } - } - }, - { - "type": "object", - "required": [ - "deleted", - "not_deleted" - ], - "properties": { - "deleted": { - "type": "integer", - "description": "Number of user-specified stream filtering rules that were deleted.", - "format": "int32" - }, - "not_deleted": { - "type": "integer", - "description": "Number of user-specified stream filtering rules that were not deleted.", - "format": "int32" - } - } - } - ] - }, - "RulesResponseMetadata": { - "type": "object", - "required": [ - "sent" - ], - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "result_count": { - "type": "integer", - "description": "Number of Rules in result set.", - "format": "int32" - }, - "sent": { - "type": "string" - }, - "summary": { - "$ref": "#/components/schemas/RulesRequestSummary" - } - } - }, - "SearchCount": { - "type": "object", - "description": "Represent a Search Count Result.", - "required": [ - "end", - "start", - "tweet_count" - ], - "properties": { - "end": { - "$ref": "#/components/schemas/End" - }, - "start": { - "$ref": "#/components/schemas/Start" - }, - "tweet_count": { - "$ref": "#/components/schemas/TweetCount" - } - } - }, - "SensitiveMediaWarning": { - "type": "object", - "properties": { - "adult_content": { - "type": "boolean", - "description": "Indicates if the content contains adult material", - "example": true - }, - "graphic_violence": { - "type": "boolean", - "description": "Indicates if the content depicts graphic violence", - "example": true - }, - "other": { - "type": "boolean", - "description": "Indicates if the content has other sensitive characteristics", - "example": false - } - } - }, - "SharedInfo": { - "type": "object", - "properties": { - "shared": { - "type": "boolean", - "description": "Indicates if the media is shared in direct messages", - "example": false - } - } - }, - "Space": { - "type": "object", - "description": "", - "required": [ - "id", - "state" - ], - "properties": { - "created_at": { - "type": "string", - "description": "Creation time of the Space.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "creator_id": { - "$ref": "#/components/schemas/UserId" - }, - "ended_at": { - "type": "string", - "description": "End time of the Space.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "host_ids": { - "type": "array", - "description": "The user ids for the hosts of the Space.", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "id": { - "$ref": "#/components/schemas/SpaceId" - }, - "invited_user_ids": { - "type": "array", - "description": "An array of user ids for people who were invited to a Space.", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "is_ticketed": { - "type": "boolean", - "description": "Denotes if the Space is a ticketed Space.", - "example": "false" - }, - "lang": { - "type": "string", - "description": "The language of the Space.", - "example": "en" - }, - "participant_count": { - "type": "integer", - "description": "The number of participants in a Space.", - "format": "int32", - "example": 10 - }, - "scheduled_start": { - "type": "string", - "description": "A date time stamp for when a Space is scheduled to begin.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "speaker_ids": { - "type": "array", - "description": "An array of user ids for people who were speakers in a Space.", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "started_at": { - "type": "string", - "description": "When the Space was started as a date string.", - "format": "date-time", - "example": "2021-7-14T04:35:55Z" - }, - "state": { - "type": "string", - "description": "The current state of the Space.", - "enum": [ - "live", - "scheduled", - "ended" - ], - "example": "live" - }, - "subscriber_count": { - "type": "integer", - "description": "The number of people who have either purchased a ticket or set a reminder for this Space.", - "format": "int32", - "example": 10 - }, - "title": { - "type": "string", - "description": "The title of the Space.", - "example": "Spaces are Awesome" - }, - "topics": { - "type": "array", - "description": "The topics of a Space, as selected by its creator.", - "items": { - "type": "object", - "description": "The X Topic object.", - "required": [ - "id", - "name" - ], - "properties": { - "description": { - "type": "string", - "description": "The description of the given topic." - }, - "id": { - "type": "string", - "description": "An ID suitable for use in the REST API." - }, - "name": { - "type": "string", - "description": "The name of the given topic." - } - }, - "example": { - "description": "All about technology", - "id": "848920371311001600", - "name": "Technology" - } - } - }, - "updated_at": { - "type": "string", - "description": "When the Space was last updated.", - "format": "date-time", - "example": "2021-7-14T04:35:55Z" - } - } - }, - "SpaceId": { - "type": "string", - "description": "The unique identifier of this Space.", - "pattern": "^[a-zA-Z0-9]{1,13}$", - "example": "1SLjjRYNejbKM" - }, - "Start": { - "type": "string", - "description": "The start time of the bucket.", - "format": "date-time" - }, - "Sticker": { - "type": "object", - "properties": { - "aspect_ratio": { - "type": "number", - "description": "width-to-height ratio of the media", - "format": "double", - "example": 1.78 - }, - "group_annotation_id": { - "type": "number", - "description": "A unique identifier for the group of annotations associated with the media", - "format": "long", - "example": 987654321098765 - }, - "id": { - "type": "string", - "description": "Unique identifier for sticker", - "example": "12345" - }, - "sticker_set_annotation_id": { - "type": "number", - "description": "A unique identifier for the sticker set associated with the media", - "format": "long", - "example": 123456789012345 - }, - "transform_a": { - "type": "number", - "description": "Scale or rotate the media on the x-axis", - "format": "double", - "example": 1.0 - }, - "transform_b": { - "type": "number", - "description": "Skew the media on the x-axis", - "format": "double", - "example": 0.0 - }, - "transform_c": { - "type": "number", - "description": "Skew the media on the y-axis", - "format": "double", - "example": 0.0 - }, - "transform_d": { - "type": "number", - "description": "Scale or rotate the media on the y-axis", - "format": "double", - "example": 1.0 - }, - "transform_tx": { - "type": "number", - "description": "Scale or rotate the media on the x-axis", - "format": "double", - "example": 10.5 - }, - "transform_ty": { - "type": "number", - "description": "The vertical translation (shift) value for the media", - "format": "double", - "example": -5.2 - } - } - }, - "StickerInfo": { - "type": "object", - "properties": { - "stickers": { - "type": "array", - "description": "Stickers list must not be empty and should not exceed 25", - "items": { - "$ref": "#/components/schemas/Sticker" - } - } - } - }, - "StreamingLikeResponseV2": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/LikeWithTweetAuthor" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "StreamingTweetResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "SubscriptionsCountGetResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "description": "The count of active subscriptions across all webhooks", - "required": [ - "account_name", - "provisioned_count", - "subscriptions_count_all", - "subscriptions_count_direct_messages" - ], - "properties": { - "account_name": { - "type": "string", - "description": "The account name" - }, - "provisioned_count": { - "type": "string", - "description": "The limit for subscriptions for this app" - }, - "subscriptions_count_all": { - "type": "string", - "description": "The number of active subscriptions across all webhooks" - }, - "subscriptions_count_direct_messages": { - "type": "string", - "description": "The number of active direct message subscriptions" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsCreateRequest": { - "type": "object" - }, - "SubscriptionsCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "subscribed": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "subscribed": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsGetResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "subscribed": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsListGetResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "description": "The list of active subscriptions for a specified webhook", - "required": [ - "application_id", - "webhook_id", - "webhook_url", - "subscriptions" - ], - "properties": { - "application_id": { - "type": "string", - "description": "The application ID" - }, - "subscriptions": { - "type": "array", - "description": "List of active subscriptions for the webhook", - "items": { - "type": "object", - "properties": { - "user_id": { - "type": "string", - "description": "The ID of the user the webhook is subscribed to" - } - } - } - }, - "webhook_id": { - "type": "string", - "description": "The associated webhook ID" - }, - "webhook_url": { - "type": "string", - "description": "The url for the associated webhook" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubtitleLanguageCode": { - "type": "string", - "description": "The language code should be a BCP47 code (e.g. 'EN\", \"SP\")", - "pattern": "^[A-Z]{2}$", - "example": "EN" - }, - "Subtitles": { - "type": "object", - "properties": { - "display_name": { - "type": "string", - "description": "Language name in a human readable form", - "example": "English" - }, - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "language_code": { - "$ref": "#/components/schemas/SubtitleLanguageCode" - } - } - }, - "SubtitlesCreateRequest": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "media_category": { - "$ref": "#/components/schemas/MediaCategorySubtitles" - }, - "subtitles": { - "$ref": "#/components/schemas/Subtitles" - } - } - }, - "SubtitlesCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "id", - "media_category", - "associated_subtitles" - ], - "properties": { - "associated_subtitles": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Subtitles" - } - }, - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "media_category": { - "$ref": "#/components/schemas/MediaCategorySubtitles" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubtitlesDeleteRequest": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "language_code": { - "$ref": "#/components/schemas/SubtitleLanguageCode" - }, - "media_category": { - "$ref": "#/components/schemas/MediaCategorySubtitles" - } - } - }, - "SubtitlesDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "deleted" - ], - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "TimestampedMetrics": { - "type": "object", - "properties": { - "metrics": { - "$ref": "#/components/schemas/Metrics" - }, - "timestamp": { - "type": "string", - "title": "Timestamp", - "description": "ISO8601 Time", - "example": "2025-03-17T06:30:00Z" - } - } - }, - "Topic": { - "type": "object", - "description": "The topic of a Space, as selected by its creator.", - "required": [ - "id", - "name" - ], - "properties": { - "description": { - "type": "string", - "description": "The description of the given topic.", - "example": "All about technology" - }, - "id": { - "$ref": "#/components/schemas/TopicId" - }, - "name": { - "type": "string", - "description": "The name of the given topic.", - "example": "Technology" - } - } - }, - "TopicId": { - "type": "string", - "description": "Unique identifier of this Topic." - }, - "Trend": { - "type": "object", - "description": "A trend.", - "properties": { - "trend_name": { - "type": "string", - "description": "Name of the trend." - }, - "tweet_count": { - "type": "integer", - "description": "Number of Posts in this trend.", - "format": "int32" - } - } - }, - "Tweet": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "description": "Specifies the type of attachments (if any) present in this Tweet.", - "properties": { - "media_keys": { - "type": "array", - "description": "A list of Media Keys for each one of the media attachments (if media are attached).", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/MediaKey" - } - }, - "media_source_tweet_id": { - "type": "array", - "description": "A list of Posts the media on this Tweet was originally posted in. For example, if the media on a tweet is re-used in another Tweet, this refers to the original, source Tweet..", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/TweetId" - } - }, - "poll_ids": { - "type": "array", - "description": "A list of poll IDs (if polls are attached).", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/PollId" - } - } - } - }, - "author_id": { - "$ref": "#/components/schemas/UserId" - }, - "community_id": { - "$ref": "#/components/schemas/CommunityId" - }, - "context_annotations": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/ContextAnnotation" - } - }, - "conversation_id": { - "$ref": "#/components/schemas/TweetId" - }, - "created_at": { - "type": "string", - "description": "Creation time of the Tweet.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "display_text_range": { - "$ref": "#/components/schemas/DisplayTextRange" - }, - "edit_controls": { - "type": "object", - "required": [ - "is_edit_eligible", - "editable_until", - "edits_remaining" - ], - "properties": { - "editable_until": { - "type": "string", - "description": "Time when Tweet is no longer editable.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "edits_remaining": { - "type": "integer", - "description": "Number of times this Tweet can be edited." - }, - "is_edit_eligible": { - "type": "boolean", - "description": "Indicates if this Tweet is eligible to be edited.", - "example": false - } - } - }, - "edit_history_tweet_ids": { - "type": "array", - "description": "A list of Tweet Ids in this Tweet chain.", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/TweetId" - } - }, - "entities": { - "$ref": "#/components/schemas/FullTextEntities" - }, - "geo": { - "type": "object", - "description": "The location tagged on the Tweet, if the user provided one.", - "properties": { - "coordinates": { - "$ref": "#/components/schemas/Point" - }, - "place_id": { - "$ref": "#/components/schemas/PlaceId" - } - } - }, - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "in_reply_to_user_id": { - "$ref": "#/components/schemas/UserId" - }, - "lang": { - "type": "string", - "description": "Language of the Tweet, if detected by X. Returned as a BCP47 language tag.", - "example": "en" - }, - "non_public_metrics": { - "type": "object", - "description": "Nonpublic engagement metrics for the Tweet at the time of the request.", - "properties": { - "impression_count": { - "type": "integer", - "description": "Number of times this Tweet has been viewed.", - "format": "int32" - } - } - }, - "note_tweet": { - "type": "object", - "description": "The full-content of the Tweet, including text beyond 280 characters.", - "properties": { - "entities": { - "type": "object", - "properties": { - "cashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/CashtagEntity" - } - }, - "hashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/HashtagEntity" - } - }, - "mentions": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/MentionEntity" - } - }, - "urls": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UrlEntity" - } - } - } - }, - "text": { - "$ref": "#/components/schemas/NoteTweetText" - } - } - }, - "organic_metrics": { - "type": "object", - "description": "Organic nonpublic engagement metrics for the Tweet at the time of the request.", - "required": [ - "impression_count", - "retweet_count", - "reply_count", - "like_count" - ], - "properties": { - "impression_count": { - "type": "integer", - "description": "Number of times this Tweet has been viewed." - }, - "like_count": { - "type": "integer", - "description": "Number of times this Tweet has been liked." - }, - "reply_count": { - "type": "integer", - "description": "Number of times this Tweet has been replied to." - }, - "retweet_count": { - "type": "integer", - "description": "Number of times this Tweet has been Retweeted." - } - } - }, - "possibly_sensitive": { - "type": "boolean", - "description": "Indicates if this Tweet contains URLs marked as sensitive, for example content suitable for mature audiences.", - "example": false - }, - "promoted_metrics": { - "type": "object", - "description": "Promoted nonpublic engagement metrics for the Tweet at the time of the request.", - "properties": { - "impression_count": { - "type": "integer", - "description": "Number of times this Tweet has been viewed.", - "format": "int32" - }, - "like_count": { - "type": "integer", - "description": "Number of times this Tweet has been liked.", - "format": "int32" - }, - "reply_count": { - "type": "integer", - "description": "Number of times this Tweet has been replied to.", - "format": "int32" - }, - "retweet_count": { - "type": "integer", - "description": "Number of times this Tweet has been Retweeted.", - "format": "int32" - } - } - }, - "public_metrics": { - "type": "object", - "description": "Engagement metrics for the Tweet at the time of the request.", - "required": [ - "retweet_count", - "reply_count", - "like_count", - "impression_count", - "bookmark_count" - ], - "properties": { - "bookmark_count": { - "type": "integer", - "description": "Number of times this Tweet has been bookmarked.", - "format": "int32" - }, - "impression_count": { - "type": "integer", - "description": "Number of times this Tweet has been viewed.", - "format": "int32" - }, - "like_count": { - "type": "integer", - "description": "Number of times this Tweet has been liked." - }, - "quote_count": { - "type": "integer", - "description": "Number of times this Tweet has been quoted." - }, - "reply_count": { - "type": "integer", - "description": "Number of times this Tweet has been replied to." - }, - "retweet_count": { - "type": "integer", - "description": "Number of times this Tweet has been Retweeted." - } - } - }, - "referenced_tweets": { - "type": "array", - "description": "A list of Posts this Tweet refers to. For example, if the parent Tweet is a Retweet, a Quoted Tweet or a Reply, it will include the related Tweet referenced to by its parent.", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "type", - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "type": { - "type": "string", - "enum": [ - "retweeted", - "quoted", - "replied_to" - ] - } - } - } - }, - "reply_settings": { - "$ref": "#/components/schemas/ReplySettingsWithVerifiedUsers" - }, - "scopes": { - "type": "object", - "description": "The scopes for this tweet", - "properties": { - "followers": { - "type": "boolean", - "description": "Indicates if this Tweet is viewable by followers without the Tweet ID", - "example": false - } - } - }, - "source": { - "type": "string", - "description": "This is deprecated." - }, - "text": { - "$ref": "#/components/schemas/TweetText" - }, - "username": { - "$ref": "#/components/schemas/UserName" - }, - "withheld": { - "$ref": "#/components/schemas/TweetWithheld" - } - }, - "example": { - "author_id": "2244994945", - "created_at": "Wed Jan 06 18:40:40 +0000 2021", - "id": "1346889436626259968", - "text": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet https:\/\/t.co\/56a0vZUx7i", - "username": "XDevelopers" - } - }, - "TweetComplianceData": { - "description": "Tweet compliance data.", - "oneOf": [ - { - "$ref": "#/components/schemas/TweetDeleteComplianceSchema" - }, - { - "$ref": "#/components/schemas/TweetWithheldComplianceSchema" - }, - { - "$ref": "#/components/schemas/TweetDropComplianceSchema" - }, - { - "$ref": "#/components/schemas/TweetUndropComplianceSchema" - }, - { - "$ref": "#/components/schemas/TweetEditComplianceSchema" - } - ] - }, - "TweetComplianceSchema": { - "type": "object", - "required": [ - "tweet", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "quote_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "tweet": { - "type": "object", - "required": [ - "id", - "author_id" - ], - "properties": { - "author_id": { - "$ref": "#/components/schemas/UserId" - }, - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetComplianceStreamResponse": { - "description": "Tweet compliance stream events.", - "oneOf": [ - { - "type": "object", - "description": "Compliance event.", - "required": [ - "data" - ], - "properties": { - "data": { - "$ref": "#/components/schemas/TweetComplianceData" - } - } - }, - { - "type": "object", - "required": [ - "errors" - ], - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - ] - }, - "TweetCount": { - "type": "integer", - "description": "The count for the bucket." - }, - "TweetCreateRequest": { - "type": "object", - "properties": { - "card_uri": { - "type": "string", - "description": "Card Uri Parameter. This is mutually exclusive from Quote Tweet Id, Poll, Media, and Direct Message Deep Link." - }, - "community_id": { - "$ref": "#/components/schemas/CommunityId" - }, - "direct_message_deep_link": { - "type": "string", - "description": "Link to take the conversation from the public timeline to a private Direct Message." - }, - "for_super_followers_only": { - "type": "boolean", - "description": "Exclusive Tweet for super followers.", - "default": false - }, - "geo": { - "type": "object", - "description": "Place ID being attached to the Tweet for geo location.", - "properties": { - "place_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "media": { - "type": "object", - "description": "Media information being attached to created Tweet. This is mutually exclusive from Quote Tweet Id, Poll, and Card URI.", - "required": [ - "media_ids" - ], - "properties": { - "media_ids": { - "type": "array", - "description": "A list of Media Ids to be attached to a created Tweet.", - "minItems": 1, - "maxItems": 4, - "items": { - "$ref": "#/components/schemas/MediaId" - } - }, - "tagged_user_ids": { - "type": "array", - "description": "A list of User Ids to be tagged in the media for created Tweet.", - "minItems": 0, - "maxItems": 10, - "items": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "additionalProperties": false - }, - "nullcast": { - "type": "boolean", - "description": "Nullcasted (promoted-only) Posts do not appear in the public timeline and are not served to followers.", - "default": false - }, - "poll": { - "type": "object", - "description": "Poll options for a Tweet with a poll. This is mutually exclusive from Media, Quote Tweet Id, and Card URI.", - "required": [ - "options", - "duration_minutes" - ], - "properties": { - "duration_minutes": { - "type": "integer", - "description": "Duration of the poll in minutes.", - "minimum": 5, - "maximum": 10080, - "format": "int32" - }, - "options": { - "type": "array", - "minItems": 2, - "maxItems": 4, - "items": { - "type": "string", - "description": "The text of a poll choice.", - "minLength": 1, - "maxLength": 25 - } - }, - "reply_settings": { - "type": "string", - "description": "Settings to indicate who can reply to the Tweet.", - "enum": [ - "following", - "mentionedUsers", - "subscribers", - "verified" - ] - } - }, - "additionalProperties": false - }, - "quote_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "reply": { - "type": "object", - "description": "Tweet information of the Tweet being replied to.", - "required": [ - "in_reply_to_tweet_id" - ], - "properties": { - "exclude_reply_user_ids": { - "type": "array", - "description": "A list of User Ids to be excluded from the reply Tweet.", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "in_reply_to_tweet_id": { - "$ref": "#/components/schemas/TweetId" - } - }, - "additionalProperties": false - }, - "reply_settings": { - "type": "string", - "description": "Settings to indicate who can reply to the Tweet.", - "enum": [ - "following", - "mentionedUsers", - "subscribers", - "verified" - ] - }, - "text": { - "$ref": "#/components/schemas/TweetText" - } - }, - "additionalProperties": false - }, - "TweetCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "id", - "text" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "text": { - "$ref": "#/components/schemas/TweetText" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "TweetDeleteComplianceSchema": { - "type": "object", - "required": [ - "delete" - ], - "properties": { - "delete": { - "$ref": "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "deleted" - ], - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "TweetDropComplianceSchema": { - "type": "object", - "required": [ - "drop" - ], - "properties": { - "drop": { - "$ref": "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetEditComplianceObjectSchema": { - "type": "object", - "required": [ - "tweet", - "event_at", - "initial_tweet_id", - "edit_tweet_ids" - ], - "properties": { - "edit_tweet_ids": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/TweetId" - } - }, - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "initial_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "tweet": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetEditComplianceSchema": { - "type": "object", - "required": [ - "tweet_edit" - ], - "properties": { - "tweet_edit": { - "$ref": "#/components/schemas/TweetEditComplianceObjectSchema" - } - } - }, - "TweetHideRequest": { - "type": "object", - "required": [ - "hidden" - ], - "properties": { - "hidden": { - "type": "boolean" - } - } - }, - "TweetHideResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "hidden": { - "type": "boolean" - } - } - } - } - }, - "TweetId": { - "type": "string", - "description": "Unique identifier of this Tweet. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", - "pattern": "^[0-9]{1,19}$", - "example": "1346889436626259968" - }, - "TweetLabelData": { - "description": "Tweet label data.", - "oneOf": [ - { - "$ref": "#/components/schemas/TweetNoticeSchema" - }, - { - "$ref": "#/components/schemas/TweetUnviewableSchema" - } - ] - }, - "TweetLabelStreamResponse": { - "description": "Tweet label stream events.", - "oneOf": [ - { - "type": "object", - "description": "Tweet Label event.", - "required": [ - "data" - ], - "properties": { - "data": { - "$ref": "#/components/schemas/TweetLabelData" - } - } - }, - { - "type": "object", - "required": [ - "errors" - ], - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - ] - }, - "TweetNotice": { - "type": "object", - "required": [ - "tweet", - "event_type", - "event_at", - "application" - ], - "properties": { - "application": { - "type": "string", - "description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", - "example": "apply" - }, - "details": { - "type": "string", - "description": "Information shown on the Tweet label" - }, - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "event_type": { - "type": "string", - "description": "The type of label on the Tweet", - "example": "misleading" - }, - "extended_details_url": { - "type": "string", - "description": "Link to more information about this kind of label" - }, - "label_title": { - "type": "string", - "description": "Title/header of the Tweet label" - }, - "tweet": { - "type": "object", - "required": [ - "id", - "author_id" - ], - "properties": { - "author_id": { - "$ref": "#/components/schemas/UserId" - }, - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetNoticeSchema": { - "type": "object", - "required": [ - "public_tweet_notice" - ], - "properties": { - "public_tweet_notice": { - "$ref": "#/components/schemas/TweetNotice" - } - } - }, - "TweetTakedownComplianceSchema": { - "type": "object", - "required": [ - "tweet", - "withheld_in_countries", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "quote_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "tweet": { - "type": "object", - "required": [ - "id", - "author_id" - ], - "properties": { - "author_id": { - "$ref": "#/components/schemas/UserId" - }, - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - }, - "withheld_in_countries": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/CountryCode" - } - } - } - }, - "TweetText": { - "type": "string", - "description": "The content of the Tweet.", - "example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet https:\/\/t.co\/56a0vZUx7i" - }, - "TweetUndropComplianceSchema": { - "type": "object", - "required": [ - "undrop" - ], - "properties": { - "undrop": { - "$ref": "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetUnviewable": { - "type": "object", - "required": [ - "tweet", - "event_at", - "application" - ], - "properties": { - "application": { - "type": "string", - "description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", - "example": "apply" - }, - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "tweet": { - "type": "object", - "required": [ - "id", - "author_id" - ], - "properties": { - "author_id": { - "$ref": "#/components/schemas/UserId" - }, - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetUnviewableSchema": { - "type": "object", - "required": [ - "public_tweet_unviewable" - ], - "properties": { - "public_tweet_unviewable": { - "$ref": "#/components/schemas/TweetUnviewable" - } - } - }, - "TweetWithheld": { - "type": "object", - "description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", - "required": [ - "copyright", - "country_codes" - ], - "properties": { - "copyright": { - "type": "boolean", - "description": "Indicates if the content is being withheld for on the basis of copyright infringement." - }, - "country_codes": { - "type": "array", - "description": "Provides a list of countries where this content is not available.", - "minItems": 1, - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/CountryCode" - } - }, - "scope": { - "type": "string", - "description": "Indicates whether the content being withheld is the `tweet` or a `user`.", - "enum": [ - "tweet", - "user" - ] - } - } - }, - "TweetWithheldComplianceSchema": { - "type": "object", - "required": [ - "withheld" - ], - "properties": { - "withheld": { - "$ref": "#/components/schemas/TweetTakedownComplianceSchema" - } - } - }, - "UnlikeComplianceSchema": { - "type": "object", - "required": [ - "favorite", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "favorite": { - "type": "object", - "required": [ - "id", - "user_id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "user_id": { - "$ref": "#/components/schemas/UserId" - } - } - } - } - }, - "UnsupportedAuthenticationProblem": { - "description": "A problem that indicates that the authentication used is not supported.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "UploadExpiration": { - "type": "string", - "description": "Expiration time of the upload URL.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "UploadSource": { - "type": "object", - "properties": { - "upload_source": { - "type": "string", - "description": "Records the source (e.g., app, device) from which the media was uploaded", - "example": "gallery" - } - } - }, - "UploadUrl": { - "type": "string", - "description": "URL to which the user will upload their Tweet or user IDs.", - "format": "uri" - }, - "Url": { - "type": "string", - "description": "A validly formatted URL.", - "format": "uri", - "example": "https://developer.twitter.com/en/docs/twitter-api" - }, - "UrlEntity": { - "description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref": "#/components/schemas/UrlFields" - } - ] - }, - "UrlEntityDm": { - "description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref": "#/components/schemas/UrlFields" - } - ] - }, - "UrlFields": { - "type": "object", - "description": "Represent the portion of text recognized as a URL.", - "required": [ - "url" - ], - "properties": { - "description": { - "type": "string", - "description": "Description of the URL landing page.", - "example": "This is a description of the website." - }, - "display_url": { - "type": "string", - "description": "The URL as displayed in the X client.", - "example": "twittercommunity.com/t/introducing-…" - }, - "expanded_url": { - "$ref": "#/components/schemas/Url" - }, - "images": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UrlImage" - } - }, - "media_key": { - "$ref": "#/components/schemas/MediaKey" - }, - "status": { - "$ref": "#/components/schemas/HttpStatusCode" - }, - "title": { - "type": "string", - "description": "Title of the page the URL points to.", - "example": "Introducing the v2 follow lookup endpoints" - }, - "unwound_url": { - "type": "string", - "description": "Fully resolved url.", - "format": "uri", - "example": "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118" - }, - "url": { - "$ref": "#/components/schemas/Url" - } - } - }, - "UrlImage": { - "type": "object", - "description": "Represent the information for the URL image.", - "properties": { - "height": { - "$ref": "#/components/schemas/MediaHeight" - }, - "url": { - "$ref": "#/components/schemas/Url" - }, - "width": { - "$ref": "#/components/schemas/MediaWidth" - } - } - }, - "Usage": { - "type": "object", - "description": "Usage per client app", - "properties": { - "cap_reset_day": { - "type": "integer", - "description": "Number of days left for the Tweet cap to reset", - "format": "int32" - }, - "daily_client_app_usage": { - "type": "array", - "description": "The daily usage breakdown for each Client Application a project", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/ClientAppUsage" - } - }, - "daily_project_usage": { - "type": "object", - "description": "The daily usage breakdown for a project", - "properties": { - "project_id": { - "type": "integer", - "description": "The unique identifier for this project", - "format": "int32" - }, - "usage": { - "type": "array", - "description": "The usage value", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UsageFields" - } - } - } - }, - "project_cap": { - "type": "integer", - "description": "Total number of Posts that can be read in this project per month", - "format": "int32" - }, - "project_id": { - "type": "string", - "description": "The unique identifier for this project", - "format": "^[0-9]{1,19}$" - }, - "project_usage": { - "type": "integer", - "description": "The number of Posts read in this project", - "format": "int32" - } - } - }, - "UsageCapExceededProblem": { - "description": "A problem that indicates that a usage cap has been exceeded.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "period": { - "type": "string", - "enum": [ - "Daily", - "Monthly" - ] - }, - "scope": { - "type": "string", - "enum": [ - "Account", - "Product" - ] - } - } - } - ] - }, - "UsageFields": { - "type": "object", - "description": "Represents the data for Usage", - "properties": { - "date": { - "type": "string", - "description": "The time period for the usage", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "usage": { - "type": "integer", - "description": "The usage value", - "format": "int32" - } - } - }, - "User": { - "type": "object", - "description": "The X User object.", - "required": [ - "id", - "name", - "username" - ], - "properties": { - "affiliation": { - "type": "object", - "description": "Metadata about a user's affiliation.", - "properties": { - "badge_url": { - "type": "string", - "description": "The badge URL corresponding to the affiliation.", - "format": "uri" - }, - "description": { - "type": "string", - "description": "The description of the affiliation." - }, - "url": { - "type": "string", - "description": "The URL, if available, to details about an affiliation.", - "format": "uri" - }, - "user_id": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UserId" - } - } - } - }, - "connection_status": { - "type": "array", - "description": "Returns detailed information about the relationship between two users.", - "minItems": 0, - "items": { - "type": "string", - "description": "Type of connection between users.", - "enum": [ - "follow_request_received", - "follow_request_sent", - "blocking", - "followed_by", - "following", - "muting" - ] - } - }, - "created_at": { - "type": "string", - "description": "Creation time of this User.", - "format": "date-time" - }, - "description": { - "type": "string", - "description": "The text of this User's profile description (also known as bio), if the User provided one." - }, - "entities": { - "type": "object", - "description": "A list of metadata found in the User's profile description.", - "properties": { - "description": { - "$ref": "#/components/schemas/FullTextEntities" - }, - "url": { - "type": "object", - "description": "Expanded details for the URL specified in the User's profile, with start and end indices.", - "properties": { - "urls": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UrlEntity" - } - } - } - } - } - }, - "id": { - "$ref": "#/components/schemas/UserId" - }, - "location": { - "type": "string", - "description": "The location specified in the User's profile, if the User provided one. As this is a freeform value, it may not indicate a valid location, but it may be fuzzily evaluated when performing searches with location queries." - }, - "most_recent_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "name": { - "type": "string", - "description": "The friendly name of this User, as shown on their profile." - }, - "pinned_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "profile_banner_url": { - "type": "string", - "description": "The URL to the profile banner for this User.", - "format": "uri" - }, - "profile_image_url": { - "type": "string", - "description": "The URL to the profile image for this User.", - "format": "uri" - }, - "protected": { - "type": "boolean", - "description": "Indicates if this User has chosen to protect their Posts (in other words, if this User's Posts are private)." - }, - "public_metrics": { - "type": "object", - "description": "A list of metrics for this User.", - "required": [ - "followers_count", - "following_count", - "tweet_count", - "listed_count" - ], - "properties": { - "followers_count": { - "type": "integer", - "description": "Number of Users who are following this User." - }, - "following_count": { - "type": "integer", - "description": "Number of Users this User is following." - }, - "like_count": { - "type": "integer", - "description": "The number of likes created by this User." - }, - "listed_count": { - "type": "integer", - "description": "The number of lists that include this User." - }, - "tweet_count": { - "type": "integer", - "description": "The number of Posts (including Retweets) posted by this User." - } - } - }, - "receives_your_dm": { - "type": "boolean", - "description": "Indicates if you can send a DM to this User" - }, - "subscription_type": { - "type": "string", - "description": "The X Blue subscription type of the user, eg: Basic, Premium, PremiumPlus or None.", - "enum": [ - "Basic", - "Premium", - "PremiumPlus", - "None" - ] - }, - "url": { - "type": "string", - "description": "The URL specified in the User's profile." - }, - "username": { - "$ref": "#/components/schemas/UserName" - }, - "verified": { - "type": "boolean", - "description": "Indicate if this User is a verified X User." - }, - "verified_type": { - "type": "string", - "description": "The X Blue verified type of the user, eg: blue, government, business or none.", - "enum": [ - "blue", - "government", - "business", - "none" - ] - }, - "withheld": { - "$ref": "#/components/schemas/UserWithheld" - } - }, - "example": { - "created_at": "2013-12-14T04:35:55Z", - "id": "2244994945", - "name": "X Dev", - "protected": false, - "username": "TwitterDev" - } - }, - "UserComplianceData": { - "description": "User compliance data.", - "oneOf": [ - { - "$ref": "#/components/schemas/UserProtectComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserUnprotectComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserDeleteComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserUndeleteComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserSuspendComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserUnsuspendComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserWithheldComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserScrubGeoSchema" - }, - { - "$ref": "#/components/schemas/UserProfileModificationComplianceSchema" - } - ] - }, - "UserComplianceSchema": { - "type": "object", - "required": [ - "user", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "user": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/UserId" - } - } - } - } - }, - "UserComplianceStreamResponse": { - "description": "User compliance stream events.", - "oneOf": [ - { - "type": "object", - "description": "User compliance event.", - "required": [ - "data" - ], - "properties": { - "data": { - "$ref": "#/components/schemas/UserComplianceData" - } - } - }, - { - "type": "object", - "required": [ - "errors" - ], - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - ] - }, - "UserDeleteComplianceSchema": { - "type": "object", - "required": [ - "user_delete" - ], - "properties": { - "user_delete": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserId": { - "type": "string", - "description": "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", - "pattern": "^[0-9]{1,19}$", - "example": "2244994945" - }, - "UserIdMatchesAuthenticatedUser": { - "type": "string", - "description": "Unique identifier of this User. The value must be the same as the authenticated user.", - "example": "2244994945" - }, - "UserName": { - "type": "string", - "description": "The X handle (screen name) of this user.", - "pattern": "^[A-Za-z0-9_]{1,15}$" - }, - "UserProfileModificationComplianceSchema": { - "type": "object", - "required": [ - "user_profile_modification" - ], - "properties": { - "user_profile_modification": { - "$ref": "#/components/schemas/UserProfileModificationObjectSchema" - } - } - }, - "UserProfileModificationObjectSchema": { - "type": "object", - "required": [ - "user", - "profile_field", - "new_value", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "new_value": { - "type": "string" - }, - "profile_field": { - "type": "string" - }, - "user": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/UserId" - } - } - } - } - }, - "UserProtectComplianceSchema": { - "type": "object", - "required": [ - "user_protect" - ], - "properties": { - "user_protect": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserScrubGeoObjectSchema": { - "type": "object", - "required": [ - "user", - "up_to_tweet_id", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "up_to_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "user": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/UserId" - } - } - } - } - }, - "UserScrubGeoSchema": { - "type": "object", - "required": [ - "scrub_geo" - ], - "properties": { - "scrub_geo": { - "$ref": "#/components/schemas/UserScrubGeoObjectSchema" - } - } - }, - "UserSearchQueryVnext": { - "type": "string", - "description": "The the search string by which to query for users.", - "pattern": "^[A-Za-z0-9_' ]{1,50}$" - }, - "UserSuspendComplianceSchema": { - "type": "object", - "required": [ - "user_suspend" - ], - "properties": { - "user_suspend": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserTakedownComplianceSchema": { - "type": "object", - "required": [ - "user", - "withheld_in_countries", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "user": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "withheld_in_countries": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/CountryCode" - } - } - } - }, - "UserUndeleteComplianceSchema": { - "type": "object", - "required": [ - "user_undelete" - ], - "properties": { - "user_undelete": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserUnprotectComplianceSchema": { - "type": "object", - "required": [ - "user_unprotect" - ], - "properties": { - "user_unprotect": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserUnsuspendComplianceSchema": { - "type": "object", - "required": [ - "user_unsuspend" - ], - "properties": { - "user_unsuspend": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserWithheld": { - "type": "object", - "description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", - "required": [ - "country_codes" - ], - "properties": { - "country_codes": { - "type": "array", - "description": "Provides a list of countries where this content is not available.", - "minItems": 1, - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/CountryCode" - } - }, - "scope": { - "type": "string", - "description": "Indicates that the content being withheld is a `user`.", - "enum": [ - "user" - ] - } - } - }, - "UserWithheldComplianceSchema": { - "type": "object", - "required": [ - "user_withheld" - ], - "properties": { - "user_withheld": { - "$ref": "#/components/schemas/UserTakedownComplianceSchema" - } - } - }, - "UsersDMBlockCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "blocked": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersDMUnBlockCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "blocked": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersFollowingCreateRequest": { - "type": "object", - "required": [ - "target_user_id" - ], - "properties": { - "target_user_id": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "UsersFollowingCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "following": { - "type": "boolean" - }, - "pending_follow": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersFollowingDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "following": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersLikesCreateRequest": { - "type": "object", - "required": [ - "tweet_id" - ], - "properties": { - "tweet_id": { - "$ref": "#/components/schemas/TweetId" - } - } - }, - "UsersLikesCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "liked": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersLikesDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "liked": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersRetweetsCreateRequest": { - "type": "object", - "required": [ - "tweet_id" - ], - "properties": { - "tweet_id": { - "$ref": "#/components/schemas/TweetId" - } + } + } + } + } + }, + "FoundMediaOrigin" : { + "type" : "object", + "properties" : { + "id" : { + "type" : "string", + "description" : "Unique Identifier of media within provider ( <= 24 characters ))", + "example" : "u5BzatR15TZ04" + }, + "provider" : { + "type" : "string", + "description" : "The media provider (e.g., 'giphy') that sourced the media ( <= 8 Characters )", + "example" : "giphy" + } + } + }, + "FullTextEntities" : { + "type" : "object", + "properties" : { + "annotations" : { + "type" : "array", + "minItems" : 1, + "items" : { + "description" : "Annotation for entities based on the Tweet text.", + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveInclusive" }, - "additionalProperties": false - }, - "UsersRetweetsCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "retweeted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersRetweetsDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "retweeted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Variant": { - "type": "object", - "properties": { - "bit_rate": { - "type": "integer", - "description": "The bit rate of the media." - }, - "content_type": { - "type": "string", - "description": "The content type of the media." - }, - "url": { - "type": "string", - "description": "The url to the media.", - "format": "uri" - } - } - }, - "Variants": { - "type": "array", - "description": "An array of all available variants of the media.", - "items": { - "$ref": "#/components/schemas/Variant" - } - }, - "Video": { - "allOf": [ - { - "$ref": "#/components/schemas/Media" - }, - { - "type": "object", - "properties": { - "duration_ms": { - "type": "integer" - }, - "non_public_metrics": { - "type": "object", - "description": "Nonpublic engagement metrics for the Media at the time of the request.", - "properties": { - "playback_0_count": { - "type": "integer", - "description": "Number of users who made it through 0% of the video.", - "format": "int32" - }, - "playback_100_count": { - "type": "integer", - "description": "Number of users who made it through 100% of the video.", - "format": "int32" - }, - "playback_25_count": { - "type": "integer", - "description": "Number of users who made it through 25% of the video.", - "format": "int32" - }, - "playback_50_count": { - "type": "integer", - "description": "Number of users who made it through 50% of the video.", - "format": "int32" - }, - "playback_75_count": { - "type": "integer", - "description": "Number of users who made it through 75% of the video.", - "format": "int32" - } - } - }, - "organic_metrics": { - "type": "object", - "description": "Organic nonpublic engagement metrics for the Media at the time of the request.", - "properties": { - "playback_0_count": { - "type": "integer", - "description": "Number of users who made it through 0% of the video.", - "format": "int32" - }, - "playback_100_count": { - "type": "integer", - "description": "Number of users who made it through 100% of the video.", - "format": "int32" - }, - "playback_25_count": { - "type": "integer", - "description": "Number of users who made it through 25% of the video.", - "format": "int32" - }, - "playback_50_count": { - "type": "integer", - "description": "Number of users who made it through 50% of the video.", - "format": "int32" - }, - "playback_75_count": { - "type": "integer", - "description": "Number of users who made it through 75% of the video.", - "format": "int32" - }, - "view_count": { - "type": "integer", - "description": "Number of times this video has been viewed.", - "format": "int32" - } - } - }, - "preview_image_url": { - "type": "string", - "format": "uri" - }, - "promoted_metrics": { - "type": "object", - "description": "Promoted nonpublic engagement metrics for the Media at the time of the request.", - "properties": { - "playback_0_count": { - "type": "integer", - "description": "Number of users who made it through 0% of the video.", - "format": "int32" - }, - "playback_100_count": { - "type": "integer", - "description": "Number of users who made it through 100% of the video.", - "format": "int32" - }, - "playback_25_count": { - "type": "integer", - "description": "Number of users who made it through 25% of the video.", - "format": "int32" - }, - "playback_50_count": { - "type": "integer", - "description": "Number of users who made it through 50% of the video.", - "format": "int32" - }, - "playback_75_count": { - "type": "integer", - "description": "Number of users who made it through 75% of the video.", - "format": "int32" - }, - "view_count": { - "type": "integer", - "description": "Number of times this video has been viewed.", - "format": "int32" - } - } - }, - "public_metrics": { - "type": "object", - "description": "Engagement metrics for the Media at the time of the request.", - "properties": { - "view_count": { - "type": "integer", - "description": "Number of times this video has been viewed.", - "format": "int32" - } - } - }, - "variants": { - "$ref": "#/components/schemas/Variants" - } - } - } - ] - }, - "WebhookConfig": { - "type": "object", - "description": "A Webhook Configuration", - "required": [ - "id", - "url", - "valid", - "created_at" - ], - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "url": { - "type": "string", - "description": "The callback URL of the webhook." - }, - "valid": { - "type": "boolean" - } - } - }, - "WebhookConfigCreateRequest": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "type": "string", - "minLength": 1, - "maxLength": 200 - } - } - }, - "WebhookConfigCreateResponse": { - "type": "object", - "description": "A Webhook Configuration", - "required": [ - "id", - "url", - "valid", - "created_at" - ], - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "url": { - "type": "string", - "description": "The callback URL of the webhook." - }, - "valid": { - "type": "boolean" - } - } - }, - "WebhookConfigDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "WebhookConfigId": { - "type": "string", - "description": "The unique identifier of this webhook config.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "WebhookConfigPutResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "attempted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } + { + "type" : "object", + "description" : "Represents the data for the annotation.", + "properties" : { + "normalized_text" : { + "type" : "string", + "description" : "Text used to determine annotation.", + "example" : "Barack Obama" + }, + "probability" : { + "type" : "number", + "description" : "Confidence factor for annotation type.", + "minimum" : 0, + "maximum" : 1, + "format" : "double" + }, + "type" : { + "type" : "string", + "description" : "Annotation type.", + "example" : "Person" + } + } + } + ] + } + }, + "cashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/CashtagEntity" + } + }, + "hashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/HashtagEntity" + } + }, + "mentions" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/MentionEntity" + } + }, + "urls" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UrlEntity" + } + } + } + }, + "GenericProblem" : { + "description" : "A generic problem with no additional information beyond that provided by the HTTP status code.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "Geo" : { + "type" : "object", + "required" : [ + "type", + "bbox", + "properties" + ], + "properties" : { + "bbox" : { + "type" : "array", + "minItems" : 4, + "maxItems" : 4, + "items" : { + "type" : "number", + "minimum" : -180, + "maximum" : 180, + "format" : "double" + }, + "example" : [ + -105.193475, + 39.60973, + -105.053164, + 39.761974 + ] + }, + "geometry" : { + "$ref" : "#/components/schemas/Point" + }, + "properties" : { + "type" : "object" + }, + "type" : { + "type" : "string", + "enum" : [ + "Feature" + ] + } + } + }, + "GeoRestrictions" : { + "oneOf" : [ + { + "type" : "object", + "required" : [ + "whitelisted_country_codes", + "blacklisted_country_codes" + ], + "properties" : { + "blacklisted_country_codes" : { + "type" : "array", + "description" : "List of blacklisted country codes", + "minItems" : 0, + "maxItems" : 0, + "items" : { + "type" : "string", + "description" : "Country code in ISO 3166-1 alpha-2 format", + "pattern" : "^[a-zA-Z]{2}$", + "example" : "us" + } + }, + "whitelisted_country_codes" : { + "type" : "array", + "description" : "List of whitelisted country codes", + "minItems" : 1, + "items" : { + "type" : "string", + "description" : "Country code in ISO 3166-1 alpha-2 format", + "pattern" : "^[a-zA-Z]{2}$", + "example" : "us" + } + } + } + }, + { + "type" : "object", + "required" : [ + "whitelisted_country_codes", + "blacklisted_country_codes" + ], + "properties" : { + "blacklisted_country_codes" : { + "type" : "array", + "description" : "List of blacklisted country codes", + "minItems" : 1, + "items" : { + "type" : "string", + "description" : "Country code in ISO 3166-1 alpha-2 format", + "pattern" : "^[a-zA-Z]{2}$", + "example" : "us" + } + }, + "whitelisted_country_codes" : { + "type" : "array", + "description" : "List of whitelisted country codes", + "minItems" : 0, + "maxItems" : 0, + "items" : { + "type" : "string", + "description" : "Country code in ISO 3166-1 alpha-2 format", + "pattern" : "^[a-zA-Z]{2}$", + "example" : "us" + } + } + } + } + ] + }, + "Get2CommunitiesIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Community" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2CommunitiesSearchResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Community" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + } + } + } + } + }, + "Get2ComplianceJobsIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/ComplianceJob" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2ComplianceJobsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/ComplianceJob" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "type" : "object", + "properties" : { + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmConversationsIdDmEventsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/DmEvent" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmConversationsWithParticipantIdDmEventsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/DmEvent" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmEventsEventIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/DmEvent" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2DmEventsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/DmEvent" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2FdxAccountsAccountidContactResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/PlaidAccountContact" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidPayment-networksResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/PlaidAccountPaymentNetwork" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/PlaidAccount" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidTransactionsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/PlaidAccountTransaction" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxCustomersCurrentResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/PlaidCustomer" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2Insights28hrResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Engagement" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2InsightsHistoricalResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Engagement" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2LikesFirehoseStreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/LikeWithTweetAuthor" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2LikesSample10StreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/LikeWithTweetAuthor" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2ListsIdFollowersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2ListsIdMembersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2ListsIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/List" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2ListsIdTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2MediaAnalyticsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/MediaAnalytics" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2MediaMediaKeyResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Media" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2MediaResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Media" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2NotesSearchNotesWrittenResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Note" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2NotesSearchPostsEligibleForNotesResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesByCreatorIdsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Space" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesIdBuyersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Space" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2SpacesIdTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Space" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2SpacesSearchResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Space" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TrendsByWoeidWoeidResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Trend" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2TweetsAnalyticsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Analytics" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2TweetsCountsAllResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/SearchCount" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "total_tweet_count" : { + "$ref" : "#/components/schemas/Aggregate" + } + } + } + } + }, + "Get2TweetsCountsRecentResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/SearchCount" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" } + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "total_tweet_count" : { + "$ref" : "#/components/schemas/Aggregate" + } + } + } + } + }, + "Get2TweetsFirehoseStreamLangEnResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangJaResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangKoResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangPtResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsIdLikingUsersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdQuoteTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsIdRetweetedByResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdRetweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSample10StreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSampleStreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSearchAllResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsSearchRecentResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsSearchStreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSearchStreamRulesCountsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/RulesCount" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2UsageTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Usage" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2UsersByResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2UsersByUsernameUsernameResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/User" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2UsersIdBlockingResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdBookmarksResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowedListsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/List" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowingResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdLikedTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdListMembershipsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/List" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdMentionsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdMutingResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdOwnedListsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/List" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdPinnedListsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/List" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/User" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2UsersIdTimelinesReverseChronologicalResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersMeResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/User" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2UsersPersonalizedTrendsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/PersonalizedTrend" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2UsersRepostsOfMeResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2UsersSearchResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + } + } + } + } + }, + "Get2WebhooksResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/WebhookConfig" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "type" : "object", + "properties" : { + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "HashtagEntity" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref" : "#/components/schemas/HashtagFields" + } + ] + }, + "HashtagFields" : { + "type" : "object", + "description" : "Represent the portion of text recognized as a Hashtag, and its start and end position within the text.", + "required" : [ + "tag" + ], + "properties" : { + "tag" : { + "type" : "string", + "description" : "The text of the Hashtag.", + "example" : "MondayMotivation" + } + } + }, + "HttpStatusCode" : { + "type" : "integer", + "description" : "HTTP Status Code.", + "minimum" : 100, + "maximum" : 599 + }, + "InvalidRequestProblem" : { + "description" : "A problem that indicates this request is invalid.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "type" : "object", + "properties" : { + "message" : { + "type" : "string" + }, + "parameters" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + } + } + } + } + } + ] + }, + "InvalidRuleProblem" : { + "description" : "The rule you have submitted is invalid.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "JobId" : { + "type" : "string", + "description" : "Compliance Job ID.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1372966999991541762" + }, + "KillAllConnectionsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "killed_connections" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "LikeComplianceSchema" : { + "type" : "object", + "required" : [ + "delete" + ], + "properties" : { + "delete" : { + "$ref" : "#/components/schemas/UnlikeComplianceSchema" + } + } + }, + "LikeId" : { + "type" : "string", + "description" : "The unique identifier of this Like.", + "pattern" : "^[A-Za-z0-9_]{1,40}$", + "example" : "8ba4f34e6235d905a46bac021d98e923" + }, + "LikeWithTweetAuthor" : { + "type" : "object", + "description" : "A Like event, with the tweet author user and the tweet being liked", + "properties" : { + "created_at" : { + "type" : "string", + "description" : "Creation time of the Tweet.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "id" : { + "$ref" : "#/components/schemas/LikeId" + }, + "liked_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "timestamp_ms" : { + "type" : "integer", + "description" : "Timestamp in milliseconds of creation.", + "format" : "int32" + }, + "tweet_author_id" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "LikesComplianceStreamResponse" : { + "description" : "Likes compliance stream events.", + "oneOf" : [ + { + "type" : "object", + "description" : "Compliance event.", + "required" : [ + "data" + ], + "properties" : { + "data" : { + "$ref" : "#/components/schemas/LikeComplianceSchema" + } + } + }, + { + "type" : "object", + "required" : [ + "errors" + ], + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + ] + }, + "List" : { + "type" : "object", + "description" : "A X List is a curated group of accounts.", + "required" : [ + "id", + "name" + ], + "properties" : { + "created_at" : { + "type" : "string", + "format" : "date-time" + }, + "description" : { + "type" : "string" + }, + "follower_count" : { + "type" : "integer" + }, + "id" : { + "$ref" : "#/components/schemas/ListId" + }, + "member_count" : { + "type" : "integer" + }, + "name" : { + "type" : "string", + "description" : "The name of this List." + }, + "owner_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "private" : { + "type" : "boolean" + } + } + }, + "ListAddUserRequest" : { + "type" : "object", + "required" : [ + "user_id" + ], + "properties" : { + "user_id" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "ListCreateRequest" : { + "type" : "object", + "required" : [ + "name" + ], + "properties" : { + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 100 + }, + "name" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 25 + }, + "private" : { + "type" : "boolean", + "default" : false + } + } + }, + "ListCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "description" : "A X List is a curated group of accounts.", + "required" : [ + "id", + "name" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/ListId" + }, + "name" : { + "type" : "string", + "description" : "The name of this List." + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListFollowedRequest" : { + "type" : "object", + "required" : [ + "list_id" + ], + "properties" : { + "list_id" : { + "$ref" : "#/components/schemas/ListId" + } + } + }, + "ListFollowedResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "following" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListId" : { + "type" : "string", + "description" : "The unique identifier of this List.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "ListMutateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "is_member" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListPinnedRequest" : { + "type" : "object", + "required" : [ + "list_id" + ], + "properties" : { + "list_id" : { + "$ref" : "#/components/schemas/ListId" + } + } + }, + "ListPinnedResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "pinned" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListUnpinResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "pinned" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListUpdateRequest" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 100 + }, + "name" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 25 + }, + "private" : { + "type" : "boolean" + } + } + }, + "ListUpdateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "updated" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ManagementInfo" : { + "type" : "object", + "properties" : { + "managed" : { + "type" : "boolean", + "description" : "Indicates if the media is managed by Media Studio", + "example" : false + } + } + }, + "Media" : { + "type" : "object", + "required" : [ + "type" + ], + "properties" : { + "height" : { + "$ref" : "#/components/schemas/MediaHeight" + }, + "media_key" : { + "$ref" : "#/components/schemas/MediaKey" + }, + "type" : { + "type" : "string" + }, + "width" : { + "$ref" : "#/components/schemas/MediaWidth" + } }, - "parameters": { - "AnalyticsFieldsParameter": { - "name": "analytics.fields", - "in": "query", - "description": "A comma separated list of Analytics fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Analytics object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "app_install_attempts", - "app_opens", - "bookmarks", - "detail_expands", - "email_tweet", - "engagements", - "follows", - "hashtag_clicks", - "id", - "impressions", - "likes", - "media_views", - "permalink_clicks", - "quote_tweets", - "replies", - "retweets", - "shares", - "timestamp", - "unfollows", - "url_clicks", - "user_profile_clicks" - ] - }, - "example": [ - "app_install_attempts", - "app_opens", - "bookmarks", - "detail_expands", - "email_tweet", - "engagements", - "follows", - "hashtag_clicks", - "id", - "impressions", - "likes", - "media_views", - "permalink_clicks", - "quote_tweets", - "replies", - "retweets", - "shares", - "timestamp", - "unfollows", - "url_clicks", - "user_profile_clicks" - ] - }, - "explode": false, - "style": "form" - }, - "CommunityFieldsParameter": { - "name": "community.fields", - "in": "query", - "description": "A comma separated list of Community fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Community object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "access", - "created_at", - "description", - "id", - "join_policy", - "member_count", - "name" - ] - }, - "example": [ - "access", - "created_at", - "description", - "id", - "join_policy", - "member_count", - "name" - ] - }, - "explode": false, - "style": "form" - }, - "ComplianceJobFieldsParameter": { - "name": "compliance_job.fields", - "in": "query", - "description": "A comma separated list of ComplianceJob fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a ComplianceJob object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "download_expires_at", - "download_url", - "id", - "name", - "resumable", - "status", - "type", - "upload_expires_at", - "upload_url" - ] - }, - "example": [ - "created_at", - "download_expires_at", - "download_url", - "id", - "name", - "resumable", - "status", - "type", - "upload_expires_at", - "upload_url" - ] - }, - "explode": false, - "style": "form" - }, - "DmConversationFieldsParameter": { - "name": "dm_conversation.fields", - "in": "query", - "description": "A comma separated list of DmConversation fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a DmConversation object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "id" - ] - }, - "example": [ - "id" - ] - }, - "explode": false, - "style": "form" - }, - "DmEventExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [DmEvent](#DmEvent) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "attachments.media_keys", - "participant_ids", - "referenced_tweets.id", - "sender_id" - ] - }, - "example": [ - "attachments.media_keys", - "participant_ids", - "referenced_tweets.id", - "sender_id" - ] - }, - "explode": false, - "style": "form" - }, - "DmEventFieldsParameter": { - "name": "dm_event.fields", - "in": "query", - "description": "A comma separated list of DmEvent fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a DmEvent object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "attachments", - "created_at", - "dm_conversation_id", - "entities", - "event_type", - "id", - "participant_ids", - "referenced_tweets", - "sender_id", - "text" - ] - }, - "example": [ - "attachments", - "created_at", - "dm_conversation_id", - "entities", - "event_type", - "id", - "participant_ids", - "referenced_tweets", - "sender_id", - "text" - ] - }, - "explode": false, - "style": "form" - }, - "EngagementFieldsParameter": { - "name": "engagement.fields", - "in": "query", - "description": "A comma separated list of Engagement fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Engagement object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "errors", - "measurement" - ] - }, - "example": [ - "errors", - "measurement" - ] - }, - "explode": false, - "style": "form" - }, - "LikeExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [Like](#Like) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "liked_tweet_id" - ] - }, - "example": [ - "liked_tweet_id" - ] - }, - "explode": false, - "style": "form" - }, - "LikeFieldsParameter": { - "name": "like.fields", - "in": "query", - "description": "A comma separated list of Like fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Like object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "example": [ - "created_at", - "id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "explode": false, - "style": "form" - }, - "LikeWithTweetAuthorExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [LikeWithTweetAuthor](#LikeWithTweetAuthor) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "liked_tweet_author_id", - "liked_tweet_id" - ] - }, - "example": [ - "liked_tweet_author_id", - "liked_tweet_id" - ] - }, - "explode": false, - "style": "form" - }, - "LikeWithTweetAuthorFieldsParameter": { - "name": "like_with_tweet_author.fields", - "in": "query", - "description": "A comma separated list of LikeWithTweetAuthor fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a LikeWithTweetAuthor object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "id", - "liked_tweet_author_id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "example": [ - "created_at", - "id", - "liked_tweet_author_id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "explode": false, - "style": "form" - }, - "ListExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [List](#List) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "owner_id" - ] - }, - "example": [ - "owner_id" - ] - }, - "explode": false, - "style": "form" - }, - "ListFieldsParameter": { - "name": "list.fields", - "in": "query", - "description": "A comma separated list of List fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a List object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "description", - "follower_count", - "id", - "member_count", - "name", - "owner_id", - "private" - ] - }, - "example": [ - "created_at", - "description", - "follower_count", - "id", - "member_count", - "name", - "owner_id", - "private" - ] - }, - "explode": false, - "style": "form" - }, - "MediaAnalyticsFieldsParameter": { - "name": "media_analytics.fields", - "in": "query", - "description": "A comma separated list of MediaAnalytics fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a MediaAnalytics object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "cta_url_clicks", - "cta_watch_clicks", - "media_key", - "play_from_tap", - "playback25", - "playback50", - "playback75", - "playback_complete", - "playback_start", - "timestamp", - "video_views", - "watch_time_ms" - ] - }, - "example": [ - "cta_url_clicks", - "cta_watch_clicks", - "media_key", - "play_from_tap", - "playback25", - "playback50", - "playback75", - "playback_complete", - "playback_start", - "timestamp", - "video_views", - "watch_time_ms" - ] - }, - "explode": false, - "style": "form" - }, - "MediaFieldsParameter": { - "name": "media.fields", - "in": "query", - "description": "A comma separated list of Media fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Media object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "alt_text", - "duration_ms", - "height", - "media_key", - "non_public_metrics", - "organic_metrics", - "preview_image_url", - "promoted_metrics", - "public_metrics", - "type", - "url", - "variants", - "width" - ] - }, - "example": [ - "alt_text", - "duration_ms", - "height", - "media_key", - "non_public_metrics", - "organic_metrics", - "preview_image_url", - "promoted_metrics", - "public_metrics", - "type", - "url", - "variants", - "width" - ] - }, - "explode": false, - "style": "form" - }, - "NoteFieldsParameter": { - "name": "note.fields", - "in": "query", - "description": "A comma separated list of Note fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Note object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "id", - "status", - "test_result" - ] - }, - "example": [ - "id", - "status", - "test_result" - ] - }, - "explode": false, - "style": "form" - }, - "PersonalizedTrendFieldsParameter": { - "name": "personalized_trend.fields", - "in": "query", - "description": "A comma separated list of PersonalizedTrend fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PersonalizedTrend object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "category", - "post_count", - "trend_name", - "trending_since" - ] - }, - "example": [ - "category", - "post_count", - "trend_name", - "trending_since" - ] - }, - "explode": false, - "style": "form" - }, - "PlaceFieldsParameter": { - "name": "place.fields", - "in": "query", - "description": "A comma separated list of Place fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Place object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "contained_within", - "country", - "country_code", - "full_name", - "geo", - "id", - "name", - "place_type" - ] - }, - "example": [ - "contained_within", - "country", - "country_code", - "full_name", - "geo", - "id", - "name", - "place_type" - ] - }, - "explode": false, - "style": "form" - }, - "PlaidAccountContactFieldsParameter": { - "name": "plaid_account_contact.fields", - "in": "query", - "description": "A comma separated list of PlaidAccountContact fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PlaidAccountContact object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "addresses", - "emails", - "holders", - "telephones" - ] - }, - "example": [ - "addresses", - "emails", - "holders", - "telephones" - ] - }, - "explode": false, - "style": "form" - }, - "PlaidAccountFieldsParameter": { - "name": "plaid_account.fields", - "in": "query", - "description": "A comma separated list of PlaidAccount fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PlaidAccount object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "accountCategory", - "accountId", - "accountNumberDisplay", - "accountType", - "availableBalance", - "currency", - "currentBalance", - "nickname", - "productName", - "status" - ] - }, - "example": [ - "accountCategory", - "accountId", - "accountNumberDisplay", - "accountType", - "availableBalance", - "currency", - "currentBalance", - "nickname", - "productName", - "status" - ] - }, - "explode": false, - "style": "form" - }, - "PlaidAccountPaymentNetworkFieldsParameter": { - "name": "plaid_account_payment_network.fields", - "in": "query", - "description": "A comma separated list of PlaidAccountPaymentNetwork fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PlaidAccountPaymentNetwork object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "bankId", - "identifier", - "transferIn", - "transferOut", - "type" - ] - }, - "example": [ - "bankId", - "identifier", - "transferIn", - "transferOut", - "type" - ] - }, - "explode": false, - "style": "form" - }, - "PlaidAccountTransactionFieldsParameter": { - "name": "plaid_account_transaction.fields", - "in": "query", - "description": "A comma separated list of PlaidAccountTransaction fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PlaidAccountTransaction object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "postedTimestamp", - "status", - "transactionId", - "transactionTimestamp" - ] - }, - "example": [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "postedTimestamp", - "status", - "transactionId", - "transactionTimestamp" - ] - }, - "explode": false, - "style": "form" - }, - "PlaidCustomerFieldsParameter": { - "name": "plaid_customer.fields", - "in": "query", - "description": "A comma separated list of PlaidCustomer fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PlaidCustomer object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "customerId" - ] - }, - "example": [ - "customerId" - ] - }, - "explode": false, - "style": "form" - }, - "PollFieldsParameter": { - "name": "poll.fields", - "in": "query", - "description": "A comma separated list of Poll fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Poll object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "duration_minutes", - "end_datetime", - "id", - "options", - "voting_status" - ] - }, - "example": [ - "duration_minutes", - "end_datetime", - "id", - "options", - "voting_status" - ] - }, - "explode": false, - "style": "form" - }, - "RulesCountFieldsParameter": { - "name": "rules_count.fields", - "in": "query", - "description": "A comma separated list of RulesCount fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a RulesCount object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "all_project_client_apps", - "cap_per_client_app", - "cap_per_project", - "client_app_rules_count", - "project_rules_count" - ] - }, - "example": [ - "all_project_client_apps", - "cap_per_client_app", - "cap_per_project", - "client_app_rules_count", - "project_rules_count" - ] - }, - "explode": false, - "style": "form" - }, - "SearchCountFieldsParameter": { - "name": "search_count.fields", - "in": "query", - "description": "A comma separated list of SearchCount fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a SearchCount object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "end", - "start", - "tweet_count" - ] - }, - "example": [ - "end", - "start", - "tweet_count" - ] - }, - "explode": false, - "style": "form" - }, - "SpaceExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [Space](#Space) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "creator_id", - "host_ids", - "invited_user_ids", - "speaker_ids", - "topic_ids" - ] - }, - "example": [ - "creator_id", - "host_ids", - "invited_user_ids", - "speaker_ids", - "topic_ids" - ] - }, - "explode": false, - "style": "form" - }, - "SpaceFieldsParameter": { - "name": "space.fields", - "in": "query", - "description": "A comma separated list of Space fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Space object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "creator_id", - "ended_at", - "host_ids", - "id", - "invited_user_ids", - "is_ticketed", - "lang", - "participant_count", - "scheduled_start", - "speaker_ids", - "started_at", - "state", - "subscriber_count", - "title", - "topic_ids", - "updated_at" - ] - }, - "example": [ - "created_at", - "creator_id", - "ended_at", - "host_ids", - "id", - "invited_user_ids", - "is_ticketed", - "lang", - "participant_count", - "scheduled_start", - "speaker_ids", - "started_at", - "state", - "subscriber_count", - "title", - "topic_ids", - "updated_at" - ] - }, - "explode": false, - "style": "form" - }, - "TopicFieldsParameter": { - "name": "topic.fields", - "in": "query", - "description": "A comma separated list of Topic fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Topic object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "description", - "id", - "name" - ] - }, - "example": [ - "description", - "id", - "name" - ] - }, - "explode": false, - "style": "form" - }, - "TrendFieldsParameter": { - "name": "trend.fields", - "in": "query", - "description": "A comma separated list of Trend fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Trend object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "trend_name", - "tweet_count" - ] - }, - "example": [ - "trend_name", - "tweet_count" - ] - }, - "explode": false, - "style": "form" - }, - "TweetExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [Tweet](#Tweet) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "article.cover_media", - "article.media_entities", - "attachments.media_keys", - "attachments.media_source_tweet", - "attachments.poll_ids", - "author_id", - "edit_history_tweet_ids", - "entities.mentions.username", - "geo.place_id", - "in_reply_to_user_id", - "entities.note.mentions.username", - "referenced_tweets.id", - "referenced_tweets.id.attachments.media_keys", - "referenced_tweets.id.author_id" - ] - }, - "example": [ - "article.cover_media", - "article.media_entities", - "attachments.media_keys", - "attachments.media_source_tweet", - "attachments.poll_ids", - "author_id", - "edit_history_tweet_ids", - "entities.mentions.username", - "geo.place_id", - "in_reply_to_user_id", - "entities.note.mentions.username", - "referenced_tweets.id", - "referenced_tweets.id.attachments.media_keys", - "referenced_tweets.id.author_id" - ] - }, - "explode": false, - "style": "form" - }, - "TweetFieldsParameter": { - "name": "tweet.fields", - "in": "query", - "description": "A comma separated list of Tweet fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Tweet object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "article", - "attachments", - "author_id", - "card_uri", - "community_id", - "context_annotations", - "conversation_id", - "created_at", - "display_text_range", - "edit_controls", - "edit_history_tweet_ids", - "entities", - "geo", - "id", - "in_reply_to_user_id", - "lang", - "media_metadata", - "non_public_metrics", - "note_tweet", - "organic_metrics", - "possibly_sensitive", - "promoted_metrics", - "public_metrics", - "referenced_tweets", - "reply_settings", - "scopes", - "source", - "text", - "withheld" - ] - }, - "example": [ - "article", - "attachments", - "author_id", - "card_uri", - "community_id", - "context_annotations", - "conversation_id", - "created_at", - "display_text_range", - "edit_controls", - "edit_history_tweet_ids", - "entities", - "geo", - "id", - "in_reply_to_user_id", - "lang", - "media_metadata", - "non_public_metrics", - "note_tweet", - "organic_metrics", - "possibly_sensitive", - "promoted_metrics", - "public_metrics", - "referenced_tweets", - "reply_settings", - "scopes", - "source", - "text", - "withheld" - ] - }, - "explode": false, - "style": "form" - }, - "UsageFieldsParameter": { - "name": "usage.fields", - "in": "query", - "description": "A comma separated list of Usage fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Usage object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "cap_reset_day", - "daily_client_app_usage", - "daily_project_usage", - "project_cap", - "project_id", - "project_usage" - ] - }, - "example": [ - "cap_reset_day", - "daily_client_app_usage", - "daily_project_usage", - "project_cap", - "project_id", - "project_usage" - ] - }, - "explode": false, - "style": "form" - }, - "UserExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [User](#User) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "affiliation.user_id", - "most_recent_tweet_id", - "pinned_tweet_id" - ] - }, - "example": [ - "affiliation.user_id", - "most_recent_tweet_id", - "pinned_tweet_id" - ] + "discriminator" : { + "propertyName" : "type", + "mapping" : { + "animated_gif" : "#/components/schemas/AnimatedGif", + "photo" : "#/components/schemas/Photo", + "video" : "#/components/schemas/Video" + } + } + }, + "MediaAnalytics" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "media_key" : { + "$ref" : "#/components/schemas/MediaKey" + }, + "timestamped_metrics" : { + "type" : "array", + "title" : "Timestamped Metrics", + "description" : "Array containing metrics data along with the timestamps of their recording.", + "items" : { + "$ref" : "#/components/schemas/MediaTimestampedMetrics" + } + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "MediaCategory" : { + "type" : "string", + "description" : "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size, video duration) and enable advanced features.", + "enum" : [ + "amplify_video", + "tweet_gif", + "tweet_image", + "tweet_video", + "dm_gif", + "dm_image", + "dm_video", + "subtitles" + ], + "example" : "tweet_video" + }, + "MediaCategoryOneShot" : { + "type" : "string", + "description" : "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size) and enable advanced features.", + "enum" : [ + "tweet_image", + "dm_image", + "subtitles" + ], + "example" : "tweet_image" + }, + "MediaCategorySubtitles" : { + "type" : "string", + "description" : "The media category of uploaded media to which subtitles should be added/deleted", + "enum" : [ + "AmplifyVideo", + "TweetVideo" + ], + "example" : "TweetVideo" + }, + "MediaHeight" : { + "type" : "integer", + "description" : "The height of the media in pixels.", + "minimum" : 0 + }, + "MediaId" : { + "type" : "string", + "description" : "The unique identifier of this Media.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "MediaKey" : { + "type" : "string", + "description" : "The Media Key identifier for this attachment.", + "pattern" : "^([0-9]+)_([0-9]+)$" + }, + "MediaMetrics" : { + "type" : "object", + "properties" : { + "cta_url_clicks" : { + "type" : "integer", + "title" : "CTA URL Clicks", + "description" : "Tracks the number of clicks on a call-to-action URL" + }, + "cta_watch_clicks" : { + "type" : "integer", + "title" : "CTA Watch Clicks", + "description" : "Tracks the number of clicks to watch a video or media content" + }, + "play_from_tap" : { + "type" : "integer", + "title" : "Play From Tap", + "description" : "Tracks the number of times a video or media is played from a user tap" + }, + "playback25" : { + "type" : "integer", + "title" : "Playback 25%", + "description" : "Tracks the number of times a video reaches 25% of its duration" + }, + "playback50" : { + "type" : "integer", + "title" : "Playback 50%", + "description" : "Tracks the number of times a video reaches 50% of its duration" + }, + "playback75" : { + "type" : "integer", + "title" : "Playback 75%", + "description" : "Tracks the number of times a video reaches 75% of its duration" + }, + "playback_complete" : { + "type" : "integer", + "title" : "Playback Complete", + "description" : "Tracks the number of times a video is played to completion" + }, + "playback_start" : { + "type" : "integer", + "title" : "Playback Start", + "description" : "Tracks the number of times a video playback is initiated" + }, + "video_views" : { + "type" : "integer", + "title" : "Video Views", + "description" : "Tracks the number of times a video is viewed" + }, + "watch_time_ms" : { + "type" : "integer", + "title" : "Watch Time (ms)", + "description" : "Tracks the total time spent watching a video, measured in milliseconds" + } + } + }, + "MediaPayloadBinary" : { + "type" : "string", + "description" : "The file to upload.", + "format" : "binary" + }, + "MediaPayloadByte" : { + "type" : "string", + "description" : "The file to upload.", + "format" : "byte" + }, + "MediaSegments" : { + "oneOf" : [ + { + "type" : "integer", + "description" : "An integer value representing the media upload segment.", + "minimum" : 0, + "maximum" : 999, + "format" : "int32" + }, + { + "type" : "string", + "description" : "An integer value representing the media upload segment.", + "pattern" : "^[0-9]{1,3}$", + "format" : "integer" + } + ] + }, + "MediaTimestampedMetrics" : { + "type" : "object", + "properties" : { + "metrics" : { + "$ref" : "#/components/schemas/MediaMetrics" + }, + "timestamp" : { + "type" : "string", + "title" : "Timestamp", + "description" : "ISO8601 Time", + "example" : "2025-03-17T06:30:00Z" + } + } + }, + "MediaUploadAppendRequest" : { + "anyOf" : [ + { + "type" : "object", + "required" : [ + "media", + "segment_index" + ], + "properties" : { + "media" : { + "$ref" : "#/components/schemas/MediaPayloadBinary" + }, + "segment_index" : { + "$ref" : "#/components/schemas/MediaSegments" + } + } + }, + { + "type" : "object", + "required" : [ + "media", + "segment_index" + ], + "properties" : { + "media" : { + "$ref" : "#/components/schemas/MediaPayloadByte" + }, + "segment_index" : { + "$ref" : "#/components/schemas/MediaSegments" + } + } + } + ] + }, + "MediaUploadAppendResponse" : { + "type" : "object", + "description" : "A response from getting a media upload request status.", + "required" : [ + "meta" + ], + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "expires_at" : { + "type" : "integer", + "description" : "Unix epoch time in seconds after when the upload session expires.", + "format" : "int64" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "MediaUploadConfigRequest" : { + "type" : "object", + "properties" : { + "additional_owners" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "media_category" : { + "$ref" : "#/components/schemas/MediaCategory" + }, + "media_type" : { + "type" : "string", + "description" : "The type of media.", + "enum" : [ + "video/mp4", + "video/webm", + "video/mp2t", + "video/quicktime", + "text/srt", + "text/vtt", + "image/jpeg", + "image/gif", + "image/bmp", + "image/png", + "image/webp", + "image/pjpeg", + "image/tiff", + "model/gltf-binary", + "model/vnd.usdz+zip" + ], + "example" : "video/mp4" + }, + "shared" : { + "type" : "boolean", + "description" : "Whether this media is shared or not." + }, + "total_bytes" : { + "type" : "integer", + "description" : "The total size of the media upload in bytes.", + "minimum" : 0, + "maximum" : 17179869184 + } + }, + "additionalProperties" : false + }, + "MediaUploadRequestOneShot" : { + "type" : "object", + "required" : [ + "media", + "media_category" + ], + "properties" : { + "additional_owners" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "media" : { + "anyOf" : [ + { + "$ref" : "#/components/schemas/MediaPayloadBinary" + }, + { + "$ref" : "#/components/schemas/MediaPayloadByte" + } + ] + }, + "media_category" : { + "$ref" : "#/components/schemas/MediaCategoryOneShot" + }, + "media_type" : { + "type" : "string", + "description" : "The type of image or subtitle.", + "enum" : [ + "text/srt", + "text/vtt", + "image/jpeg", + "image/bmp", + "image/png", + "image/webp", + "image/pjpeg", + "image/tiff" + ], + "example" : "image/png" + }, + "shared" : { + "type" : "boolean", + "description" : "Whether this media is shared or not.", + "default" : false + } + }, + "additionalProperties" : false + }, + "MediaUploadResponse" : { + "type" : "object", + "description" : "A response from getting a media upload request status.", + "required" : [ + "meta" + ], + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "id", + "media_key" + ], + "properties" : { + "expires_after_secs" : { + "type" : "integer", + "description" : "Number of seconds after which upload session expires.", + "format" : "int32" + }, + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "media_key" : { + "$ref" : "#/components/schemas/MediaKey" + }, + "processing_info" : { + "$ref" : "#/components/schemas/ProcessingInfo" + }, + "size" : { + "type" : "integer", + "description" : "Size of the upload", + "format" : "int32" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "MediaWidth" : { + "type" : "integer", + "description" : "The width of the media in pixels.", + "minimum" : 0 + }, + "MentionEntity" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref" : "#/components/schemas/MentionFields" + } + ] + }, + "MentionFields" : { + "type" : "object", + "description" : "Represent the portion of text recognized as a User mention, and its start and end position within the text.", + "required" : [ + "username" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/UserId" + }, + "username" : { + "$ref" : "#/components/schemas/UserName" + } + } + }, + "MetadataCreateRequest" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "metadata" : { + "type" : "object", + "properties" : { + "allow_download_status" : { + "$ref" : "#/components/schemas/AllowDownloadStatus" + }, + "alt_text" : { + "$ref" : "#/components/schemas/AltText" + }, + "audience_policy" : { + "$ref" : "#/components/schemas/AudiencePolicy" + }, + "content_expiration" : { + "$ref" : "#/components/schemas/ContentExpiration" + }, + "domain_restrictions" : { + "$ref" : "#/components/schemas/DomainRestrictions" + }, + "found_media_origin" : { + "$ref" : "#/components/schemas/FoundMediaOrigin" + }, + "geo_restrictions" : { + "$ref" : "#/components/schemas/GeoRestrictions" + }, + "management_info" : { + "$ref" : "#/components/schemas/ManagementInfo" + }, + "preview_image" : { + "$ref" : "#/components/schemas/PreviewImage" + }, + "sensitive_media_warning" : { + "$ref" : "#/components/schemas/SensitiveMediaWarning" + }, + "shared_info" : { + "$ref" : "#/components/schemas/SharedInfo" + }, + "sticker_info" : { + "$ref" : "#/components/schemas/StickerInfo" + }, + "upload_source" : { + "$ref" : "#/components/schemas/UploadSource" + } + } + } + } + }, + "MetadataCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "associated_metadata" : { + "type" : "object", + "properties" : { + "allow_download_status" : { + "$ref" : "#/components/schemas/AllowDownloadStatus" + }, + "alt_text" : { + "$ref" : "#/components/schemas/AltText" + }, + "audience_policy" : { + "$ref" : "#/components/schemas/AudiencePolicy" + }, + "content_expiration" : { + "$ref" : "#/components/schemas/ContentExpiration" + }, + "domain_restrictions" : { + "$ref" : "#/components/schemas/DomainRestrictions" + }, + "found_media_origin" : { + "$ref" : "#/components/schemas/FoundMediaOrigin" + }, + "geo_restrictions" : { + "$ref" : "#/components/schemas/GeoRestrictions" + }, + "management_info" : { + "$ref" : "#/components/schemas/ManagementInfo" + }, + "preview_image" : { + "$ref" : "#/components/schemas/PreviewImage" + }, + "sensitive_media_warning" : { + "$ref" : "#/components/schemas/SensitiveMediaWarning" + }, + "shared_info" : { + "$ref" : "#/components/schemas/SharedInfo" + }, + "sticker_info" : { + "$ref" : "#/components/schemas/StickerInfo" + }, + "upload_source" : { + "$ref" : "#/components/schemas/UploadSource" + } + } + }, + "id" : { + "$ref" : "#/components/schemas/MediaId" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Metrics" : { + "type" : "object", + "properties" : { + "app_install_attempts" : { + "type" : "integer", + "title" : "App Install Attempts", + "description" : "Tracks number of App Install Attempts" + }, + "app_opens" : { + "type" : "integer", + "title" : "App Opens", + "description" : "Tracks number of App opens" + }, + "detail_expands" : { + "type" : "integer", + "title" : "Detail Expands", + "description" : "Tracks number of Detail expands" + }, + "email_tweet" : { + "type" : "integer", + "title" : "Email Tweet", + "description" : "Tracks number of Email Tweet actions" + }, + "engagements" : { + "type" : "integer", + "title" : "Engagements", + "description" : "Tracks total Engagements" + }, + "follows" : { + "type" : "integer", + "title" : "Follows", + "description" : "Tracks number of Follows" + }, + "hashtag_clicks" : { + "type" : "integer", + "title" : "Hashtag Clicks", + "description" : "Tracks number of Hashtag clicks" + }, + "impressions" : { + "type" : "integer", + "title" : "Impressions", + "description" : "Tracks number of Impressions" + }, + "likes" : { + "type" : "integer", + "title" : "Likes", + "description" : "Tracks number of Likes" + }, + "link_clicks" : { + "type" : "integer", + "title" : "Link Clicks", + "description" : "Tracks number of Link clicks" + }, + "media_engagements" : { + "type" : "integer", + "title" : "Media Engagements", + "description" : "Tracks number of Media engagements" + }, + "media_views" : { + "type" : "integer", + "title" : "Media Views", + "description" : "Tracks number of Media views" + }, + "permalink_clicks" : { + "type" : "integer", + "title" : "Permalink Clicks", + "description" : "Tracks number of Permalink clicks" + }, + "profile_visits" : { + "type" : "integer", + "title" : "Profile Visits", + "description" : "Tracks number of Profile visits" + }, + "quote_tweets" : { + "type" : "integer", + "title" : "Quote Tweets", + "description" : "Tracks number of Quote Tweets" + }, + "replies" : { + "type" : "integer", + "title" : "Replies", + "description" : "Tracks number of Replies" + }, + "retweets" : { + "type" : "integer", + "title" : "Retweets", + "description" : "Tracks number of Retweets" + }, + "url_clicks" : { + "type" : "integer", + "title" : "URL Clicks", + "description" : "Tracks number of URL clicks" + }, + "user_profile_clicks" : { + "type" : "integer", + "title" : "User Profile Clicks", + "description" : "Tracks number of User Profile clicks" + } + } + }, + "MisleadingTags" : { + "type" : "string", + "description" : "Community Note misleading tags type.", + "enum" : [ + "disputed_claim_as_fact", + "factual_error", + "manipulated_media", + "misinterpreted_satire", + "missing_important_context", + "other", + "outdated_information" + ] + }, + "MuteUserMutationResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "muting" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "MuteUserRequest" : { + "type" : "object", + "required" : [ + "target_user_id" + ], + "properties" : { + "target_user_id" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "NewestId" : { + "type" : "string", + "description" : "The newest id in this response." + }, + "NextToken" : { + "type" : "string", + "description" : "The next token.", + "minLength" : 1 + }, + "NonCompliantRulesProblem" : { + "description" : "A problem that indicates the user's rule set is not compliant.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "Note" : { + "type" : "object", + "description" : "A X Community Note is a note on a Post.", + "required" : [ + "id", + "post_id", + "note_info" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/NoteId" + }, + "info" : { + "$ref" : "#/components/schemas/NoteInfo" + }, + "post_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "status" : { + "$ref" : "#/components/schemas/NoteRatingStatus" + }, + "test_result" : { + "$ref" : "#/components/schemas/NoteTestResult" + } + } + }, + "NoteClassification" : { + "type" : "string", + "description" : "Community Note classification type.", + "enum" : [ + "misinformed_or_potentially_misleading", + "not_misleading" + ] + }, + "NoteId" : { + "type" : "string", + "description" : "The unique identifier of this Community Note.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "NoteInfo" : { + "type" : "object", + "description" : "A X Community Note is a note on a Post.", + "required" : [ + "text", + "classification", + "misleading_tags", + "trustworthy_sources" + ], + "properties" : { + "classification" : { + "$ref" : "#/components/schemas/NoteClassification" + }, + "misleading_tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MisleadingTags" + } + }, + "text" : { + "type" : "string", + "description" : "The text summary in the Community Note.", + "pattern" : "^(?=.*https?://\\S+).+$" + }, + "trustworthy_sources" : { + "type" : "boolean", + "description" : "Whether the note provided trustworthy links." + } + }, + "additionalProperties" : false + }, + "NoteRatingStatus" : { + "type" : "string", + "description" : "Community Note rating status. Only returned when test result is false", + "enum" : [ + "currently_rated_helpful", + "currently_rated_not_helpful", + "firm_reject", + "insufficient_consensus", + "minimum_ratings_not_met", + "needs_more_ratings", + "needs_your_help" + ] + }, + "NoteTestResult" : { + "type" : "object", + "description" : "The test result of a community note.", + "properties" : { + "evaluator_score" : { + "type" : "number", + "description" : "The score given to a written test note.", + "format" : "double" + }, + "evaluator_type" : { + "type" : "string", + "description" : "The type of evaluator response." + } + } + }, + "NoteTweetText" : { + "type" : "string", + "description" : "The note content of the Tweet.", + "example" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" + }, + "Oauth1PermissionsProblem" : { + "description" : "A problem that indicates your client application does not have the required OAuth1 permissions for the requested endpoint.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "OldestId" : { + "type" : "string", + "description" : "The oldest id in this response." + }, + "OperationalDisconnectProblem" : { + "description" : "You have been disconnected for operational reasons.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "disconnect_type" : { + "type" : "string", + "enum" : [ + "OperationalDisconnect", + "UpstreamOperationalDisconnect", + "ForceDisconnect", + "UpstreamUncleanDisconnect", + "SlowReader", + "InternalError", + "ClientApplicationStateDegraded", + "InvalidRules" + ] + } + } + } + ] + }, + "PaginationToken32" : { + "type" : "string", + "description" : "A base32 pagination token.", + "minLength" : 16 + }, + "PaginationToken36" : { + "type" : "string", + "description" : "A base36 pagination token.", + "minLength" : 1 + }, + "PaginationTokenLong" : { + "type" : "string", + "description" : "A 'long' pagination token.", + "minLength" : 1, + "maxLength" : 19 + }, + "PersonalizedTrend" : { + "type" : "object", + "description" : "A trend.", + "properties" : { + "category" : { + "type" : "string", + "description" : "Category of this trend." + }, + "post_count" : { + "type" : "integer", + "description" : "Number of posts pertaining to this trend." + }, + "trend_name" : { + "type" : "string", + "description" : "Name of the trend." + }, + "trending_since" : { + "type" : "string", + "description" : "Time since this is trending." + } + } + }, + "Photo" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/Media" + }, + { + "type" : "object", + "properties" : { + "alt_text" : { + "type" : "string" + }, + "url" : { + "type" : "string", + "format" : "uri" + } + } + } + ] + }, + "Place" : { + "type" : "object", + "required" : [ + "id", + "full_name" + ], + "properties" : { + "contained_within" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/PlaceId" + } + }, + "country" : { + "type" : "string", + "description" : "The full name of the county in which this place exists.", + "example" : "United States" + }, + "country_code" : { + "$ref" : "#/components/schemas/CountryCode" + }, + "full_name" : { + "type" : "string", + "description" : "The full name of this place.", + "example" : "Lakewood, CO" + }, + "geo" : { + "$ref" : "#/components/schemas/Geo" + }, + "id" : { + "$ref" : "#/components/schemas/PlaceId" + }, + "name" : { + "type" : "string", + "description" : "The human readable name of this place.", + "example" : "Lakewood" + }, + "place_type" : { + "$ref" : "#/components/schemas/PlaceType" + } + } + }, + "PlaceId" : { + "type" : "string", + "description" : "The identifier for this place.", + "example" : "f7eb2fa2fea288b1" + }, + "PlaceType" : { + "type" : "string", + "enum" : [ + "poi", + "neighborhood", + "city", + "admin", + "country", + "unknown" + ], + "example" : "city" + }, + "PlaidAccount" : { + "type" : "object", + "description" : "Descriptor for a Plaid account.", + "required" : [ + "accountId", + "accountCategory", + "accountNumberDisplay", + "accountType", + "currency", + "productName", + "status" + ], + "properties" : { + "accountCategory" : { + "type" : "string", + "description" : "The category of the account (e.g., personal, business)." + }, + "accountId" : { + "type" : "string", + "description" : "The Plaid account ID." + }, + "accountNumberDisplay" : { + "type" : "string", + "description" : "The last 2-4 digits of the account number." + }, + "accountType" : { + "type" : "string", + "description" : "The type of the account (e.g., checking, savings)." + }, + "availableBalance" : { + "type" : "number", + "description" : "The available balance of the account." + }, + "currency" : { + "$ref" : "#/components/schemas/PlaidCurrency" + }, + "currentBalance" : { + "type" : "number", + "description" : "The current balance of the account." + }, + "nickname" : { + "type" : "string", + "description" : "The nickname of the account." + }, + "productName" : { + "type" : "string", + "description" : "The name of the product associated with the account." + }, + "status" : { + "type" : "string", + "description" : "The status of the account." + } + } + }, + "PlaidAccountContact" : { + "type" : "object", + "description" : "Contact information associated with a Plaid account.", + "required" : [ + "name", + "addresses", + "emails", + "telephones" + ], + "properties" : { + "addresses" : { + "type" : "array", + "description" : "List of addresses associated with the account holder.", + "items" : { + "$ref" : "#/components/schemas/PlaidAddress" + } + }, + "emails" : { + "type" : "array", + "description" : "List of email addresses associated with the account holder.", + "items" : { + "type" : "string" + } + }, + "name" : { + "$ref" : "#/components/schemas/PlaidName" + }, + "relationship" : { + "type" : "string", + "description" : "Relationship of the contact to the account." + }, + "telephones" : { + "type" : "array", + "description" : "List of telephone numbers associated with the account holder.", + "items" : { + "$ref" : "#/components/schemas/PlaidTelephone" + } + } + } + }, + "PlaidAccountPaymentNetwork" : { + "type" : "object", + "description" : "Payment network details associated with the account.", + "required" : [ + "identifier", + "type", + "transferIn", + "transferOut", + "bankId" + ], + "properties" : { + "bankId" : { + "type" : "string", + "description" : "The bank ID associated with the account." + }, + "identifier" : { + "type" : "string", + "description" : "The payment network identifier." + }, + "transferIn" : { + "type" : "boolean", + "description" : "Indicates if transfers into the account are supported." + }, + "transferOut" : { + "type" : "boolean", + "description" : "Indicates if transfers out of the account are supported." + }, + "type" : { + "type" : "string", + "description" : "The type of payment network (e.g., ACH, SEPA)." + } + } + }, + "PlaidAccountTransaction" : { + "type" : "object", + "description" : "Descriptor for a Plaid account.", + "required" : [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "status", + "transactionId", + "transactionTimestamp" + ], + "properties" : { + "accountCategory" : { + "type" : "string", + "description" : "The category of the account (e.g., personal, business)." + }, + "amount" : { + "type" : "number", + "description" : "The amount transacted." + }, + "debitCreditMemo" : { + "type" : "string", + "description" : "Memo for transaction (e.g. CREDIT)" + }, + "description" : { + "type" : "string", + "description" : "The transaction description" + }, + "postedTimestamp" : { + "type" : "string", + "description" : "The timestamp when the transaction was posted." + }, + "status" : { + "type" : "string", + "description" : "The status of the transaction." + }, + "transactionId" : { + "type" : "string", + "description" : "The identifier for the transaction." + }, + "transactionTimestamp" : { + "type" : "string", + "description" : "The timestamp when the transaction occurred." + } + } + }, + "PlaidAddress" : { + "type" : "object", + "description" : "Address information for the account holder.", + "required" : [ + "city", + "country", + "line1" + ], + "properties" : { + "city" : { + "type" : "string", + "description" : "The city of the address." + }, + "country" : { + "type" : "string", + "description" : "The country of the address (ISO 3166-1 alpha-2 code)." + }, + "line1" : { + "type" : "string", + "description" : "The first line of the address." + }, + "line2" : { + "type" : "string", + "description" : "The second line of the address." + }, + "postalCode" : { + "type" : "string", + "description" : "The postal code of the address." + }, + "region" : { + "type" : "string", + "description" : "The region or state of the address." + } + } + }, + "PlaidCurrency" : { + "type" : "object", + "description" : "Currency information.", + "required" : [ + "currencyCode" + ], + "properties" : { + "currencyCode" : { + "type" : "string", + "description" : "The ISO 4217 currency code." + } + } + }, + "PlaidCustomer" : { + "type" : "object", + "description" : "A user id for the plaid customer", + "properties" : { + "customerId" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "PlaidName" : { + "type" : "object", + "description" : "Name information for the account holder.", + "required" : [ + "first", + "last" + ], + "properties" : { + "first" : { + "type" : "string", + "description" : "The first name of the account holder." + }, + "last" : { + "type" : "string", + "description" : "The last name of the account holder." + } + } + }, + "PlaidTelephone" : { + "type" : "object", + "description" : "Telephone information for the account holder.", + "required" : [ + "country", + "number", + "type" + ], + "properties" : { + "country" : { + "type" : "string", + "description" : "The country code for the phone number (e.g., '+1')." + }, + "number" : { + "type" : "string", + "description" : "The phone number." + }, + "type" : { + "type" : "string", + "description" : "The type of phone number (e.g., 'mobile')." + } + } + }, + "Point" : { + "type" : "object", + "description" : "A [GeoJson Point](https://tools.ietf.org/html/rfc7946#section-3.1.2) geometry object.", + "required" : [ + "type", + "coordinates" + ], + "properties" : { + "coordinates" : { + "$ref" : "#/components/schemas/Position" + }, + "type" : { + "type" : "string", + "enum" : [ + "Point" + ], + "example" : "Point" + } + } + }, + "Poll" : { + "type" : "object", + "description" : "Represent a Poll attached to a Tweet.", + "required" : [ + "id", + "options" + ], + "properties" : { + "duration_minutes" : { + "type" : "integer", + "minimum" : 5, + "maximum" : 10080, + "format" : "int32" + }, + "end_datetime" : { + "type" : "string", + "format" : "date-time" + }, + "id" : { + "$ref" : "#/components/schemas/PollId" + }, + "options" : { + "type" : "array", + "minItems" : 2, + "maxItems" : 4, + "items" : { + "$ref" : "#/components/schemas/PollOption" + } + }, + "voting_status" : { + "type" : "string", + "enum" : [ + "open", + "closed" + ] + } + } + }, + "PollId" : { + "type" : "string", + "description" : "Unique identifier of this poll.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1365059861688410112" + }, + "PollOption" : { + "type" : "object", + "description" : "Describes a choice in a Poll object.", + "required" : [ + "position", + "label", + "votes" + ], + "properties" : { + "label" : { + "$ref" : "#/components/schemas/PollOptionLabel" + }, + "position" : { + "type" : "integer", + "description" : "Position of this choice in the poll." + }, + "votes" : { + "type" : "integer", + "description" : "Number of users who voted for this choice." + } + } + }, + "PollOptionLabel" : { + "type" : "string", + "description" : "The text of a poll choice.", + "minLength" : 1, + "maxLength" : 25 + }, + "Position" : { + "type" : "array", + "description" : "A [GeoJson Position](https://tools.ietf.org/html/rfc7946#section-3.1.1) in the format `[longitude,latitude]`.", + "minItems" : 2, + "maxItems" : 2, + "items" : { + "type" : "number" + }, + "example" : [ + -105.18816086351444, + 40.247749999999996 + ] + }, + "PreviewImage" : { + "type" : "object", + "properties" : { + "media_key" : { + "type" : "object", + "properties" : { + "media" : { + "$ref" : "#/components/schemas/MediaId" + }, + "media_category" : { + "type" : "string", + "description" : "The media category of media", + "enum" : [ + "TweetImage" + ], + "default" : "TweetImage", + "example" : "TweetImage" + } + } + } + } + }, + "PreviousToken" : { + "type" : "string", + "description" : "The previous token.", + "minLength" : 1 + }, + "Problem" : { + "type" : "object", + "description" : "An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).", + "required" : [ + "type", + "title" + ], + "properties" : { + "detail" : { + "type" : "string" + }, + "status" : { + "type" : "integer" + }, + "title" : { + "type" : "string" + }, + "type" : { + "type" : "string" + } + }, + "discriminator" : { + "propertyName" : "type", + "mapping" : { + "about:blank" : "#/components/schemas/GenericProblem", + "https://api.twitter.com/2/problems/client-disconnected" : "#/components/schemas/ClientDisconnectedProblem", + "https://api.twitter.com/2/problems/client-forbidden" : "#/components/schemas/ClientForbiddenProblem", + "https://api.twitter.com/2/problems/conflict" : "#/components/schemas/ConflictProblem", + "https://api.twitter.com/2/problems/disallowed-resource" : "#/components/schemas/DisallowedResourceProblem", + "https://api.twitter.com/2/problems/duplicate-rules" : "#/components/schemas/DuplicateRuleProblem", + "https://api.twitter.com/2/problems/invalid-request" : "#/components/schemas/InvalidRequestProblem", + "https://api.twitter.com/2/problems/invalid-rules" : "#/components/schemas/InvalidRuleProblem", + "https://api.twitter.com/2/problems/noncompliant-rules" : "#/components/schemas/NonCompliantRulesProblem", + "https://api.twitter.com/2/problems/not-authorized-for-field" : "#/components/schemas/FieldUnauthorizedProblem", + "https://api.twitter.com/2/problems/not-authorized-for-resource" : "#/components/schemas/ResourceUnauthorizedProblem", + "https://api.twitter.com/2/problems/operational-disconnect" : "#/components/schemas/OperationalDisconnectProblem", + "https://api.twitter.com/2/problems/resource-not-found" : "#/components/schemas/ResourceNotFoundProblem", + "https://api.twitter.com/2/problems/resource-unavailable" : "#/components/schemas/ResourceUnavailableProblem", + "https://api.twitter.com/2/problems/rule-cap" : "#/components/schemas/RulesCapProblem", + "https://api.twitter.com/2/problems/streaming-connection" : "#/components/schemas/ConnectionExceptionProblem", + "https://api.twitter.com/2/problems/unsupported-authentication" : "#/components/schemas/UnsupportedAuthenticationProblem", + "https://api.twitter.com/2/problems/usage-capped" : "#/components/schemas/UsageCapExceededProblem" + } + } + }, + "ProcessingInfo" : { + "type" : "object", + "required" : [ + "type" + ], + "properties" : { + "check_after_secs" : { + "type" : "integer", + "description" : "Number of seconds to check again for status", + "format" : "int32" + }, + "progress_percent" : { + "type" : "integer", + "description" : "Percent of upload progress", + "format" : "int32" + }, + "state" : { + "type" : "string", + "description" : "State of upload", + "enum" : [ + "succeeded", + "in_progress", + "pending", + "failed" + ] + } + } + }, + "ReplayJobCreateResponse" : { + "type" : "object", + "description" : "Confirmation that the replay job request was accepted.", + "required" : [ + "job_id", + "created_at" + ], + "properties" : { + "created_at" : { + "type" : "string", + "description" : "The UTC timestamp indicating when the replay job was created.", + "format" : "date-time", + "example" : "2025-04-24T20:57:15.242Z" + }, + "job_id" : { + "type" : "string", + "description" : "The unique identifier for the initiated replay job.", + "example" : "1915510368169844736" + } + } + }, + "ReplySettings" : { + "type" : "string", + "description" : "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, and following.", + "pattern" : "^[A-Za-z]{1,12}$", + "enum" : [ + "everyone", + "mentionedUsers", + "following", + "other" + ] + }, + "ReplySettingsWithVerifiedUsers" : { + "type" : "string", + "description" : "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, subscribers, verified and following.", + "pattern" : "^[A-Za-z]{1,12}$", + "enum" : [ + "everyone", + "mentionedUsers", + "following", + "other", + "subscribers", + "verified" + ] + }, + "ResourceNotFoundProblem" : { + "description" : "A problem that indicates that a given Tweet, User, etc. does not exist.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "required" : [ + "parameter", + "value", + "resource_id", + "resource_type" + ], + "properties" : { + "parameter" : { + "type" : "string", + "minLength" : 1 + }, + "resource_id" : { + "type" : "string" + }, + "resource_type" : { + "type" : "string", + "enum" : [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "value" : { + "type" : "string", + "description" : "Value will match the schema of the field." + } + } + } + ] + }, + "ResourceUnauthorizedProblem" : { + "description" : "A problem that indicates you are not allowed to see a particular Tweet, User, etc.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "required" : [ + "value", + "resource_id", + "resource_type", + "section", + "parameter" + ], + "properties" : { + "parameter" : { + "type" : "string" + }, + "resource_id" : { + "type" : "string" + }, + "resource_type" : { + "type" : "string", + "enum" : [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "section" : { + "type" : "string", + "enum" : [ + "data", + "includes" + ] + }, + "value" : { + "type" : "string" + } + } + } + ] + }, + "ResourceUnavailableProblem" : { + "description" : "A problem that indicates a particular Tweet, User, etc. is not available to you.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "required" : [ + "parameter", + "resource_id", + "resource_type" + ], + "properties" : { + "parameter" : { + "type" : "string", + "minLength" : 1 + }, + "resource_id" : { + "type" : "string" + }, + "resource_type" : { + "type" : "string", + "enum" : [ + "user", + "tweet", + "media", + "list", + "space" + ] + } + } + } + ] + }, + "ResultCount" : { + "type" : "integer", + "description" : "The number of results returned in this response.", + "format" : "int32" + }, + "Rule" : { + "type" : "object", + "description" : "A user-provided stream filtering rule.", + "required" : [ + "value" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/RuleId" + }, + "tag" : { + "$ref" : "#/components/schemas/RuleTag" + }, + "value" : { + "$ref" : "#/components/schemas/RuleValue" + } + } + }, + "RuleId" : { + "type" : "string", + "description" : "Unique identifier of this rule.", + "pattern" : "^[0-9]{1,19}$", + "example" : "120897978112909812" + }, + "RuleNoId" : { + "type" : "object", + "description" : "A user-provided stream filtering rule.", + "required" : [ + "value" + ], + "properties" : { + "tag" : { + "$ref" : "#/components/schemas/RuleTag" + }, + "value" : { + "$ref" : "#/components/schemas/RuleValue" + } + } + }, + "RuleTag" : { + "type" : "string", + "description" : "A tag meant for the labeling of user provided rules.", + "example" : "Non-retweeted coffee Posts" + }, + "RuleValue" : { + "type" : "string", + "description" : "The filterlang value of the rule.", + "example" : "coffee -is:retweet" + }, + "RulesCapProblem" : { + "description" : "You have exceeded the maximum number of rules.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "RulesCount" : { + "type" : "object", + "description" : "A count of user-provided stream filtering rules at the application and project levels.", + "properties" : { + "all_project_client_apps" : { + "$ref" : "#/components/schemas/AllProjectClientApps" + }, + "cap_per_client_app" : { + "type" : "integer", + "description" : "Cap of number of rules allowed per client application", + "format" : "int32" + }, + "cap_per_project" : { + "type" : "integer", + "description" : "Cap of number of rules allowed per project", + "format" : "int32" + }, + "client_app_rules_count" : { + "$ref" : "#/components/schemas/AppRulesCount" + }, + "project_rules_count" : { + "type" : "integer", + "description" : "Number of rules for project", + "format" : "int32" + } + } + }, + "RulesLookupResponse" : { + "type" : "object", + "required" : [ + "meta" + ], + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Rule" + } + }, + "meta" : { + "$ref" : "#/components/schemas/RulesResponseMetadata" + } + } + }, + "RulesRequestSummary" : { + "oneOf" : [ + { + "type" : "object", + "description" : "A summary of the results of the addition of user-specified stream filtering rules.", + "required" : [ + "created", + "not_created", + "valid", + "invalid" + ], + "properties" : { + "created" : { + "type" : "integer", + "description" : "Number of user-specified stream filtering rules that were created.", + "format" : "int32", + "example" : 1 + }, + "invalid" : { + "type" : "integer", + "description" : "Number of invalid user-specified stream filtering rules.", + "format" : "int32", + "example" : 1 + }, + "not_created" : { + "type" : "integer", + "description" : "Number of user-specified stream filtering rules that were not created.", + "format" : "int32", + "example" : 1 + }, + "valid" : { + "type" : "integer", + "description" : "Number of valid user-specified stream filtering rules.", + "format" : "int32", + "example" : 1 + } + } + }, + { + "type" : "object", + "required" : [ + "deleted", + "not_deleted" + ], + "properties" : { + "deleted" : { + "type" : "integer", + "description" : "Number of user-specified stream filtering rules that were deleted.", + "format" : "int32" + }, + "not_deleted" : { + "type" : "integer", + "description" : "Number of user-specified stream filtering rules that were not deleted.", + "format" : "int32" + } + } + } + ] + }, + "RulesResponseMetadata" : { + "type" : "object", + "required" : [ + "sent" + ], + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "result_count" : { + "type" : "integer", + "description" : "Number of Rules in result set.", + "format" : "int32" + }, + "sent" : { + "type" : "string" + }, + "summary" : { + "$ref" : "#/components/schemas/RulesRequestSummary" + } + } + }, + "SearchCount" : { + "type" : "object", + "description" : "Represent a Search Count Result.", + "required" : [ + "end", + "start", + "tweet_count" + ], + "properties" : { + "end" : { + "$ref" : "#/components/schemas/End" + }, + "start" : { + "$ref" : "#/components/schemas/Start" + }, + "tweet_count" : { + "$ref" : "#/components/schemas/TweetCount" + } + } + }, + "SensitiveMediaWarning" : { + "type" : "object", + "properties" : { + "adult_content" : { + "type" : "boolean", + "description" : "Indicates if the content contains adult material", + "example" : true + }, + "graphic_violence" : { + "type" : "boolean", + "description" : "Indicates if the content depicts graphic violence", + "example" : true + }, + "other" : { + "type" : "boolean", + "description" : "Indicates if the content has other sensitive characteristics", + "example" : false + } + } + }, + "SharedInfo" : { + "type" : "object", + "properties" : { + "shared" : { + "type" : "boolean", + "description" : "Indicates if the media is shared in direct messages", + "example" : false + } + } + }, + "Space" : { + "type" : "object", + "description" : "", + "required" : [ + "id", + "state" + ], + "properties" : { + "created_at" : { + "type" : "string", + "description" : "Creation time of the Space.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "creator_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "ended_at" : { + "type" : "string", + "description" : "End time of the Space.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "host_ids" : { + "type" : "array", + "description" : "The user ids for the hosts of the Space.", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "id" : { + "$ref" : "#/components/schemas/SpaceId" + }, + "invited_user_ids" : { + "type" : "array", + "description" : "An array of user ids for people who were invited to a Space.", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "is_ticketed" : { + "type" : "boolean", + "description" : "Denotes if the Space is a ticketed Space.", + "example" : "false" + }, + "lang" : { + "type" : "string", + "description" : "The language of the Space.", + "example" : "en" + }, + "participant_count" : { + "type" : "integer", + "description" : "The number of participants in a Space.", + "format" : "int32", + "example" : 10 + }, + "scheduled_start" : { + "type" : "string", + "description" : "A date time stamp for when a Space is scheduled to begin.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "speaker_ids" : { + "type" : "array", + "description" : "An array of user ids for people who were speakers in a Space.", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "started_at" : { + "type" : "string", + "description" : "When the Space was started as a date string.", + "format" : "date-time", + "example" : "2021-7-14T04:35:55Z" + }, + "state" : { + "type" : "string", + "description" : "The current state of the Space.", + "enum" : [ + "live", + "scheduled", + "ended" + ], + "example" : "live" + }, + "subscriber_count" : { + "type" : "integer", + "description" : "The number of people who have either purchased a ticket or set a reminder for this Space.", + "format" : "int32", + "example" : 10 + }, + "title" : { + "type" : "string", + "description" : "The title of the Space.", + "example" : "Spaces are Awesome" + }, + "topics" : { + "type" : "array", + "description" : "The topics of a Space, as selected by its creator.", + "items" : { + "type" : "object", + "description" : "The X Topic object.", + "required" : [ + "id", + "name" + ], + "properties" : { + "description" : { + "type" : "string", + "description" : "The description of the given topic." }, - "explode": false, - "style": "form" - }, - "UserFieldsParameter": { - "name": "user.fields", - "in": "query", - "description": "A comma separated list of User fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a User object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "affiliation", - "confirmed_email", - "connection_status", - "created_at", - "description", - "entities", - "id", - "is_identity_verified", - "location", - "most_recent_tweet_id", - "name", - "parody", - "pinned_tweet_id", - "profile_banner_url", - "profile_image_url", - "protected", - "public_metrics", - "receives_your_dm", - "subscription", - "subscription_type", - "url", - "username", - "verified", - "verified_followers_count", - "verified_type", - "withheld" - ] - }, - "example": [ - "affiliation", - "confirmed_email", - "connection_status", - "created_at", - "description", - "entities", - "id", - "is_identity_verified", - "location", - "most_recent_tweet_id", - "name", - "parody", - "pinned_tweet_id", - "profile_banner_url", - "profile_image_url", - "protected", - "public_metrics", - "receives_your_dm", - "subscription", - "subscription_type", - "url", - "username", - "verified", - "verified_followers_count", - "verified_type", - "withheld" - ] + "id" : { + "type" : "string", + "description" : "An ID suitable for use in the REST API." }, - "explode": false, - "style": "form" - }, - "WebhookConfigFieldsParameter": { - "name": "webhook_config.fields", - "in": "query", - "description": "A comma separated list of WebhookConfig fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a WebhookConfig object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "id", - "url", - "valid" - ] - }, - "example": [ - "created_at", - "id", - "url", - "valid" - ] + "name" : { + "type" : "string", + "description" : "The name of the given topic." + } + }, + "example" : { + "description" : "All about technology", + "id" : "848920371311001600", + "name" : "Technology" + } + } + }, + "updated_at" : { + "type" : "string", + "description" : "When the Space was last updated.", + "format" : "date-time", + "example" : "2021-7-14T04:35:55Z" + } + } + }, + "SpaceId" : { + "type" : "string", + "description" : "The unique identifier of this Space.", + "pattern" : "^[a-zA-Z0-9]{1,13}$", + "example" : "1SLjjRYNejbKM" + }, + "Start" : { + "type" : "string", + "description" : "The start time of the bucket.", + "format" : "date-time" + }, + "Sticker" : { + "type" : "object", + "properties" : { + "aspect_ratio" : { + "type" : "number", + "description" : "width-to-height ratio of the media", + "format" : "double", + "example" : 1.78 + }, + "group_annotation_id" : { + "type" : "number", + "description" : "A unique identifier for the group of annotations associated with the media", + "format" : "long", + "example" : 987654321098765 + }, + "id" : { + "type" : "string", + "description" : "Unique identifier for sticker", + "example" : "12345" + }, + "sticker_set_annotation_id" : { + "type" : "number", + "description" : "A unique identifier for the sticker set associated with the media", + "format" : "long", + "example" : 123456789012345 + }, + "transform_a" : { + "type" : "number", + "description" : "Scale or rotate the media on the x-axis", + "format" : "double", + "example" : 1.0 + }, + "transform_b" : { + "type" : "number", + "description" : "Skew the media on the x-axis", + "format" : "double", + "example" : 0.0 + }, + "transform_c" : { + "type" : "number", + "description" : "Skew the media on the y-axis", + "format" : "double", + "example" : 0.0 + }, + "transform_d" : { + "type" : "number", + "description" : "Scale or rotate the media on the y-axis", + "format" : "double", + "example" : 1.0 + }, + "transform_tx" : { + "type" : "number", + "description" : "Scale or rotate the media on the x-axis", + "format" : "double", + "example" : 10.5 + }, + "transform_ty" : { + "type" : "number", + "description" : "The vertical translation (shift) value for the media", + "format" : "double", + "example" : -5.2 + } + } + }, + "StickerInfo" : { + "type" : "object", + "properties" : { + "stickers" : { + "type" : "array", + "description" : "Stickers list must not be empty and should not exceed 25", + "items" : { + "$ref" : "#/components/schemas/Sticker" + } + } + } + }, + "StreamingLikeResponseV2" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/LikeWithTweetAuthor" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "StreamingTweetResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "SubscriptionsCountGetResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "description" : "The count of active subscriptions across all webhooks", + "required" : [ + "account_name", + "provisioned_count", + "subscriptions_count_all", + "subscriptions_count_direct_messages" + ], + "properties" : { + "account_name" : { + "type" : "string", + "description" : "The account name" + }, + "provisioned_count" : { + "type" : "string", + "description" : "The limit for subscriptions for this app" + }, + "subscriptions_count_all" : { + "type" : "string", + "description" : "The number of active subscriptions across all webhooks" + }, + "subscriptions_count_direct_messages" : { + "type" : "string", + "description" : "The number of active direct message subscriptions" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsCreateRequest" : { + "type" : "object" + }, + "SubscriptionsCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "subscribed" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "subscribed" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsGetResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "subscribed" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsListGetResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "description" : "The list of active subscriptions for a specified webhook", + "required" : [ + "application_id", + "webhook_id", + "webhook_url", + "subscriptions" + ], + "properties" : { + "application_id" : { + "type" : "string", + "description" : "The application ID" + }, + "subscriptions" : { + "type" : "array", + "description" : "List of active subscriptions for the webhook", + "items" : { + "type" : "object", + "properties" : { + "user_id" : { + "type" : "string", + "description" : "The ID of the user the webhook is subscribed to" + } + } + } + }, + "webhook_id" : { + "type" : "string", + "description" : "The associated webhook ID" + }, + "webhook_url" : { + "type" : "string", + "description" : "The url for the associated webhook" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubtitleLanguageCode" : { + "type" : "string", + "description" : "The language code should be a BCP47 code (e.g. 'EN\", \"SP\")", + "pattern" : "^[A-Z]{2}$", + "example" : "EN" + }, + "Subtitles" : { + "type" : "object", + "properties" : { + "display_name" : { + "type" : "string", + "description" : "Language name in a human readable form", + "example" : "English" + }, + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "language_code" : { + "$ref" : "#/components/schemas/SubtitleLanguageCode" + } + } + }, + "SubtitlesCreateRequest" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "media_category" : { + "$ref" : "#/components/schemas/MediaCategorySubtitles" + }, + "subtitles" : { + "$ref" : "#/components/schemas/Subtitles" + } + } + }, + "SubtitlesCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "id", + "media_category", + "associated_subtitles" + ], + "properties" : { + "associated_subtitles" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Subtitles" + } + }, + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "media_category" : { + "$ref" : "#/components/schemas/MediaCategorySubtitles" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubtitlesDeleteRequest" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "language_code" : { + "$ref" : "#/components/schemas/SubtitleLanguageCode" + }, + "media_category" : { + "$ref" : "#/components/schemas/MediaCategorySubtitles" + } + } + }, + "SubtitlesDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "deleted" + ], + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "TimestampedMetrics" : { + "type" : "object", + "properties" : { + "metrics" : { + "$ref" : "#/components/schemas/Metrics" + }, + "timestamp" : { + "type" : "string", + "title" : "Timestamp", + "description" : "ISO8601 Time", + "example" : "2025-03-17T06:30:00Z" + } + } + }, + "Topic" : { + "type" : "object", + "description" : "The topic of a Space, as selected by its creator.", + "required" : [ + "id", + "name" + ], + "properties" : { + "description" : { + "type" : "string", + "description" : "The description of the given topic.", + "example" : "All about technology" + }, + "id" : { + "$ref" : "#/components/schemas/TopicId" + }, + "name" : { + "type" : "string", + "description" : "The name of the given topic.", + "example" : "Technology" + } + } + }, + "TopicId" : { + "type" : "string", + "description" : "Unique identifier of this Topic." + }, + "Trend" : { + "type" : "object", + "description" : "A trend.", + "properties" : { + "trend_name" : { + "type" : "string", + "description" : "Name of the trend." + }, + "tweet_count" : { + "type" : "integer", + "description" : "Number of Posts in this trend.", + "format" : "int32" + } + } + }, + "Tweet" : { + "type" : "object", + "properties" : { + "attachments" : { + "type" : "object", + "description" : "Specifies the type of attachments (if any) present in this Tweet.", + "properties" : { + "media_keys" : { + "type" : "array", + "description" : "A list of Media Keys for each one of the media attachments (if media are attached).", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/MediaKey" + } + }, + "media_source_tweet_id" : { + "type" : "array", + "description" : "A list of Posts the media on this Tweet was originally posted in. For example, if the media on a tweet is re-used in another Tweet, this refers to the original, source Tweet..", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "poll_ids" : { + "type" : "array", + "description" : "A list of poll IDs (if polls are attached).", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/PollId" + } + } + } + }, + "author_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "community_id" : { + "$ref" : "#/components/schemas/CommunityId" + }, + "context_annotations" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/ContextAnnotation" + } + }, + "conversation_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "created_at" : { + "type" : "string", + "description" : "Creation time of the Tweet.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "display_text_range" : { + "$ref" : "#/components/schemas/DisplayTextRange" + }, + "edit_controls" : { + "type" : "object", + "required" : [ + "is_edit_eligible", + "editable_until", + "edits_remaining" + ], + "properties" : { + "editable_until" : { + "type" : "string", + "description" : "Time when Tweet is no longer editable.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "edits_remaining" : { + "type" : "integer", + "description" : "Number of times this Tweet can be edited." + }, + "is_edit_eligible" : { + "type" : "boolean", + "description" : "Indicates if this Tweet is eligible to be edited.", + "example" : false + } + } + }, + "edit_history_tweet_ids" : { + "type" : "array", + "description" : "A list of Tweet Ids in this Tweet chain.", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "entities" : { + "$ref" : "#/components/schemas/FullTextEntities" + }, + "geo" : { + "type" : "object", + "description" : "The location tagged on the Tweet, if the user provided one.", + "properties" : { + "coordinates" : { + "$ref" : "#/components/schemas/Point" + }, + "place_id" : { + "$ref" : "#/components/schemas/PlaceId" + } + } + }, + "id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "in_reply_to_user_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "lang" : { + "type" : "string", + "description" : "Language of the Tweet, if detected by X. Returned as a BCP47 language tag.", + "example" : "en" + }, + "non_public_metrics" : { + "type" : "object", + "description" : "Nonpublic engagement metrics for the Tweet at the time of the request.", + "properties" : { + "impression_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been viewed.", + "format" : "int32" + } + } + }, + "note_tweet" : { + "type" : "object", + "description" : "The full-content of the Tweet, including text beyond 280 characters.", + "properties" : { + "entities" : { + "type" : "object", + "properties" : { + "cashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/CashtagEntity" + } + }, + "hashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/HashtagEntity" + } + }, + "mentions" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/MentionEntity" + } + }, + "urls" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UrlEntity" + } + } + } + }, + "text" : { + "$ref" : "#/components/schemas/NoteTweetText" + } + } + }, + "organic_metrics" : { + "type" : "object", + "description" : "Organic nonpublic engagement metrics for the Tweet at the time of the request.", + "required" : [ + "impression_count", + "retweet_count", + "reply_count", + "like_count" + ], + "properties" : { + "impression_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been viewed." + }, + "like_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been liked." + }, + "reply_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been replied to." + }, + "retweet_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been Retweeted." + } + } + }, + "possibly_sensitive" : { + "type" : "boolean", + "description" : "Indicates if this Tweet contains URLs marked as sensitive, for example content suitable for mature audiences.", + "example" : false + }, + "promoted_metrics" : { + "type" : "object", + "description" : "Promoted nonpublic engagement metrics for the Tweet at the time of the request.", + "properties" : { + "impression_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been viewed.", + "format" : "int32" + }, + "like_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been liked.", + "format" : "int32" + }, + "reply_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been replied to.", + "format" : "int32" + }, + "retweet_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been Retweeted.", + "format" : "int32" + } + } + }, + "public_metrics" : { + "type" : "object", + "description" : "Engagement metrics for the Tweet at the time of the request.", + "required" : [ + "retweet_count", + "reply_count", + "like_count", + "impression_count", + "bookmark_count" + ], + "properties" : { + "bookmark_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been bookmarked.", + "format" : "int32" + }, + "impression_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been viewed.", + "format" : "int32" + }, + "like_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been liked." + }, + "quote_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been quoted." + }, + "reply_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been replied to." + }, + "retweet_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been Retweeted." + } + } + }, + "referenced_tweets" : { + "type" : "array", + "description" : "A list of Posts this Tweet refers to. For example, if the parent Tweet is a Retweet, a Quoted Tweet or a Reply, it will include the related Tweet referenced to by its parent.", + "minItems" : 1, + "items" : { + "type" : "object", + "required" : [ + "type", + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" }, - "explode": false, - "style": "form" + "type" : { + "type" : "string", + "enum" : [ + "retweeted", + "quoted", + "replied_to" + ] + } + } + } + }, + "reply_settings" : { + "$ref" : "#/components/schemas/ReplySettingsWithVerifiedUsers" + }, + "scopes" : { + "type" : "object", + "description" : "The scopes for this tweet", + "properties" : { + "followers" : { + "type" : "boolean", + "description" : "Indicates if this Tweet is viewable by followers without the Tweet ID", + "example" : false + } + } + }, + "source" : { + "type" : "string", + "description" : "This is deprecated." + }, + "text" : { + "$ref" : "#/components/schemas/TweetText" + }, + "username" : { + "$ref" : "#/components/schemas/UserName" + }, + "withheld" : { + "$ref" : "#/components/schemas/TweetWithheld" + } + }, + "example" : { + "author_id" : "2244994945", + "created_at" : "Wed Jan 06 18:40:40 +0000 2021", + "id" : "1346889436626259968", + "text" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i", + "username" : "XDevelopers" + } + }, + "TweetComplianceData" : { + "description" : "Tweet compliance data.", + "oneOf" : [ + { + "$ref" : "#/components/schemas/TweetDeleteComplianceSchema" + }, + { + "$ref" : "#/components/schemas/TweetWithheldComplianceSchema" + }, + { + "$ref" : "#/components/schemas/TweetDropComplianceSchema" + }, + { + "$ref" : "#/components/schemas/TweetUndropComplianceSchema" + }, + { + "$ref" : "#/components/schemas/TweetEditComplianceSchema" + } + ] + }, + "TweetComplianceSchema" : { + "type" : "object", + "required" : [ + "tweet", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "quote_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "tweet" : { + "type" : "object", + "required" : [ + "id", + "author_id" + ], + "properties" : { + "author_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetComplianceStreamResponse" : { + "description" : "Tweet compliance stream events.", + "oneOf" : [ + { + "type" : "object", + "description" : "Compliance event.", + "required" : [ + "data" + ], + "properties" : { + "data" : { + "$ref" : "#/components/schemas/TweetComplianceData" + } + } + }, + { + "type" : "object", + "required" : [ + "errors" + ], + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + ] + }, + "TweetCount" : { + "type" : "integer", + "description" : "The count for the bucket." + }, + "TweetCreateRequest" : { + "type" : "object", + "properties" : { + "card_uri" : { + "type" : "string", + "description" : "Card Uri Parameter. This is mutually exclusive from Quote Tweet Id, Poll, Media, and Direct Message Deep Link." + }, + "community_id" : { + "$ref" : "#/components/schemas/CommunityId" + }, + "direct_message_deep_link" : { + "type" : "string", + "description" : "Link to take the conversation from the public timeline to a private Direct Message." + }, + "for_super_followers_only" : { + "type" : "boolean", + "description" : "Exclusive Tweet for super followers.", + "default" : false + }, + "geo" : { + "type" : "object", + "description" : "Place ID being attached to the Tweet for geo location.", + "properties" : { + "place_id" : { + "type" : "string" + } + }, + "additionalProperties" : false + }, + "media" : { + "type" : "object", + "description" : "Media information being attached to created Tweet. This is mutually exclusive from Quote Tweet Id, Poll, and Card URI.", + "required" : [ + "media_ids" + ], + "properties" : { + "media_ids" : { + "type" : "array", + "description" : "A list of Media Ids to be attached to a created Tweet.", + "minItems" : 1, + "maxItems" : 4, + "items" : { + "$ref" : "#/components/schemas/MediaId" + } + }, + "tagged_user_ids" : { + "type" : "array", + "description" : "A list of User Ids to be tagged in the media for created Tweet.", + "minItems" : 0, + "maxItems" : 10, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "additionalProperties" : false + }, + "nullcast" : { + "type" : "boolean", + "description" : "Nullcasted (promoted-only) Posts do not appear in the public timeline and are not served to followers.", + "default" : false + }, + "poll" : { + "type" : "object", + "description" : "Poll options for a Tweet with a poll. This is mutually exclusive from Media, Quote Tweet Id, and Card URI.", + "required" : [ + "options", + "duration_minutes" + ], + "properties" : { + "duration_minutes" : { + "type" : "integer", + "description" : "Duration of the poll in minutes.", + "minimum" : 5, + "maximum" : 10080, + "format" : "int32" + }, + "options" : { + "type" : "array", + "minItems" : 2, + "maxItems" : 4, + "items" : { + "type" : "string", + "description" : "The text of a poll choice.", + "minLength" : 1, + "maxLength" : 25 + } + }, + "reply_settings" : { + "type" : "string", + "description" : "Settings to indicate who can reply to the Tweet.", + "enum" : [ + "following", + "mentionedUsers", + "subscribers", + "verified" + ] + } + }, + "additionalProperties" : false + }, + "quote_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "reply" : { + "type" : "object", + "description" : "Tweet information of the Tweet being replied to.", + "required" : [ + "in_reply_to_tweet_id" + ], + "properties" : { + "exclude_reply_user_ids" : { + "type" : "array", + "description" : "A list of User Ids to be excluded from the reply Tweet.", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "in_reply_to_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "additionalProperties" : false + }, + "reply_settings" : { + "type" : "string", + "description" : "Settings to indicate who can reply to the Tweet.", + "enum" : [ + "following", + "mentionedUsers", + "subscribers", + "verified" + ] + }, + "text" : { + "$ref" : "#/components/schemas/TweetText" + } + }, + "additionalProperties" : false + }, + "TweetCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "id", + "text" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "text" : { + "$ref" : "#/components/schemas/TweetText" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "TweetDeleteComplianceSchema" : { + "type" : "object", + "required" : [ + "delete" + ], + "properties" : { + "delete" : { + "$ref" : "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "deleted" + ], + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "TweetDropComplianceSchema" : { + "type" : "object", + "required" : [ + "drop" + ], + "properties" : { + "drop" : { + "$ref" : "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetEditComplianceObjectSchema" : { + "type" : "object", + "required" : [ + "tweet", + "event_at", + "initial_tweet_id", + "edit_tweet_ids" + ], + "properties" : { + "edit_tweet_ids" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "initial_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "tweet" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + } } + } } + }, + "TweetEditComplianceSchema" : { + "type" : "object", + "required" : [ + "tweet_edit" + ], + "properties" : { + "tweet_edit" : { + "$ref" : "#/components/schemas/TweetEditComplianceObjectSchema" + } + } + }, + "TweetHideRequest" : { + "type" : "object", + "required" : [ + "hidden" + ], + "properties" : { + "hidden" : { + "type" : "boolean" + } + } + }, + "TweetHideResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "hidden" : { + "type" : "boolean" + } + } + } + } + }, + "TweetId" : { + "type" : "string", + "description" : "Unique identifier of this Tweet. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1346889436626259968" + }, + "TweetTakedownComplianceSchema" : { + "type" : "object", + "required" : [ + "tweet", + "withheld_in_countries", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "quote_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "tweet" : { + "type" : "object", + "required" : [ + "id", + "author_id" + ], + "properties" : { + "author_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + }, + "withheld_in_countries" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/CountryCode" + } + } + } + }, + "TweetText" : { + "type" : "string", + "description" : "The content of the Tweet.", + "example" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" + }, + "TweetUndropComplianceSchema" : { + "type" : "object", + "required" : [ + "undrop" + ], + "properties" : { + "undrop" : { + "$ref" : "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetWithheld" : { + "type" : "object", + "description" : "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", + "required" : [ + "copyright", + "country_codes" + ], + "properties" : { + "copyright" : { + "type" : "boolean", + "description" : "Indicates if the content is being withheld for on the basis of copyright infringement." + }, + "country_codes" : { + "type" : "array", + "description" : "Provides a list of countries where this content is not available.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "$ref" : "#/components/schemas/CountryCode" + } + }, + "scope" : { + "type" : "string", + "description" : "Indicates whether the content being withheld is the `tweet` or a `user`.", + "enum" : [ + "tweet", + "user" + ] + } + } + }, + "TweetWithheldComplianceSchema" : { + "type" : "object", + "required" : [ + "withheld" + ], + "properties" : { + "withheld" : { + "$ref" : "#/components/schemas/TweetTakedownComplianceSchema" + } + } + }, + "UnlikeComplianceSchema" : { + "type" : "object", + "required" : [ + "favorite", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "favorite" : { + "type" : "object", + "required" : [ + "id", + "user_id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "user_id" : { + "$ref" : "#/components/schemas/UserId" + } + } + } + } + }, + "UnsupportedAuthenticationProblem" : { + "description" : "A problem that indicates that the authentication used is not supported.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "UploadExpiration" : { + "type" : "string", + "description" : "Expiration time of the upload URL.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "UploadSource" : { + "type" : "object", + "properties" : { + "upload_source" : { + "type" : "string", + "description" : "Records the source (e.g., app, device) from which the media was uploaded", + "example" : "gallery" + } + } + }, + "UploadUrl" : { + "type" : "string", + "description" : "URL to which the user will upload their Tweet or user IDs.", + "format" : "uri" + }, + "Url" : { + "type" : "string", + "description" : "A validly formatted URL.", + "format" : "uri", + "example" : "https://developer.twitter.com/en/docs/twitter-api" + }, + "UrlEntity" : { + "description" : "Represent the portion of text recognized as a URL, and its start and end position within the text.", + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref" : "#/components/schemas/UrlFields" + } + ] + }, + "UrlEntityDm" : { + "description" : "Represent the portion of text recognized as a URL, and its start and end position within the text.", + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref" : "#/components/schemas/UrlFields" + } + ] + }, + "UrlFields" : { + "type" : "object", + "description" : "Represent the portion of text recognized as a URL.", + "required" : [ + "url" + ], + "properties" : { + "description" : { + "type" : "string", + "description" : "Description of the URL landing page.", + "example" : "This is a description of the website." + }, + "display_url" : { + "type" : "string", + "description" : "The URL as displayed in the X client.", + "example" : "twittercommunity.com/t/introducing-…" + }, + "expanded_url" : { + "$ref" : "#/components/schemas/Url" + }, + "images" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UrlImage" + } + }, + "media_key" : { + "$ref" : "#/components/schemas/MediaKey" + }, + "status" : { + "$ref" : "#/components/schemas/HttpStatusCode" + }, + "title" : { + "type" : "string", + "description" : "Title of the page the URL points to.", + "example" : "Introducing the v2 follow lookup endpoints" + }, + "unwound_url" : { + "type" : "string", + "description" : "Fully resolved url.", + "format" : "uri", + "example" : "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118" + }, + "url" : { + "$ref" : "#/components/schemas/Url" + } + } + }, + "UrlImage" : { + "type" : "object", + "description" : "Represent the information for the URL image.", + "properties" : { + "height" : { + "$ref" : "#/components/schemas/MediaHeight" + }, + "url" : { + "$ref" : "#/components/schemas/Url" + }, + "width" : { + "$ref" : "#/components/schemas/MediaWidth" + } + } + }, + "Usage" : { + "type" : "object", + "description" : "Usage per client app", + "properties" : { + "cap_reset_day" : { + "type" : "integer", + "description" : "Number of days left for the Tweet cap to reset", + "format" : "int32" + }, + "daily_client_app_usage" : { + "type" : "array", + "description" : "The daily usage breakdown for each Client Application a project", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/ClientAppUsage" + } + }, + "daily_project_usage" : { + "type" : "object", + "description" : "The daily usage breakdown for a project", + "properties" : { + "project_id" : { + "type" : "integer", + "description" : "The unique identifier for this project", + "format" : "int32" + }, + "usage" : { + "type" : "array", + "description" : "The usage value", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UsageFields" + } + } + } + }, + "project_cap" : { + "type" : "integer", + "description" : "Total number of Posts that can be read in this project per month", + "format" : "int32" + }, + "project_id" : { + "type" : "string", + "description" : "The unique identifier for this project", + "format" : "^[0-9]{1,19}$" + }, + "project_usage" : { + "type" : "integer", + "description" : "The number of Posts read in this project", + "format" : "int32" + } + } + }, + "UsageCapExceededProblem" : { + "description" : "A problem that indicates that a usage cap has been exceeded.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "period" : { + "type" : "string", + "enum" : [ + "Daily", + "Monthly" + ] + }, + "scope" : { + "type" : "string", + "enum" : [ + "Account", + "Product" + ] + } + } + } + ] + }, + "UsageFields" : { + "type" : "object", + "description" : "Represents the data for Usage", + "properties" : { + "date" : { + "type" : "string", + "description" : "The time period for the usage", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "usage" : { + "type" : "integer", + "description" : "The usage value", + "format" : "int32" + } + } + }, + "User" : { + "type" : "object", + "description" : "The X User object.", + "required" : [ + "id", + "name", + "username" + ], + "properties" : { + "affiliation" : { + "type" : "object", + "description" : "Metadata about a user's affiliation.", + "properties" : { + "badge_url" : { + "type" : "string", + "description" : "The badge URL corresponding to the affiliation.", + "format" : "uri" + }, + "description" : { + "type" : "string", + "description" : "The description of the affiliation." + }, + "url" : { + "type" : "string", + "description" : "The URL, if available, to details about an affiliation.", + "format" : "uri" + }, + "user_id" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + } + } + }, + "connection_status" : { + "type" : "array", + "description" : "Returns detailed information about the relationship between two users.", + "minItems" : 0, + "items" : { + "type" : "string", + "description" : "Type of connection between users.", + "enum" : [ + "follow_request_received", + "follow_request_sent", + "blocking", + "followed_by", + "following", + "muting" + ] + } + }, + "created_at" : { + "type" : "string", + "description" : "Creation time of this User.", + "format" : "date-time" + }, + "description" : { + "type" : "string", + "description" : "The text of this User's profile description (also known as bio), if the User provided one." + }, + "entities" : { + "type" : "object", + "description" : "A list of metadata found in the User's profile description.", + "properties" : { + "description" : { + "$ref" : "#/components/schemas/FullTextEntities" + }, + "url" : { + "type" : "object", + "description" : "Expanded details for the URL specified in the User's profile, with start and end indices.", + "properties" : { + "urls" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UrlEntity" + } + } + } + } + } + }, + "id" : { + "$ref" : "#/components/schemas/UserId" + }, + "location" : { + "type" : "string", + "description" : "The location specified in the User's profile, if the User provided one. As this is a freeform value, it may not indicate a valid location, but it may be fuzzily evaluated when performing searches with location queries." + }, + "most_recent_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "name" : { + "type" : "string", + "description" : "The friendly name of this User, as shown on their profile." + }, + "pinned_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "profile_banner_url" : { + "type" : "string", + "description" : "The URL to the profile banner for this User.", + "format" : "uri" + }, + "profile_image_url" : { + "type" : "string", + "description" : "The URL to the profile image for this User.", + "format" : "uri" + }, + "protected" : { + "type" : "boolean", + "description" : "Indicates if this User has chosen to protect their Posts (in other words, if this User's Posts are private)." + }, + "public_metrics" : { + "type" : "object", + "description" : "A list of metrics for this User.", + "required" : [ + "followers_count", + "following_count", + "tweet_count", + "listed_count" + ], + "properties" : { + "followers_count" : { + "type" : "integer", + "description" : "Number of Users who are following this User." + }, + "following_count" : { + "type" : "integer", + "description" : "Number of Users this User is following." + }, + "like_count" : { + "type" : "integer", + "description" : "The number of likes created by this User." + }, + "listed_count" : { + "type" : "integer", + "description" : "The number of lists that include this User." + }, + "tweet_count" : { + "type" : "integer", + "description" : "The number of Posts (including Retweets) posted by this User." + } + } + }, + "receives_your_dm" : { + "type" : "boolean", + "description" : "Indicates if you can send a DM to this User" + }, + "subscription_type" : { + "type" : "string", + "description" : "The X Blue subscription type of the user, eg: Basic, Premium, PremiumPlus or None.", + "enum" : [ + "Basic", + "Premium", + "PremiumPlus", + "None" + ] + }, + "url" : { + "type" : "string", + "description" : "The URL specified in the User's profile." + }, + "username" : { + "$ref" : "#/components/schemas/UserName" + }, + "verified" : { + "type" : "boolean", + "description" : "Indicate if this User is a verified X User." + }, + "verified_type" : { + "type" : "string", + "description" : "The X Blue verified type of the user, eg: blue, government, business or none.", + "enum" : [ + "blue", + "government", + "business", + "none" + ] + }, + "withheld" : { + "$ref" : "#/components/schemas/UserWithheld" + } + }, + "example" : { + "created_at" : "2013-12-14T04:35:55Z", + "id" : "2244994945", + "name" : "X Dev", + "protected" : false, + "username" : "TwitterDev" + } + }, + "UserComplianceData" : { + "description" : "User compliance data.", + "oneOf" : [ + { + "$ref" : "#/components/schemas/UserProtectComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserUnprotectComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserDeleteComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserUndeleteComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserSuspendComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserUnsuspendComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserWithheldComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserScrubGeoSchema" + }, + { + "$ref" : "#/components/schemas/UserProfileModificationComplianceSchema" + } + ] + }, + "UserComplianceSchema" : { + "type" : "object", + "required" : [ + "user", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "user" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/UserId" + } + } + } + } + }, + "UserComplianceStreamResponse" : { + "description" : "User compliance stream events.", + "oneOf" : [ + { + "type" : "object", + "description" : "User compliance event.", + "required" : [ + "data" + ], + "properties" : { + "data" : { + "$ref" : "#/components/schemas/UserComplianceData" + } + } + }, + { + "type" : "object", + "required" : [ + "errors" + ], + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + ] + }, + "UserDeleteComplianceSchema" : { + "type" : "object", + "required" : [ + "user_delete" + ], + "properties" : { + "user_delete" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserId" : { + "type" : "string", + "description" : "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", + "pattern" : "^[0-9]{1,19}$", + "example" : "2244994945" + }, + "UserIdMatchesAuthenticatedUser" : { + "type" : "string", + "description" : "Unique identifier of this User. The value must be the same as the authenticated user.", + "example" : "2244994945" + }, + "UserName" : { + "type" : "string", + "description" : "The X handle (screen name) of this user.", + "pattern" : "^[A-Za-z0-9_]{1,15}$" + }, + "UserProfileModificationComplianceSchema" : { + "type" : "object", + "required" : [ + "user_profile_modification" + ], + "properties" : { + "user_profile_modification" : { + "$ref" : "#/components/schemas/UserProfileModificationObjectSchema" + } + } + }, + "UserProfileModificationObjectSchema" : { + "type" : "object", + "required" : [ + "user", + "profile_field", + "new_value", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "new_value" : { + "type" : "string" + }, + "profile_field" : { + "type" : "string" + }, + "user" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/UserId" + } + } + } + } + }, + "UserProtectComplianceSchema" : { + "type" : "object", + "required" : [ + "user_protect" + ], + "properties" : { + "user_protect" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserScrubGeoObjectSchema" : { + "type" : "object", + "required" : [ + "user", + "up_to_tweet_id", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "up_to_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "user" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/UserId" + } + } + } + } + }, + "UserScrubGeoSchema" : { + "type" : "object", + "required" : [ + "scrub_geo" + ], + "properties" : { + "scrub_geo" : { + "$ref" : "#/components/schemas/UserScrubGeoObjectSchema" + } + } + }, + "UserSearchQueryVnext" : { + "type" : "string", + "description" : "The the search string by which to query for users.", + "pattern" : "^[A-Za-z0-9_' ]{1,50}$" + }, + "UserSuspendComplianceSchema" : { + "type" : "object", + "required" : [ + "user_suspend" + ], + "properties" : { + "user_suspend" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserTakedownComplianceSchema" : { + "type" : "object", + "required" : [ + "user", + "withheld_in_countries", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "user" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "withheld_in_countries" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/CountryCode" + } + } + } + }, + "UserUndeleteComplianceSchema" : { + "type" : "object", + "required" : [ + "user_undelete" + ], + "properties" : { + "user_undelete" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserUnprotectComplianceSchema" : { + "type" : "object", + "required" : [ + "user_unprotect" + ], + "properties" : { + "user_unprotect" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserUnsuspendComplianceSchema" : { + "type" : "object", + "required" : [ + "user_unsuspend" + ], + "properties" : { + "user_unsuspend" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserWithheld" : { + "type" : "object", + "description" : "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", + "required" : [ + "country_codes" + ], + "properties" : { + "country_codes" : { + "type" : "array", + "description" : "Provides a list of countries where this content is not available.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "$ref" : "#/components/schemas/CountryCode" + } + }, + "scope" : { + "type" : "string", + "description" : "Indicates that the content being withheld is a `user`.", + "enum" : [ + "user" + ] + } + } + }, + "UserWithheldComplianceSchema" : { + "type" : "object", + "required" : [ + "user_withheld" + ], + "properties" : { + "user_withheld" : { + "$ref" : "#/components/schemas/UserTakedownComplianceSchema" + } + } + }, + "UsersDMBlockCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "blocked" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersDMUnBlockCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "blocked" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersFollowingCreateRequest" : { + "type" : "object", + "required" : [ + "target_user_id" + ], + "properties" : { + "target_user_id" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "UsersFollowingCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "following" : { + "type" : "boolean" + }, + "pending_follow" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersFollowingDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "following" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersLikesCreateRequest" : { + "type" : "object", + "required" : [ + "tweet_id" + ], + "properties" : { + "tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + }, + "UsersLikesCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "liked" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersLikesDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "liked" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersRetweetsCreateRequest" : { + "type" : "object", + "required" : [ + "tweet_id" + ], + "properties" : { + "tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "additionalProperties" : false + }, + "UsersRetweetsCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "retweeted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersRetweetsDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "retweeted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Variant" : { + "type" : "object", + "properties" : { + "bit_rate" : { + "type" : "integer", + "description" : "The bit rate of the media." + }, + "content_type" : { + "type" : "string", + "description" : "The content type of the media." + }, + "url" : { + "type" : "string", + "description" : "The url to the media.", + "format" : "uri" + } + } + }, + "Variants" : { + "type" : "array", + "description" : "An array of all available variants of the media.", + "items" : { + "$ref" : "#/components/schemas/Variant" + } + }, + "Video" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/Media" + }, + { + "type" : "object", + "properties" : { + "duration_ms" : { + "type" : "integer" + }, + "non_public_metrics" : { + "type" : "object", + "description" : "Nonpublic engagement metrics for the Media at the time of the request.", + "properties" : { + "playback_0_count" : { + "type" : "integer", + "description" : "Number of users who made it through 0% of the video.", + "format" : "int32" + }, + "playback_100_count" : { + "type" : "integer", + "description" : "Number of users who made it through 100% of the video.", + "format" : "int32" + }, + "playback_25_count" : { + "type" : "integer", + "description" : "Number of users who made it through 25% of the video.", + "format" : "int32" + }, + "playback_50_count" : { + "type" : "integer", + "description" : "Number of users who made it through 50% of the video.", + "format" : "int32" + }, + "playback_75_count" : { + "type" : "integer", + "description" : "Number of users who made it through 75% of the video.", + "format" : "int32" + } + } + }, + "organic_metrics" : { + "type" : "object", + "description" : "Organic nonpublic engagement metrics for the Media at the time of the request.", + "properties" : { + "playback_0_count" : { + "type" : "integer", + "description" : "Number of users who made it through 0% of the video.", + "format" : "int32" + }, + "playback_100_count" : { + "type" : "integer", + "description" : "Number of users who made it through 100% of the video.", + "format" : "int32" + }, + "playback_25_count" : { + "type" : "integer", + "description" : "Number of users who made it through 25% of the video.", + "format" : "int32" + }, + "playback_50_count" : { + "type" : "integer", + "description" : "Number of users who made it through 50% of the video.", + "format" : "int32" + }, + "playback_75_count" : { + "type" : "integer", + "description" : "Number of users who made it through 75% of the video.", + "format" : "int32" + }, + "view_count" : { + "type" : "integer", + "description" : "Number of times this video has been viewed.", + "format" : "int32" + } + } + }, + "preview_image_url" : { + "type" : "string", + "format" : "uri" + }, + "promoted_metrics" : { + "type" : "object", + "description" : "Promoted nonpublic engagement metrics for the Media at the time of the request.", + "properties" : { + "playback_0_count" : { + "type" : "integer", + "description" : "Number of users who made it through 0% of the video.", + "format" : "int32" + }, + "playback_100_count" : { + "type" : "integer", + "description" : "Number of users who made it through 100% of the video.", + "format" : "int32" + }, + "playback_25_count" : { + "type" : "integer", + "description" : "Number of users who made it through 25% of the video.", + "format" : "int32" + }, + "playback_50_count" : { + "type" : "integer", + "description" : "Number of users who made it through 50% of the video.", + "format" : "int32" + }, + "playback_75_count" : { + "type" : "integer", + "description" : "Number of users who made it through 75% of the video.", + "format" : "int32" + }, + "view_count" : { + "type" : "integer", + "description" : "Number of times this video has been viewed.", + "format" : "int32" + } + } + }, + "public_metrics" : { + "type" : "object", + "description" : "Engagement metrics for the Media at the time of the request.", + "properties" : { + "view_count" : { + "type" : "integer", + "description" : "Number of times this video has been viewed.", + "format" : "int32" + } + } + }, + "variants" : { + "$ref" : "#/components/schemas/Variants" + } + } + } + ] + }, + "WebhookConfig" : { + "type" : "object", + "description" : "A Webhook Configuration", + "required" : [ + "id", + "url", + "valid", + "created_at" + ], + "properties" : { + "created_at" : { + "type" : "string", + "format" : "date-time" + }, + "id" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "url" : { + "type" : "string", + "description" : "The callback URL of the webhook." + }, + "valid" : { + "type" : "boolean" + } + } + }, + "WebhookConfigCreateRequest" : { + "type" : "object", + "required" : [ + "url" + ], + "properties" : { + "url" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 200 + } + } + }, + "WebhookConfigCreateResponse" : { + "type" : "object", + "description" : "A Webhook Configuration", + "required" : [ + "id", + "url", + "valid", + "created_at" + ], + "properties" : { + "created_at" : { + "type" : "string", + "format" : "date-time" + }, + "id" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "url" : { + "type" : "string", + "description" : "The callback URL of the webhook." + }, + "valid" : { + "type" : "boolean" + } + } + }, + "WebhookConfigDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "WebhookConfigId" : { + "type" : "string", + "description" : "The unique identifier of this webhook config.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "WebhookConfigPutResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "attempted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + }, + "parameters" : { + "AnalyticsFieldsParameter" : { + "name" : "analytics.fields", + "in" : "query", + "description" : "A comma separated list of Analytics fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Analytics object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "app_install_attempts", + "app_opens", + "bookmarks", + "detail_expands", + "email_tweet", + "engagements", + "follows", + "hashtag_clicks", + "id", + "impressions", + "likes", + "media_views", + "permalink_clicks", + "quote_tweets", + "replies", + "retweets", + "shares", + "timestamp", + "unfollows", + "url_clicks", + "user_profile_clicks" + ] + }, + "example" : [ + "app_install_attempts", + "app_opens", + "bookmarks", + "detail_expands", + "email_tweet", + "engagements", + "follows", + "hashtag_clicks", + "id", + "impressions", + "likes", + "media_views", + "permalink_clicks", + "quote_tweets", + "replies", + "retweets", + "shares", + "timestamp", + "unfollows", + "url_clicks", + "user_profile_clicks" + ] + }, + "explode" : false, + "style" : "form" + }, + "CommunityFieldsParameter" : { + "name" : "community.fields", + "in" : "query", + "description" : "A comma separated list of Community fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Community object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "access", + "created_at", + "description", + "id", + "join_policy", + "member_count", + "name" + ] + }, + "example" : [ + "access", + "created_at", + "description", + "id", + "join_policy", + "member_count", + "name" + ] + }, + "explode" : false, + "style" : "form" + }, + "ComplianceJobFieldsParameter" : { + "name" : "compliance_job.fields", + "in" : "query", + "description" : "A comma separated list of ComplianceJob fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a ComplianceJob object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "download_expires_at", + "download_url", + "id", + "name", + "resumable", + "status", + "type", + "upload_expires_at", + "upload_url" + ] + }, + "example" : [ + "created_at", + "download_expires_at", + "download_url", + "id", + "name", + "resumable", + "status", + "type", + "upload_expires_at", + "upload_url" + ] + }, + "explode" : false, + "style" : "form" + }, + "DmConversationFieldsParameter" : { + "name" : "dm_conversation.fields", + "in" : "query", + "description" : "A comma separated list of DmConversation fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a DmConversation object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "id" + ] + }, + "example" : [ + "id" + ] + }, + "explode" : false, + "style" : "form" + }, + "DmEventExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [DmEvent](#DmEvent) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "attachments.media_keys", + "participant_ids", + "referenced_tweets.id", + "sender_id" + ] + }, + "example" : [ + "attachments.media_keys", + "participant_ids", + "referenced_tweets.id", + "sender_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "DmEventFieldsParameter" : { + "name" : "dm_event.fields", + "in" : "query", + "description" : "A comma separated list of DmEvent fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a DmEvent object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "attachments", + "created_at", + "dm_conversation_id", + "entities", + "event_type", + "id", + "participant_ids", + "referenced_tweets", + "sender_id", + "text" + ] + }, + "example" : [ + "attachments", + "created_at", + "dm_conversation_id", + "entities", + "event_type", + "id", + "participant_ids", + "referenced_tweets", + "sender_id", + "text" + ] + }, + "explode" : false, + "style" : "form" + }, + "EngagementFieldsParameter" : { + "name" : "engagement.fields", + "in" : "query", + "description" : "A comma separated list of Engagement fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Engagement object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "errors", + "measurement" + ] + }, + "example" : [ + "errors", + "measurement" + ] + }, + "explode" : false, + "style" : "form" + }, + "LikeExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [Like](#Like) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "liked_tweet_id" + ] + }, + "example" : [ + "liked_tweet_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "LikeFieldsParameter" : { + "name" : "like.fields", + "in" : "query", + "description" : "A comma separated list of Like fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Like object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "example" : [ + "created_at", + "id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "explode" : false, + "style" : "form" + }, + "LikeWithTweetAuthorExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [LikeWithTweetAuthor](#LikeWithTweetAuthor) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "liked_tweet_author_id", + "liked_tweet_id" + ] + }, + "example" : [ + "liked_tweet_author_id", + "liked_tweet_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "LikeWithTweetAuthorFieldsParameter" : { + "name" : "like_with_tweet_author.fields", + "in" : "query", + "description" : "A comma separated list of LikeWithTweetAuthor fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a LikeWithTweetAuthor object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "id", + "liked_tweet_author_id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "example" : [ + "created_at", + "id", + "liked_tweet_author_id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "explode" : false, + "style" : "form" + }, + "ListExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [List](#List) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "owner_id" + ] + }, + "example" : [ + "owner_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "ListFieldsParameter" : { + "name" : "list.fields", + "in" : "query", + "description" : "A comma separated list of List fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a List object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "description", + "follower_count", + "id", + "member_count", + "name", + "owner_id", + "private" + ] + }, + "example" : [ + "created_at", + "description", + "follower_count", + "id", + "member_count", + "name", + "owner_id", + "private" + ] + }, + "explode" : false, + "style" : "form" + }, + "MediaAnalyticsFieldsParameter" : { + "name" : "media_analytics.fields", + "in" : "query", + "description" : "A comma separated list of MediaAnalytics fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a MediaAnalytics object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "cta_url_clicks", + "cta_watch_clicks", + "media_key", + "play_from_tap", + "playback25", + "playback50", + "playback75", + "playback_complete", + "playback_start", + "timestamp", + "video_views", + "watch_time_ms" + ] + }, + "example" : [ + "cta_url_clicks", + "cta_watch_clicks", + "media_key", + "play_from_tap", + "playback25", + "playback50", + "playback75", + "playback_complete", + "playback_start", + "timestamp", + "video_views", + "watch_time_ms" + ] + }, + "explode" : false, + "style" : "form" + }, + "MediaFieldsParameter" : { + "name" : "media.fields", + "in" : "query", + "description" : "A comma separated list of Media fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Media object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "alt_text", + "duration_ms", + "height", + "media_key", + "non_public_metrics", + "organic_metrics", + "preview_image_url", + "promoted_metrics", + "public_metrics", + "type", + "url", + "variants", + "width" + ] + }, + "example" : [ + "alt_text", + "duration_ms", + "height", + "media_key", + "non_public_metrics", + "organic_metrics", + "preview_image_url", + "promoted_metrics", + "public_metrics", + "type", + "url", + "variants", + "width" + ] + }, + "explode" : false, + "style" : "form" + }, + "NoteFieldsParameter" : { + "name" : "note.fields", + "in" : "query", + "description" : "A comma separated list of Note fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Note object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "id", + "info", + "status", + "test_result" + ] + }, + "example" : [ + "id", + "info", + "status", + "test_result" + ] + }, + "explode" : false, + "style" : "form" + }, + "PersonalizedTrendFieldsParameter" : { + "name" : "personalized_trend.fields", + "in" : "query", + "description" : "A comma separated list of PersonalizedTrend fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PersonalizedTrend object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "category", + "post_count", + "trend_name", + "trending_since" + ] + }, + "example" : [ + "category", + "post_count", + "trend_name", + "trending_since" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaceFieldsParameter" : { + "name" : "place.fields", + "in" : "query", + "description" : "A comma separated list of Place fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Place object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "contained_within", + "country", + "country_code", + "full_name", + "geo", + "id", + "name", + "place_type" + ] + }, + "example" : [ + "contained_within", + "country", + "country_code", + "full_name", + "geo", + "id", + "name", + "place_type" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaidAccountContactFieldsParameter" : { + "name" : "plaid_account_contact.fields", + "in" : "query", + "description" : "A comma separated list of PlaidAccountContact fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PlaidAccountContact object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "addresses", + "emails", + "holders", + "telephones" + ] + }, + "example" : [ + "addresses", + "emails", + "holders", + "telephones" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaidAccountFieldsParameter" : { + "name" : "plaid_account.fields", + "in" : "query", + "description" : "A comma separated list of PlaidAccount fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PlaidAccount object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "accountCategory", + "accountId", + "accountNumberDisplay", + "accountType", + "availableBalance", + "currency", + "currentBalance", + "nickname", + "productName", + "status" + ] + }, + "example" : [ + "accountCategory", + "accountId", + "accountNumberDisplay", + "accountType", + "availableBalance", + "currency", + "currentBalance", + "nickname", + "productName", + "status" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaidAccountPaymentNetworkFieldsParameter" : { + "name" : "plaid_account_payment_network.fields", + "in" : "query", + "description" : "A comma separated list of PlaidAccountPaymentNetwork fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PlaidAccountPaymentNetwork object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "bankId", + "identifier", + "transferIn", + "transferOut", + "type" + ] + }, + "example" : [ + "bankId", + "identifier", + "transferIn", + "transferOut", + "type" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaidAccountTransactionFieldsParameter" : { + "name" : "plaid_account_transaction.fields", + "in" : "query", + "description" : "A comma separated list of PlaidAccountTransaction fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PlaidAccountTransaction object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "postedTimestamp", + "status", + "transactionId", + "transactionTimestamp" + ] + }, + "example" : [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "postedTimestamp", + "status", + "transactionId", + "transactionTimestamp" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaidCustomerFieldsParameter" : { + "name" : "plaid_customer.fields", + "in" : "query", + "description" : "A comma separated list of PlaidCustomer fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PlaidCustomer object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "customerId" + ] + }, + "example" : [ + "customerId" + ] + }, + "explode" : false, + "style" : "form" + }, + "PollFieldsParameter" : { + "name" : "poll.fields", + "in" : "query", + "description" : "A comma separated list of Poll fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Poll object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "duration_minutes", + "end_datetime", + "id", + "options", + "voting_status" + ] + }, + "example" : [ + "duration_minutes", + "end_datetime", + "id", + "options", + "voting_status" + ] + }, + "explode" : false, + "style" : "form" + }, + "RulesCountFieldsParameter" : { + "name" : "rules_count.fields", + "in" : "query", + "description" : "A comma separated list of RulesCount fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a RulesCount object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "all_project_client_apps", + "cap_per_client_app", + "cap_per_project", + "client_app_rules_count", + "project_rules_count" + ] + }, + "example" : [ + "all_project_client_apps", + "cap_per_client_app", + "cap_per_project", + "client_app_rules_count", + "project_rules_count" + ] + }, + "explode" : false, + "style" : "form" + }, + "SearchCountFieldsParameter" : { + "name" : "search_count.fields", + "in" : "query", + "description" : "A comma separated list of SearchCount fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a SearchCount object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "end", + "start", + "tweet_count" + ] + }, + "example" : [ + "end", + "start", + "tweet_count" + ] + }, + "explode" : false, + "style" : "form" + }, + "SpaceExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [Space](#Space) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "creator_id", + "host_ids", + "invited_user_ids", + "speaker_ids", + "topic_ids" + ] + }, + "example" : [ + "creator_id", + "host_ids", + "invited_user_ids", + "speaker_ids", + "topic_ids" + ] + }, + "explode" : false, + "style" : "form" + }, + "SpaceFieldsParameter" : { + "name" : "space.fields", + "in" : "query", + "description" : "A comma separated list of Space fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Space object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "creator_id", + "ended_at", + "host_ids", + "id", + "invited_user_ids", + "is_ticketed", + "lang", + "participant_count", + "scheduled_start", + "speaker_ids", + "started_at", + "state", + "subscriber_count", + "title", + "topic_ids", + "updated_at" + ] + }, + "example" : [ + "created_at", + "creator_id", + "ended_at", + "host_ids", + "id", + "invited_user_ids", + "is_ticketed", + "lang", + "participant_count", + "scheduled_start", + "speaker_ids", + "started_at", + "state", + "subscriber_count", + "title", + "topic_ids", + "updated_at" + ] + }, + "explode" : false, + "style" : "form" + }, + "TopicFieldsParameter" : { + "name" : "topic.fields", + "in" : "query", + "description" : "A comma separated list of Topic fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Topic object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "description", + "id", + "name" + ] + }, + "example" : [ + "description", + "id", + "name" + ] + }, + "explode" : false, + "style" : "form" + }, + "TrendFieldsParameter" : { + "name" : "trend.fields", + "in" : "query", + "description" : "A comma separated list of Trend fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Trend object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "trend_name", + "tweet_count" + ] + }, + "example" : [ + "trend_name", + "tweet_count" + ] + }, + "explode" : false, + "style" : "form" + }, + "TweetExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [Tweet](#Tweet) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "article.cover_media", + "article.media_entities", + "attachments.media_keys", + "attachments.media_source_tweet", + "attachments.poll_ids", + "author_id", + "edit_history_tweet_ids", + "entities.mentions.username", + "geo.place_id", + "in_reply_to_user_id", + "entities.note.mentions.username", + "referenced_tweets.id", + "referenced_tweets.id.attachments.media_keys", + "referenced_tweets.id.author_id" + ] + }, + "example" : [ + "article.cover_media", + "article.media_entities", + "attachments.media_keys", + "attachments.media_source_tweet", + "attachments.poll_ids", + "author_id", + "edit_history_tweet_ids", + "entities.mentions.username", + "geo.place_id", + "in_reply_to_user_id", + "entities.note.mentions.username", + "referenced_tweets.id", + "referenced_tweets.id.attachments.media_keys", + "referenced_tweets.id.author_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "TweetFieldsParameter" : { + "name" : "tweet.fields", + "in" : "query", + "description" : "A comma separated list of Tweet fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Tweet object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "article", + "attachments", + "author_id", + "card_uri", + "community_id", + "context_annotations", + "conversation_id", + "created_at", + "display_text_range", + "edit_controls", + "edit_history_tweet_ids", + "entities", + "geo", + "id", + "in_reply_to_user_id", + "lang", + "media_metadata", + "non_public_metrics", + "note_tweet", + "organic_metrics", + "possibly_sensitive", + "promoted_metrics", + "public_metrics", + "referenced_tweets", + "reply_settings", + "scopes", + "source", + "text", + "withheld" + ] + }, + "example" : [ + "article", + "attachments", + "author_id", + "card_uri", + "community_id", + "context_annotations", + "conversation_id", + "created_at", + "display_text_range", + "edit_controls", + "edit_history_tweet_ids", + "entities", + "geo", + "id", + "in_reply_to_user_id", + "lang", + "media_metadata", + "non_public_metrics", + "note_tweet", + "organic_metrics", + "possibly_sensitive", + "promoted_metrics", + "public_metrics", + "referenced_tweets", + "reply_settings", + "scopes", + "source", + "text", + "withheld" + ] + }, + "explode" : false, + "style" : "form" + }, + "UsageFieldsParameter" : { + "name" : "usage.fields", + "in" : "query", + "description" : "A comma separated list of Usage fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Usage object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "cap_reset_day", + "daily_client_app_usage", + "daily_project_usage", + "project_cap", + "project_id", + "project_usage" + ] + }, + "example" : [ + "cap_reset_day", + "daily_client_app_usage", + "daily_project_usage", + "project_cap", + "project_id", + "project_usage" + ] + }, + "explode" : false, + "style" : "form" + }, + "UserExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [User](#User) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "affiliation.user_id", + "most_recent_tweet_id", + "pinned_tweet_id" + ] + }, + "example" : [ + "affiliation.user_id", + "most_recent_tweet_id", + "pinned_tweet_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "UserFieldsParameter" : { + "name" : "user.fields", + "in" : "query", + "description" : "A comma separated list of User fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a User object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "affiliation", + "confirmed_email", + "connection_status", + "created_at", + "description", + "entities", + "id", + "is_identity_verified", + "location", + "most_recent_tweet_id", + "name", + "parody", + "pinned_tweet_id", + "profile_banner_url", + "profile_image_url", + "protected", + "public_metrics", + "receives_your_dm", + "subscription", + "subscription_type", + "url", + "username", + "verified", + "verified_followers_count", + "verified_type", + "withheld" + ] + }, + "example" : [ + "affiliation", + "confirmed_email", + "connection_status", + "created_at", + "description", + "entities", + "id", + "is_identity_verified", + "location", + "most_recent_tweet_id", + "name", + "parody", + "pinned_tweet_id", + "profile_banner_url", + "profile_image_url", + "protected", + "public_metrics", + "receives_your_dm", + "subscription", + "subscription_type", + "url", + "username", + "verified", + "verified_followers_count", + "verified_type", + "withheld" + ] + }, + "explode" : false, + "style" : "form" + }, + "WebhookConfigFieldsParameter" : { + "name" : "webhook_config.fields", + "in" : "query", + "description" : "A comma separated list of WebhookConfig fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a WebhookConfig object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "id", + "url", + "valid" + ] + }, + "example" : [ + "created_at", + "id", + "url", + "valid" + ] + }, + "explode" : false, + "style" : "form" + } } + } } \ No newline at end of file diff --git a/x-api/community-notes/delete-a-community-note.mdx b/x-api/community-notes/delete-a-community-note.mdx new file mode 100644 index 0000000..847876e --- /dev/null +++ b/x-api/community-notes/delete-a-community-note.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/notes/{id} +--- \ No newline at end of file From 4d232a5ad7e45b606d3e62c50e9b712c2e48f161 Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Tue, 15 Jul 2025 15:25:22 -0700 Subject: [PATCH 15/34] Documentation edits made through Mintlify web editor --- x-api/account-activity/introduction.mdx | 1 - 1 file changed, 1 deletion(-) diff --git a/x-api/account-activity/introduction.mdx b/x-api/account-activity/introduction.mdx index 194370e..773da62 100644 --- a/x-api/account-activity/introduction.mdx +++ b/x-api/account-activity/introduction.mdx @@ -35,7 +35,6 @@ The returned Posts from Account Activity API count towards the monthly [Post cap | Tier | Pricing | Number of Unique Subscriptions | Number of Webhooks | | ----- | ----- | ----- | ----- | -| Self-Serve Pro | $5000/mo | 1 | 1 | | Enterprise | Contact sales | 5000+ | 5+ | This document focuses on managing user subscriptions associated with your webhooks using v2 Account Activity API endpoints. From a53fdb0bec2f70765b95ac87529bfe92f01be74b Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Wed, 16 Jul 2025 12:17:19 -0700 Subject: [PATCH 16/34] Documentation edits made through Mintlify web editor --- x-api/introduction.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-api/introduction.mdx b/x-api/introduction.mdx index ac6b259..68ebb34 100644 --- a/x-api/introduction.mdx +++ b/x-api/introduction.mdx @@ -60,7 +60,7 @@ X API v2 is ready for prime time\! We recommend that the majority of developers - For hobbyists or prototypes - Low-rate limit access to suite of v2 endpoints - 3,000 Posts per month (user level), 50,000 Posts per month (app level) -- 10,000/month Posts read-limit rate cap +- 15,000/month Posts read-limit rate cap - 1 Project, 2 Apps per Project - Login with X, Access to Ads API - Cost: $200 per month @@ -69,8 +69,8 @@ X API v2 is ready for prime time\! We recommend that the majority of developers - For startups scaling their business - Rate-limited access to suite of v2 endpoints, including search and filtered stream -- 1,000,000 Posts per month - GET at the app level - 300,000 Posts per month - posting limit at the app level +- 1,000,000/month Posts read-limit rate cap - 1 Project, 3 Apps per Project - Login with X, Access to Ads API - Cost: $5,000 per month From 3adbb659224759333483f23c757b28c122c66313 Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Mon, 21 Jul 2025 13:21:28 -0700 Subject: [PATCH 17/34] Documentation edits made through Mintlify web editor --- .../integrate/build-a-rule.mdx | 612 +++++++++--------- .../integrate/consuming-streaming-data.mdx | 190 +++--- .../handling-high-volume-capacity.mdx | 86 +-- .../recovery-and-redundancy-features.mdx | 88 +-- x-api/posts/filtered-stream/introduction.mdx | 2 +- 5 files changed, 489 insertions(+), 489 deletions(-) diff --git a/x-api/posts/filtered-stream/integrate/build-a-rule.mdx b/x-api/posts/filtered-stream/integrate/build-a-rule.mdx index 4633dfe..43961d6 100644 --- a/x-api/posts/filtered-stream/integrate/build-a-rule.mdx +++ b/x-api/posts/filtered-stream/integrate/build-a-rule.mdx @@ -1,307 +1,307 @@ ---- -title: Build a rule -sidebarTitle: Build a rule ---- - -## Building rules for filtered stream - -The filtered stream endpoints deliver filtered Posts to you in real-time that match on a set of rules that are applied to the stream. Rules are made up of operators that are used to match on a variety of Post attributes. - -Multiple rules can be applied to a stream using the [POST /tweets/search/stream/rules](/x-api/posts/filtered-stream#post-2-tweets-search-stream-rules) endpoint. Once you’ve added rules and connect to your stream using the [GET /tweets/search/stream](/x-api/posts/filtered-stream#get-2-tweets-search-stream) endpoint, only those Posts that match your rules will be delivered in real-time through a persistent streaming connection. You do not need to disconnect from your stream to add or remove rules.  - -### Table of contents - -* [Building a rule](#building-a-rule) - * [Rule limitations](#rule-limitations) - * [Operator availability](#operator-availability) - * [Operator types: standalone and conjunction-required](#operator-types-standalone-and-conjunction-required) - * [Boolean operators and grouping](#boolean-operators-and-grouping) - * [Order of operations](#order-of-operations) - * [Punctuation, diacritics, and case sensitivity](#punctuation-diacritics-and-case-sensitivity) - * [Specificity and efficiency](#specificity-and-efficiency) - * [Iteratively building a rule](#iteratively-building-a-rule) - * [Adding and removing rules](#adding-and-removing-rules) - * [Rule examples](#rule-examples) -* [List of operators](#operators) - -### Building a rule - -#### Rule limitations - -Limits on the number of rules will depend on which [access level](/x-api/getting-started/about-x-api) is applied to your [Project](/resources/fundamentals/projects). - -You can see how these limits apply via the [filtered stream introduction](/x-api/posts/filtered-stream) page. - -#### Operator types: standalone and conjunction-required - -**Standalone operators** can be used alone or together with any other operators (including those that require conjunction). - -For example, the following rule will work because it uses the `#hashtag` operator, which is standalone: - -`#xapiv2` - -**Conjunction required** operators cannot be used by themselves in a rule; they can only be used when at least one standalone operator is included in the rule. This is because using these operators alone would be far too general, and would match on an extremely high volume of Posts. - -For example, the following rules are not supported since they contain only conjunction required operators: - -`has:media` - -`has:links OR is:retweet` - -If we add in a standalone operator, such as the phrase `"X data"`, the rule would then work properly.  - -`"X data" has:mentions (has:media OR has:links)` - -#### Boolean operators and grouping - -If you would like to string together multiple operators in a single rule, you have the following tools at your disposal: - -| | | -| :--- | :--- | -| **AND logic** | Successive operators **with a space between them** will result in boolean "AND" logic, meaning that Posts will match only if both conditions are met. For example, `snow day #NoSchool` will match Posts containing the terms snow and day and the hashtag #NoSchool. | -| **OR logic** | Successive operators with OR between them will result in OR logic, meaning that Posts will match if either condition is met. For example, specifying `grumpy OR cat OR #meme` will match any Posts containing at least the terms grumpy or cat, or the hashtag #meme. | -| **NOT logic, negation** | Prepend a dash (-) to a keyword (or any operator) to negate it (NOT). For example, `cat #meme -grumpy` will match Posts containing the hashtag #meme and the term cat, but only if they do not contain the term grumpy. One common rule clause is `-is:retweet`, which will not match on Retweets, thus matching only on original Posts, Quote Tweets, and replies. All operators can be negated, but negated operators cannot be used alone. | -| **Grouping** | You can use parentheses to group operators together. For example, `(grumpy cat) OR (#meme has:images)` will return either Posts containing the terms grumpy and cat, or Posts with images containing the hashtag #meme. Note that ANDs are applied first, then ORs are applied. | - - -**A note on negations** - -All operators can be negated except for `sample:`, and `-is:nullcast` must always be negated. Negated operators cannot be used alone. - -Do not negate a set of operators grouped together in a set of parentheses. Instead, negate each individual operator. - -For example, instead of using `skiing -(snow OR day OR noschool)`, we suggest that you use `skiing -snow -day -noschool`.  - - -#### Order of operations - -When combining AND and OR functionality, the following order of operations will dictate how your rule is evaluated. - -1. Operators connected by AND logic are combined first -2. Then, operators connected with OR logic are applied - - - -For example: - -* `apple OR iphone ipad` would be evaluated as `apple OR (iphone ipad)` -* `ipad iphone OR android` would be evaluated as `(iphone ipad) OR android` - - - -To eliminate uncertainty and ensure that your rule is evaluated as intended, group terms together with parentheses where appropriate.  - -For example: - -* `(apple OR iphone) ipad` -* `iphone (ipad OR android)` - -#### Punctuation, diacritics, and case sensitivity - -If you specify a keyword or hashtag rule with character accents or diacritics, it will match Posts that contain the exact word with proper accents or diacritics, but not those that have the proper letters, but without the accent or diacritic.  - -For example, rules with the keyword `diacrítica` or hashtag `#cumpleaños` will match Posts that contain _diacrítica_ or _#cumpleaños_ because they include the accent or diacritic. However, these rules will not match Posts that contain _Diacritica_ or _#cumpleanos_ without the tilde í or eñe. - - -Characters with accents or diacritics are treated the same as normal characters and are not treated as word boundaries. For example, a rule with the keyword _cumpleaños_ would only match Posts containing the word _cumpleaños_ and would not match Posts containing _cumplea_, _cumplean_, or _os_. - -All operators are evaluated in a case-insensitive manner. For example, the rule cat will match all of the following: _cat_, _CAT_, _Cat_. - - -The [Search Posts](/x-api/posts/search/introduction) matching behavior acts differently from filtered stream. When [building a Search Posts query](/x-api/posts/search/integrate/build-a-query), know that keywords and hashtags that include accents or diacritics will match both the term with the accents and diacritics, as well as with normal characters.  - -For example, Search Posts queries that include a keyword `Diacrítica` or hashtag `#cumpleaños` will match both _Diacrítica_ and _#cumpleaños_, as well as _Diacritica_ or _#cumpleanos_ without the tilde í or eñe. - - -#### Specificity and efficiency - -When you start to build your rule, it is important to keep a few things in mind. - -* Using broad, standalone operators for your rule such as a single keyword or #hashtag is generally not recommended since it will likely match on a massive volume of Posts. Creating a more robust rule will result in a more specific set of matching Posts, and will hopefully reduce the amount of noise in the payload that you will need to sift through to find valuable insights.  - * For example, if your rule was just the keyword `happy` you will likely get anywhere from 200,000 - 300,000 Posts per day. - * Adding more conditional operators narrows your search results, for example `(happy OR happiness) place_country:GB -birthday -is:retweet` -* Writing efficient rules is also beneficial for staying within the characters rule length restriction. The character count includes the entire rule string including spaces and operators. - * For example, the following rule is 59 characters long: `(happy OR happiness) place_country:GB -birthday -is:retweet` - -#### Quote Tweet matching behavior - -When using the filtered stream endpoints, operators will match on both the content from the original Post that was quoted, as well as the content included in the Quote Tweet. - -However, please note that the [Search Posts](/x-api/posts/search/introduction) endpoints will not match on the content from the original Post that was quoted, but will match on the Quote Tweet's content. - -#### Iteratively building a rule - -##### Test your rule early and often - -Getting a rule to return the "right" results the first time is rare. There is so much on X that may or may not be obvious at first and the rule syntax described above may be hard to match to your desired search. As you build a rule, it is important for you to periodically test it out with the stream endpoint to see what data it returns. You can also test with one of the [Search Post](/x-api/posts/search/introduction) endpoints, assuming the operators that you are using are also available via that endpoint.  - -For this section, we are going to start with the following rule and adjust it based on the results that we receive during our test:  - -`happy OR happiness` - -##### Use results to narrow the rule - -As you test the rule, you should scan the returned Posts to see if they include the data that you are expecting and hoping to receive. Starting with a broad rule and a superset of Post matches allows you to review the result and narrow the rule to filter out undesired results.   - -When we tested the example rule, we noticed that we were getting Posts in a variety of different languages. In this situation, we want to only receive Posts that are in english, so we’re going to add the `lang:` operator: - -`(happy OR happiness) lang:en` - -The test delivered a number of Posts wishing people a happy birthday, so we are going to add `-birthday` as a negated keyword operator. We also want to only receive original Posts, so we’ve added the negated `-is:retweet` operator: - -`(happy OR happiness) lang:en -birthday -is:retweet` - -##### Adjust for inclusion where needed - -If you notice that you are not receiving data that you expect and know that there are existing Posts that should return, you may need to broaden your rule by removing operators that may be filtering out the desired data.  - -For our example, we noticed that there were other Posts in our personal timeline that expressed the emotion that we are looking for and weren’t included in the test results. To ensure we have greater coverage, we are going to add the keywords, `excited` and `elated`. - -`(happy OR happiness OR excited OR elated) lang:en -birthday -is:retweet` - -##### Adjust for popular trends/bursts over the time period - -Trends come and go on X quickly. Maintaining your rule should be an active process. If you plan to use a single rule for a while, we suggest that you periodically check in on the data that you are receiving to see if you need to make any adjustments. - -In our example, we notice that we started to receive some Posts that are wishing people a “happy holidays”. Since we don’t want these Posts included in our results, we are going to add a negated `-holidays` keyword. - -`(happy OR happiness OR excited OR elated) lang:en -birthday -is:retweet -holidays` - -#### Adding and removing rules - -You will be using the [POST /2/tweets/search/stream/rules](/x-api/posts/filtered-stream#post-2-tweets-search-stream-rules) endpoint when both adding and deleting rules from your stream. - -To add one or more rule to your stream, submit an `add` JSON body with an array that contains the value parameter including the rule, and the optional `tag` parameter including free-form text that you can use to [identify which returned Posts match this rule](/x-api/posts/filtered-stream#matching-returned-posts-to-their-associated-rule).  - -For example, if you were trying to add a set of rules to your stream, your cURL command might look like this: - -```bash -curl -X POST 'https://api.x.com/2/tweets/search/stream/rules' \ --H "Content-type: application/json" \ --H "Authorization: Bearer $ACCESS_TOKEN" -d \ -'{ - "add": [ - {"value": "cat has:media", "tag": "cats with media"}, - {"value": "cat has:media -grumpy", "tag": "happy cats with media"}, - {"value": "meme", "tag": "funny things"}, - {"value": "meme has:images"} - ] -}' -``` - -Similarly, to remove one or more rules from your stream, submit a `delete` JSON body with the array of that contains the `id` parameter including the rule IDs that you would like to delete. - -For example, if you were trying to remove a set of rules from your stream, your cURL command might look like this: - -```bash -curl -X POST 'https://api.x.com/2/tweets/search/stream/rules' \ - -H "Content-type: application/json" \ - -H "Authorization: Bearer $ACCESS_TOKEN" -d \ - '{ - "delete": { - "ids": [ - "1165037377523306498", - "1165037377523306499" - ] - } - }' -``` - -We have sample code in different languages available via our [Github](https://github.com/xdevplatform/Twitter-API-v2-sample-code/tree/master/Filtered-Stream).  - -#### Rule examples - -##### Tracking a natural disaster - -The following rule matched on Posts coming from weather agencies and gauges that discuss Hurricane Harvey, which hit Houston in 2017. Notice the use of the [matching rules](/x-api/posts/filtered-stream#matching-returned-posts-to-their-associated-rule) tag, and the JSON format that you will need to use when submitting the rule to the [POST /2/tweets/search/stream/rules endpoint](/x-api/posts/filtered-stream#post-2-tweets-search-stream-rules). - -```json -{ - "value": "-is:retweet has:geo (from:NWSNHC OR from:NHC_Atlantic OR from:NWSHouston OR from:NWSSanAntonio OR from:USGS_TexasRain OR from:USGS_TexasFlood OR from:JeffLindner1)", - "tag": "theme:info has:geo original from weather agencies and gauges" -} -``` - -##### Reviewing the sentiment of a conversation - -The next rule could be used to better understand the sentiment of the conversation developing around the hashtag, _#nowplaying_, but only from Posts published within North America. - -```json -{ - "value": "#nowplaying (happy OR exciting OR excited OR favorite OR fav OR amazing OR lovely OR incredible) (place_country:US OR place_country:MX OR place_country:CA) -horrible -worst -sucks -bad -disappointing", - "tag": "#nowplaying positive" -}, -{ - "value": "#nowplaying (horrible OR worst OR sucks OR bad OR disappointing) (place_country:US OR place_country:MX OR place_country:CA) -happy -exciting -excited -favorite -fav -amazing -lovely -incredible", - "tag": "#nowplaying negative" -} -``` - -##### Find Posts that relate to a specific Post annotation - -This rule was built to search for original Posts that included an image of a pet that is not a cat, where the language identified in the Post is Japanese. To do this, we used the `context:` operator to take advantage of the [Post annotation](/x-api/fundamentals/post-annotations) functionality. We first used the [Post lookup](/x-api/posts/lookup/introduction) endpoint and the `tweet.fields=context_annotations` fields parameter to identify which domain.entity IDs we need to use in our query: - -* Posts that relate to cats return `domain` 66 (Interests and Hobbies category) with `entity` 852262932607926273 (Cats).  -* Posts that relate to pets return `domain` 65 (Interests and Hobbies Vertical) with `entity` 852262932607926273 (Pets).  -   - -Here is what the rule would look like: - -```json -{ - "value": "context:65.852262932607926273 -context:66.852262932607926273 -is:retweet has:images lang:ja", - "tag": "Japanese pets with images - no cats" -} -``` - -### Operators - -**Note:** For some operators, an alternate name, or alias, is available. - -| **Operator** | **Type** | **Description** | -|:------------------------------|:-------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `keyword` | Standalone | Matches a keyword within the body of a Post. This is a tokenized match, meaning that your keyword string will be matched against the tokenized text of the Post body. Tokenization splits words based on punctuation, symbols, and Unicode basic plane separator characters.
For example, a Post with the text “I like coca-cola” would be split into the following tokens: I, like, coca, cola. These tokens would then be compared to the keyword string used in your rule. To match strings containing punctuation (for example, coca-cola), symbol, or separator characters, you must wrap your keyword in double-quotes.

Example: `pepsi OR cola OR "coca cola"` | -| `emoji` | Standalone | Matches an emoji within the body of a Post. Similar to a keyword, emojis are a tokenized match, meaning that your emoji will be matched against the tokenized text of the Post body.

Note that if an emoji has a variant, you must wrap it in double quotes to add to a rule.

Example: `(😃 OR 😡) 😬` | -| `"exact phrase match"` | Standalone | Matches the exact phrase within the body of a Post.

Example: `("X API" OR #v2) -"filtered stream"` | -| `#` | Standalone | Matches any Post containing a recognized hashtag, if the hashtag is a recognized entity in a Post.

This operator performs an exact match, NOT a tokenized match, meaning the rule `#thanku` will match posts with the exact hashtag #thanku, but not those with the hashtag #thankunext.

Example: `#thankunext #fanart OR @arianagrande` | -| `@` | Standalone | Matches any Post that mentions the given username, if the username is a recognized entity (including the @ character).

Example: `(@XDevelopers OR @api) -@x` | -| `$` | Standalone | Matches any Post that contains the specified 'cashtag' (where the leading character of the token is the $ character).

Note that the cashtag operator relies on X's 'symbols' entity extraction to match cashtags, rather than trying to extract the cashtag from the body itself.

Example: `$twtr OR @XDevelopers -$fb` | -| `from:` | Standalone | Matches any Post from a specific user.
The value can be either the username (excluding the @ character) or the user's numeric user ID.

You can only pass a single username/ID `from:` operator.

Example: `from:XDevelopers OR from:api -from:X` | -| `to:` | Standalone | Matches any Post that is in reply to a particular user.
The value can be either the username (excluding the @ character) or the user's numeric user ID.

You can only pass a single username/ID per `to:` operator.

Example: `to:XDevelopers OR to:api -to:x` | -| `url:` | Standalone | Performs a tokenized match on any validly-formatted URL of a Post.

This operator can match on the contents of both the `url` or `expanded_url` fields. For example, a Post containing "You should check out X Developer Labs: https://t.co/c0A36SWil4" (with the short URL redirecting to https://developer.x.com) will match both the following rules:

`from:XDevelopers url:"https://developer.x.com"`
(because it will match the contents of `entities.urls.expanded_url`)

`from:XDevelopers url:"https://t.co"`
(because it will match the contents of `entities.urls.url`)

Tokens and phrases containing punctuation or special characters should be double-quoted (for example, `url:"/developer"`). Similarly, to match on a specific protocol, enclose in double-quotes (for example, `url:"https://developer.x.com"`).

You can only pass a single URL per `url:` operator. | -| `retweets_of:` | Standalone | *Available alias:* `retweets_of_user:`
Matches Posts that are Retweets of the specified user. The value can be either the username (excluding the @ character) or the user's numeric user ID.

You can only pass a single username/ID per `retweets_of:` operator.

Example: `retweets_of:XDevelopers OR retweets_of:twitterapi`
See [HERE](/x-api/users/lookup/introduction) for methods for looking up numeric X Account IDs. | -| `context:` | Standalone | Matches Posts with a specific domain id and/or domain id, entity id pair where * represents a wildcard. To learn more about this operator, please visit our page on [Post annotations](/x-api/fundamentals/post-annotations).

You can only pass a single domain/entity per `context:` operator.

`context:domain_id.entity_id`
`context:domain_id.*`
`context:*.entity_id`

Examples:
`context:10.799022225751871488`
(`domain_id.entity_id` returns Posts matching that specific domain-entity pair)

`context:47.*`
(`domain_id.*` returns Posts matching that domain ID, with any domain-entity pair)

`context:*.799022225751871488`
(`*.entity_id` returns Posts matching that entity ID, with any domain-entity pair) | -| `entity:` | Standalone | Matches Posts with a specific entity string value. To learn more about this operator, please visit our page on [annotations](/x-api/fundamentals/post-annotations).

You can only pass a single entity per `entity:` operator.

`entity:"string declaration of entity/place"`

Examples: `entity:"Michael Jordan" OR entity:"Barcelona"` | -| `conversation_id:` | Standalone | Matches Posts that share a common conversation ID. A conversation ID is set to the Post ID of a Post that started a conversation. As Replies to a Post are posted, even Replies to Replies, the `conversation_id` is added to its JSON payload.

You can only pass a single conversation ID per `conversation_id:` operator.

Example: `conversation_id:1334987486343299072 (from:XDevelopers OR from:api)` | -| `bio:` | Standalone | *Available alias:* `user_bio:`
Matches a keyword or phrase within the Post publisher's bio. This is a tokenized match within the contents of the `description` field within the [User object](/x-api/fundamentals/data-dictionary#user).

Example: `bio:developer OR bio:"data engineer" OR bio:academic` | -| `bio_name:` | Standalone | Matches a keyword within the Post publisher's user bio name. This is a tokenized match within the contents of a user's "name" field within the [User object](/x-api/fundamentals/data-dictionary#user).

Example: `bio_name:phd OR bio_name:md` | -| `bio_location:` | Standalone | *Available alias:* `user_bio_location:`
Matches Posts that are published by users whose location contains the specified keyword or phrase. This operator performs a tokenized match, similar to the normal keyword rules on the message body.

This location is part of the [User object](/x-api/fundamentals/data-dictionary#user), matches on the 'location' field, and is a non-normalized, user-generated, free-form string. It is also different from a Post's location (see `place:`).

Example: `bio_location:"big apple" OR bio_location:nyc OR bio_location:manhattan` | -| `place:` | Standalone | Matches Posts tagged with the specified location or X place ID. Multi-word place names (“New York City”, “Palo Alto”) should be enclosed in quotes.

You can only pass a single place per `place:` operator.

Note: See the [GET geo/search](https://developer.x.com/content/developer-twitter/en/docs/geo/places-near-location/api-reference/get-geo-search) standard v1.1 endpoint for how to obtain X place IDs.

Note: This operator will not match on Retweets, since Retweet's places are attached to the original Post. It will also not match on places attached to the original Post of a Quote Tweet.

Example: `place:"new york city" OR place:seattle OR place:fd70c22040963ac7` | -| `place_country:` | Standalone | Matches Posts where the country code associated with a tagged place/location matches the given ISO alpha-2 character code.

You can find a list of valid ISO codes on [Wikipedia](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).

You can only pass a single ISO code per `place_country:` operator.

Note: This operator will not match on Retweets, since Retweet's places are attached to the original Post. It will also not match on places attached to the original Post of a Quote Tweet.

Example: `place_country:US OR place_country:MX OR place_country:CA` | -| `point_radius:` | Standalone | Matches against the `place.geo.coordinates` object of the Post when present, and in X, against a place geo polygon, where the Place polygon is fully contained within the defined region.

`point_radius:[longitude latitude radius]`

- Units of radius supported are miles (mi) and kilometers (km)
- Radius must be less than 25mi
- Longitude is in the range of ±180
- Latitude is in the range of ±90
- All coordinates are in decimal degrees
- Rule arguments are contained within brackets, space delimited

You can only pass a single geo polygon per `point_radius:` operator.

Note: This operator will not match on Retweets, since Retweet's places are attached to the original Post. It will also not match on places attached to the original Post of a Quote Tweet.

Example: `point_radius:[2.355128 48.861118 16km] OR point_radius:[-41.287336 174.761070 20mi]` | -| `bounding_box:` | Standalone | *Available alias:* `geo_bounding_box:`
Matches against the place.geo.coordinates object of the Post when present, and in X, against a place geo polygon, where the place polygon is fully contained within the defined region.

`bounding_box:[west_long south_lat east_long north_lat]`

- `west_long south_lat` represent the southwest corner of the bounding box where `west_long` is the longitude of that point, and `south_lat` is the latitude.
- `east_long north_lat` represent the northeast corner of the bounding box, where `east_long` is the longitude of that point, and `north_lat` is the latitude.
- Width and height of the bounding box must be less than 25mi
- Longitude is in the range of ±180
- Latitude is in the range of ±90
- All coordinates are in decimal degrees.
- Rule arguments are contained within brackets, space delimited.

You can only pass a single geo polygon per `bounding_box:` operator.

Note: This operator will not match on Retweets, since Retweet's places are attached to the original Post. It will also not match on places attached to the original Post of a Quote Tweet.

Example: `bounding_box:[-105.301758 39.964069 -105.178505 40.09455]` | -| `is:retweet` | Conjunction required | Matches on Retweets that match the rest of the specified rule. This operator looks only for true Retweets (for example, those generated using the Retweet button). Quote Tweets will not be matched by this operator.

Example: `data @XDevelopers -is:retweet` | -| `is:reply` | Conjunction required | Deliver only explicit replies that match a rule. Can also be negated to exclude replies that match a rule from delivery.

When used with the filtered stream, this operator matches on replies to an original Post, replies in quoted Posts, and replies in Retweets.

Example: `from:XDevelopers is:reply` | -| `is:quote` | Conjunction required | Returns all Quote Tweets, also known as Posts with comments.

Example: `"sentiment analysis" is:quote` | -| `is:verified` | Conjunction required | Deliver only Posts whose authors are verified by X.

Example: `#nowplaying is:verified` | -| `-is:nullcast` | Conjunction required | Removes Posts created for promotion only on ads.twitter.com that have a `source:"Twitter for Advertisers (legacy)"` or `source:"Twitter for Advertisers".`
This operator must be negated.

For more info on Nullcasted Posts, see our page on [Post availability](https://developer.x.com/content/developer-twitter/en/docs/twitter-api/v1/tweets/post-and-engage/guides/tweet-availability).

Example: `"mobile games" -is:nullcast` | -| `has:hashtags` | Conjunction required | Matches Posts that contain at least one hashtag.

Example: `from:XDevelopers -has:hashtags` | -| `has:cashtags` | Conjunction required | Matches Posts that contain a cashtag symbol (with a leading '$' character. For example, `$tag`).

Example: `#stonks has:cashtags` | -| `has:links` | Conjunction required | This operator matches Posts which contain links and media in the Post body.

Example: `from:XDevelopers announcement has:links` | -| `has:mentions` | Conjunction required | Matches Posts that mention another X user.

Example: `#nowplaying has:mentions` | -| `has:media` | Conjunction required | *Available alias:* `has:media_link`
Matches Posts that contain a media object, such as a photo, GIF, or video, as determined by X. This will not match on media created with Periscope, or Posts with links to other media hosting sites.

Example: `(kittens OR puppies) has:media` | -| `has:images` | Conjunction required | Matches Posts that contain a recognized URL to an image.

Example: `#meme has:images` | -| `has:video_link` | Conjunction required | *Available alias:* `has:videos`
Matches Posts that contain native X videos, uploaded directly to X. This will not match on videos created with Periscope, or Posts with links to other video hosting sites.

Example: `#icebucketchallenge has:video_link` | -| `has:geo` | Conjunction required | Matches Posts that have Post-specific geolocation data provided by the X user. This can be either a location in the form of a X place, with the corresponding display name, geo polygon, and other fields, or in rare cases, a geo lat-long coordinate.

Note: Operators matching on place (Post geo) will only include matches from original posts. Retweets do not contain any place data.

Example: `recommend #paris has:geo -bakery` | -| `sample:` | Conjunction required | Returns a random percent sample of Posts that match a rule rather than the entire set of Posts. The percent value must be represented by an integer between 1 and 100 (for example, `sample:10` will return a random 10% sample).

This operator first reduces the scope of the stream to the percentage you specified, then the rule/filter is applied to that sampled subset. In other words, if you are using, for example, `sample:10`, each Post will have a 10% chance of being in the sample.

This operator applies to the entire rule and requires all OR'd terms to be grouped.

Example: `#nowplaying @spotify sample:15` | -| `lang:` | Conjunction required | Matches Posts that have been classified by X as being of a particular language (if, and only if, the post has been classified). It is important to note that each Post is currently only classified as being of one language, so AND’ing together multiple languages will yield no results.

You can only pass a single BCP 47 language identifier per `lang:` operator.

Note: if no language classification can be made the provided result is 'und' (for undefined).

Example: `recommend #paris lang:en`

The list below represents the currently supported languages and their corresponding BCP 47 language identifier:

| Language | BCP 47 |
|-|-|
| Amharic | `am` |
| Arabic | `ar` |
| Armenian | `hy` |
| Basque | `eu` |
| Bengali | `bn` |
| Bosnian | `bs` |
| Bulgarian | `bg` |
| Burmese | `my` |
| Croatian | `hr` |
| Catalan | `ca` |
| Czech | `cs` |
| Danish | `da` |
| Dutch | `nl` |
| English | `en` |
| Estonian | `et` |
| Finnish | `fi` |
| French | `fr` |
| Georgian | `ka` |
| German | `de` |
| Greek | `el` |
| Gujarati | `gu` |
| Haitian Creole | `ht` |
| Hebrew | `iw` |
| Hindi | `hi` |
| Latinized Hindi | `hi-Latn` |
| Hungarian | `hu` |
| Icelandic | `is` |
| Indonesian | `in` |
| Italian | `it` |
| Japanese | `ja` |
| Kannada | `kn` |
| Khmer | `km` |
| Korean | `ko` |
| Lao | `lo` |
| Latvian | `lv` |
| Lithuanian | `lt` |
| Malayalam | `ml` |
| Maldivian | `dv` |
| Marathi | `mr` |
| Nepali | `ne` |
| Norwegian | `no` |
| Oriya | `or` |
| Panjabi | `pa` |
| Pashto | `ps` |
| Persian | `fa` |
| Polish | `pl` |
| Portuguese | `pt` |
| Romanian | `ro` |
| Russian | `ru` |
| Serbian | `sr` |
| Simplified Chinese | `zh-CN` |
| Sindhi | `sd` |
| Sinhala | `si` |
| Slovak | `sk` |
| Slovenian | `sl` |
| Sorani Kurdish | `ckb` |
| Spanish | `es` |
| Swedish | `sv` |
| Tagalog | `tl` |
| Tamil | `ta` |
| Telugu | `te` |
| Thai | `th` |
| Tibetan | `bo` |
| Traditional Chinese | `zh-TW` |
| Turkish | `tr` |
| Ukrainian | `uk` |
| Urdu | `ur` |
| Uyghur | `ug` |
| Vietnamese | `vi` |
| Welsh | `cy` | | -| `followers_count:` | | Matches Posts when the author has a followers count within the given range.
If a single number is specified, any number equal to or higher will match.

Example: `followers_count:500`

Additionally, a range can be specified to match any number in the given range.

Example: `followers_count:1000..10000` | -| `tweets_count:` | | *Available alias:* `statuses_count:`
Matches Posts when the author has posted a number of Posts that falls within the given range.
If a single number is specified, any number equal to or higher will match.

Example: `tweets_count:1000`

Additionally, a range can be specified to match any number in the given range.

Example: `tweets_count:1000..10000` | -| `following_count:` | | *Available alias:* `friends_count:`
Matches Posts when the author has a friends count (the number of users they follow) that falls within the given range.
If a single number is specified, any number equal to or higher will match.

Example: `following_count:500`

Additionally, a range can be specified to match any number in the given range.

Example: `following_count:1000..10000` | -| `listed_count:` | | *Available alias:* `user_in_lists_count:`
Matches Posts when the author is included in the specified number of Lists.
If a single number is specified, any number equal to or higher will match.

Example: `listed_count:10`

Additionally, a range can be specified to match any number in the given range.

Example: `listed_count:10..100` | -| `url_title:` | | *Available alias:* `within_url_title:`
Performs a keyword/phrase match on the expanded URL HTML title metadata.

Example: `url_title:snow` | -| `url_description:` | | *Available alias:* `within_url_description:`
Performs a keyword/phrase match on the expanded page description metadata.

Example: `url_description:weather` | -| `url_contains:` | | Matches Posts with URLs that literally contain the given phrase or keyword. To search for patterns with punctuation in them (i.e., google.com) enclose the search term in quotes.
NOTE: This will match against the expanded URL as well.

Example: `url_contains:photos` | -| `source:` | | Matches any Post generated by the given source application. The value must be either the name of the application or the application's URL. Cannot be used alone.

Example: `source:"X for iPhone"`

Note: As an X app developer, Posts created programmatically by your application will have the source of your application Name and Website URL set in your [app settings](/resources/fundamentals/developer-apps#app-management). | -| `in_reply_to_tweet_id:` | | *Available alias:* `in_reply_to_status_id:`
Deliver only explicit Replies to the specified Post.

Example: `in_reply_to_tweet_id:1539382664746020864` | +--- +title: Build a rule +sidebarTitle: Build a rule +--- + +## Building rules for filtered stream + +The filtered stream endpoints deliver filtered Posts to you that match on a set of rules that are applied to the stream. Rules are made up of operators that are used to match on a variety of Post attributes. + +Multiple rules can be applied to a stream using the [POST /tweets/search/stream/rules](/x-api/posts/filtered-stream#post-2-tweets-search-stream-rules) endpoint. Once you’ve added rules and connect to your stream using the [GET /tweets/search/stream](/x-api/posts/filtered-stream#get-2-tweets-search-stream) endpoint, only those Posts that match your rules will be delivered through a persistent streaming connection. You do not need to disconnect from your stream to add or remove rules.  + +### Table of contents + +* [Building a rule](#building-a-rule) + * [Rule limitations](#rule-limitations) + * [Operator availability](#operator-availability) + * [Operator types: standalone and conjunction-required](#operator-types-standalone-and-conjunction-required) + * [Boolean operators and grouping](#boolean-operators-and-grouping) + * [Order of operations](#order-of-operations) + * [Punctuation, diacritics, and case sensitivity](#punctuation-diacritics-and-case-sensitivity) + * [Specificity and efficiency](#specificity-and-efficiency) + * [Iteratively building a rule](#iteratively-building-a-rule) + * [Adding and removing rules](#adding-and-removing-rules) + * [Rule examples](#rule-examples) +* [List of operators](#operators) + +### Building a rule + +#### Rule limitations + +Limits on the number of rules will depend on which [access level](/x-api/getting-started/about-x-api) is applied to your [Project](/resources/fundamentals/projects). + +You can see how these limits apply via the [filtered stream introduction](/x-api/posts/filtered-stream) page. + +#### Operator types: standalone and conjunction-required + +**Standalone operators** can be used alone or together with any other operators (including those that require conjunction). + +For example, the following rule will work because it uses the `#hashtag` operator, which is standalone: + +`#xapiv2` + +**Conjunction required** operators cannot be used by themselves in a rule; they can only be used when at least one standalone operator is included in the rule. This is because using these operators alone would be far too general, and would match on an extremely high volume of Posts. + +For example, the following rules are not supported since they contain only conjunction required operators: + +`has:media` + +`has:links OR is:retweet` + +If we add in a standalone operator, such as the phrase `"X data"`, the rule would then work properly.  + +`"X data" has:mentions (has:media OR has:links)` + +#### Boolean operators and grouping + +If you would like to string together multiple operators in a single rule, you have the following tools at your disposal: + +| | | +| :--- | :--- | +| **AND logic** | Successive operators **with a space between them** will result in boolean "AND" logic, meaning that Posts will match only if both conditions are met. For example, `snow day #NoSchool` will match Posts containing the terms snow and day and the hashtag #NoSchool. | +| **OR logic** | Successive operators with OR between them will result in OR logic, meaning that Posts will match if either condition is met. For example, specifying `grumpy OR cat OR #meme` will match any Posts containing at least the terms grumpy or cat, or the hashtag #meme. | +| **NOT logic, negation** | Prepend a dash (-) to a keyword (or any operator) to negate it (NOT). For example, `cat #meme -grumpy` will match Posts containing the hashtag #meme and the term cat, but only if they do not contain the term grumpy. One common rule clause is `-is:retweet`, which will not match on Retweets, thus matching only on original Posts, Quote Tweets, and replies. All operators can be negated, but negated operators cannot be used alone. | +| **Grouping** | You can use parentheses to group operators together. For example, `(grumpy cat) OR (#meme has:images)` will return either Posts containing the terms grumpy and cat, or Posts with images containing the hashtag #meme. Note that ANDs are applied first, then ORs are applied. | + + +**A note on negations** + +All operators can be negated except for `sample:`, and `-is:nullcast` must always be negated. Negated operators cannot be used alone. + +Do not negate a set of operators grouped together in a set of parentheses. Instead, negate each individual operator. + +For example, instead of using `skiing -(snow OR day OR noschool)`, we suggest that you use `skiing -snow -day -noschool`.  + + +#### Order of operations + +When combining AND and OR functionality, the following order of operations will dictate how your rule is evaluated. + +1. Operators connected by AND logic are combined first +2. Then, operators connected with OR logic are applied + + + +For example: + +* `apple OR iphone ipad` would be evaluated as `apple OR (iphone ipad)` +* `ipad iphone OR android` would be evaluated as `(iphone ipad) OR android` + + + +To eliminate uncertainty and ensure that your rule is evaluated as intended, group terms together with parentheses where appropriate.  + +For example: + +* `(apple OR iphone) ipad` +* `iphone (ipad OR android)` + +#### Punctuation, diacritics, and case sensitivity + +If you specify a keyword or hashtag rule with character accents or diacritics, it will match Posts that contain the exact word with proper accents or diacritics, but not those that have the proper letters, but without the accent or diacritic.  + +For example, rules with the keyword `diacrítica` or hashtag `#cumpleaños` will match Posts that contain _diacrítica_ or _#cumpleaños_ because they include the accent or diacritic. However, these rules will not match Posts that contain _Diacritica_ or _#cumpleanos_ without the tilde í or eñe. + + +Characters with accents or diacritics are treated the same as normal characters and are not treated as word boundaries. For example, a rule with the keyword _cumpleaños_ would only match Posts containing the word _cumpleaños_ and would not match Posts containing _cumplea_, _cumplean_, or _os_. + +All operators are evaluated in a case-insensitive manner. For example, the rule cat will match all of the following: _cat_, _CAT_, _Cat_. + + +The [Search Posts](/x-api/posts/search/introduction) matching behavior acts differently from filtered stream. When [building a Search Posts query](/x-api/posts/search/integrate/build-a-query), know that keywords and hashtags that include accents or diacritics will match both the term with the accents and diacritics, as well as with normal characters.  + +For example, Search Posts queries that include a keyword `Diacrítica` or hashtag `#cumpleaños` will match both _Diacrítica_ and _#cumpleaños_, as well as _Diacritica_ or _#cumpleanos_ without the tilde í or eñe. + + +#### Specificity and efficiency + +When you start to build your rule, it is important to keep a few things in mind. + +* Using broad, standalone operators for your rule such as a single keyword or #hashtag is generally not recommended since it will likely match on a massive volume of Posts. Creating a more robust rule will result in a more specific set of matching Posts, and will hopefully reduce the amount of noise in the payload that you will need to sift through to find valuable insights.  + * For example, if your rule was just the keyword `happy` you will likely get anywhere from 200,000 - 300,000 Posts per day. + * Adding more conditional operators narrows your search results, for example `(happy OR happiness) place_country:GB -birthday -is:retweet` +* Writing efficient rules is also beneficial for staying within the characters rule length restriction. The character count includes the entire rule string including spaces and operators. + * For example, the following rule is 59 characters long: `(happy OR happiness) place_country:GB -birthday -is:retweet` + +#### Quote Tweet matching behavior + +When using the filtered stream endpoints, operators will match on both the content from the original Post that was quoted, as well as the content included in the Quote Tweet. + +However, please note that the [Search Posts](/x-api/posts/search/introduction) endpoints will not match on the content from the original Post that was quoted, but will match on the Quote Tweet's content. + +#### Iteratively building a rule + +##### Test your rule early and often + +Getting a rule to return the "right" results the first time is rare. There is so much on X that may or may not be obvious at first and the rule syntax described above may be hard to match to your desired search. As you build a rule, it is important for you to periodically test it out with the stream endpoint to see what data it returns. You can also test with one of the [Search Post](/x-api/posts/search/introduction) endpoints, assuming the operators that you are using are also available via that endpoint.  + +For this section, we are going to start with the following rule and adjust it based on the results that we receive during our test:  + +`happy OR happiness` + +##### Use results to narrow the rule + +As you test the rule, you should scan the returned Posts to see if they include the data that you are expecting and hoping to receive. Starting with a broad rule and a superset of Post matches allows you to review the result and narrow the rule to filter out undesired results.   + +When we tested the example rule, we noticed that we were getting Posts in a variety of different languages. In this situation, we want to only receive Posts that are in english, so we’re going to add the `lang:` operator: + +`(happy OR happiness) lang:en` + +The test delivered a number of Posts wishing people a happy birthday, so we are going to add `-birthday` as a negated keyword operator. We also want to only receive original Posts, so we’ve added the negated `-is:retweet` operator: + +`(happy OR happiness) lang:en -birthday -is:retweet` + +##### Adjust for inclusion where needed + +If you notice that you are not receiving data that you expect and know that there are existing Posts that should return, you may need to broaden your rule by removing operators that may be filtering out the desired data.  + +For our example, we noticed that there were other Posts in our personal timeline that expressed the emotion that we are looking for and weren’t included in the test results. To ensure we have greater coverage, we are going to add the keywords, `excited` and `elated`. + +`(happy OR happiness OR excited OR elated) lang:en -birthday -is:retweet` + +##### Adjust for popular trends/bursts over the time period + +Trends come and go on X quickly. Maintaining your rule should be an active process. If you plan to use a single rule for a while, we suggest that you periodically check in on the data that you are receiving to see if you need to make any adjustments. + +In our example, we notice that we started to receive some Posts that are wishing people a “happy holidays”. Since we don’t want these Posts included in our results, we are going to add a negated `-holidays` keyword. + +`(happy OR happiness OR excited OR elated) lang:en -birthday -is:retweet -holidays` + +#### Adding and removing rules + +You will be using the [POST /2/tweets/search/stream/rules](/x-api/posts/filtered-stream#post-2-tweets-search-stream-rules) endpoint when both adding and deleting rules from your stream. + +To add one or more rule to your stream, submit an `add` JSON body with an array that contains the value parameter including the rule, and the optional `tag` parameter including free-form text that you can use to [identify which returned Posts match this rule](/x-api/posts/filtered-stream#matching-returned-posts-to-their-associated-rule).  + +For example, if you were trying to add a set of rules to your stream, your cURL command might look like this: + +```bash +curl -X POST 'https://api.x.com/2/tweets/search/stream/rules' \ +-H "Content-type: application/json" \ +-H "Authorization: Bearer $ACCESS_TOKEN" -d \ +'{ + "add": [ + {"value": "cat has:media", "tag": "cats with media"}, + {"value": "cat has:media -grumpy", "tag": "happy cats with media"}, + {"value": "meme", "tag": "funny things"}, + {"value": "meme has:images"} + ] +}' +``` + +Similarly, to remove one or more rules from your stream, submit a `delete` JSON body with the array of that contains the `id` parameter including the rule IDs that you would like to delete. + +For example, if you were trying to remove a set of rules from your stream, your cURL command might look like this: + +```bash +curl -X POST 'https://api.x.com/2/tweets/search/stream/rules' \ + -H "Content-type: application/json" \ + -H "Authorization: Bearer $ACCESS_TOKEN" -d \ + '{ + "delete": { + "ids": [ + "1165037377523306498", + "1165037377523306499" + ] + } + }' +``` + +We have sample code in different languages available via our [Github](https://github.com/xdevplatform/Twitter-API-v2-sample-code/tree/master/Filtered-Stream).  + +#### Rule examples + +##### Tracking a natural disaster + +The following rule matched on Posts coming from weather agencies and gauges that discuss Hurricane Harvey, which hit Houston in 2017. Notice the use of the [matching rules](/x-api/posts/filtered-stream#matching-returned-posts-to-their-associated-rule) tag, and the JSON format that you will need to use when submitting the rule to the [POST /2/tweets/search/stream/rules endpoint](/x-api/posts/filtered-stream#post-2-tweets-search-stream-rules). + +```json +{ + "value": "-is:retweet has:geo (from:NWSNHC OR from:NHC_Atlantic OR from:NWSHouston OR from:NWSSanAntonio OR from:USGS_TexasRain OR from:USGS_TexasFlood OR from:JeffLindner1)", + "tag": "theme:info has:geo original from weather agencies and gauges" +} +``` + +##### Reviewing the sentiment of a conversation + +The next rule could be used to better understand the sentiment of the conversation developing around the hashtag, _#nowplaying_, but only from Posts published within North America. + +```json +{ + "value": "#nowplaying (happy OR exciting OR excited OR favorite OR fav OR amazing OR lovely OR incredible) (place_country:US OR place_country:MX OR place_country:CA) -horrible -worst -sucks -bad -disappointing", + "tag": "#nowplaying positive" +}, +{ + "value": "#nowplaying (horrible OR worst OR sucks OR bad OR disappointing) (place_country:US OR place_country:MX OR place_country:CA) -happy -exciting -excited -favorite -fav -amazing -lovely -incredible", + "tag": "#nowplaying negative" +} +``` + +##### Find Posts that relate to a specific Post annotation + +This rule was built to search for original Posts that included an image of a pet that is not a cat, where the language identified in the Post is Japanese. To do this, we used the `context:` operator to take advantage of the [Post annotation](/x-api/fundamentals/post-annotations) functionality. We first used the [Post lookup](/x-api/posts/lookup/introduction) endpoint and the `tweet.fields=context_annotations` fields parameter to identify which domain.entity IDs we need to use in our query: + +* Posts that relate to cats return `domain` 66 (Interests and Hobbies category) with `entity` 852262932607926273 (Cats).  +* Posts that relate to pets return `domain` 65 (Interests and Hobbies Vertical) with `entity` 852262932607926273 (Pets).  +   + +Here is what the rule would look like: + +```json +{ + "value": "context:65.852262932607926273 -context:66.852262932607926273 -is:retweet has:images lang:ja", + "tag": "Japanese pets with images - no cats" +} +``` + +### Operators + +**Note:** For some operators, an alternate name, or alias, is available. + +| **Operator** | **Type** | **Description** | +|:------------------------------|:-------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `keyword` | Standalone | Matches a keyword within the body of a Post. This is a tokenized match, meaning that your keyword string will be matched against the tokenized text of the Post body. Tokenization splits words based on punctuation, symbols, and Unicode basic plane separator characters.
For example, a Post with the text “I like coca-cola” would be split into the following tokens: I, like, coca, cola. These tokens would then be compared to the keyword string used in your rule. To match strings containing punctuation (for example, coca-cola), symbol, or separator characters, you must wrap your keyword in double-quotes.

Example: `pepsi OR cola OR "coca cola"` | +| `emoji` | Standalone | Matches an emoji within the body of a Post. Similar to a keyword, emojis are a tokenized match, meaning that your emoji will be matched against the tokenized text of the Post body.

Note that if an emoji has a variant, you must wrap it in double quotes to add to a rule.

Example: `(😃 OR 😡) 😬` | +| `"exact phrase match"` | Standalone | Matches the exact phrase within the body of a Post.

Example: `("X API" OR #v2) -"filtered stream"` | +| `#` | Standalone | Matches any Post containing a recognized hashtag, if the hashtag is a recognized entity in a Post.

This operator performs an exact match, NOT a tokenized match, meaning the rule `#thanku` will match posts with the exact hashtag #thanku, but not those with the hashtag #thankunext.

Example: `#thankunext #fanart OR @arianagrande` | +| `@` | Standalone | Matches any Post that mentions the given username, if the username is a recognized entity (including the @ character).

Example: `(@XDevelopers OR @api) -@x` | +| `$` | Standalone | Matches any Post that contains the specified 'cashtag' (where the leading character of the token is the $ character).

Note that the cashtag operator relies on X's 'symbols' entity extraction to match cashtags, rather than trying to extract the cashtag from the body itself.

Example: `$twtr OR @XDevelopers -$fb` | +| `from:` | Standalone | Matches any Post from a specific user.
The value can be either the username (excluding the @ character) or the user's numeric user ID.

You can only pass a single username/ID `from:` operator.

Example: `from:XDevelopers OR from:api -from:X` | +| `to:` | Standalone | Matches any Post that is in reply to a particular user.
The value can be either the username (excluding the @ character) or the user's numeric user ID.

You can only pass a single username/ID per `to:` operator.

Example: `to:XDevelopers OR to:api -to:x` | +| `url:` | Standalone | Performs a tokenized match on any validly-formatted URL of a Post.

This operator can match on the contents of both the `url` or `expanded_url` fields. For example, a Post containing "You should check out X Developer Labs: https://t.co/c0A36SWil4" (with the short URL redirecting to https://developer.x.com) will match both the following rules:

`from:XDevelopers url:"https://developer.x.com"`
(because it will match the contents of `entities.urls.expanded_url`)

`from:XDevelopers url:"https://t.co"`
(because it will match the contents of `entities.urls.url`)

Tokens and phrases containing punctuation or special characters should be double-quoted (for example, `url:"/developer"`). Similarly, to match on a specific protocol, enclose in double-quotes (for example, `url:"https://developer.x.com"`).

You can only pass a single URL per `url:` operator. | +| `retweets_of:` | Standalone | *Available alias:* `retweets_of_user:`
Matches Posts that are Retweets of the specified user. The value can be either the username (excluding the @ character) or the user's numeric user ID.

You can only pass a single username/ID per `retweets_of:` operator.

Example: `retweets_of:XDevelopers OR retweets_of:twitterapi`
See [HERE](/x-api/users/lookup/introduction) for methods for looking up numeric X Account IDs. | +| `context:` | Standalone | Matches Posts with a specific domain id and/or domain id, entity id pair where * represents a wildcard. To learn more about this operator, please visit our page on [Post annotations](/x-api/fundamentals/post-annotations).

You can only pass a single domain/entity per `context:` operator.

`context:domain_id.entity_id`
`context:domain_id.*`
`context:*.entity_id`

Examples:
`context:10.799022225751871488`
(`domain_id.entity_id` returns Posts matching that specific domain-entity pair)

`context:47.*`
(`domain_id.*` returns Posts matching that domain ID, with any domain-entity pair)

`context:*.799022225751871488`
(`*.entity_id` returns Posts matching that entity ID, with any domain-entity pair) | +| `entity:` | Standalone | Matches Posts with a specific entity string value. To learn more about this operator, please visit our page on [annotations](/x-api/fundamentals/post-annotations).

You can only pass a single entity per `entity:` operator.

`entity:"string declaration of entity/place"`

Examples: `entity:"Michael Jordan" OR entity:"Barcelona"` | +| `conversation_id:` | Standalone | Matches Posts that share a common conversation ID. A conversation ID is set to the Post ID of a Post that started a conversation. As Replies to a Post are posted, even Replies to Replies, the `conversation_id` is added to its JSON payload.

You can only pass a single conversation ID per `conversation_id:` operator.

Example: `conversation_id:1334987486343299072 (from:XDevelopers OR from:api)` | +| `bio:` | Standalone | *Available alias:* `user_bio:`
Matches a keyword or phrase within the Post publisher's bio. This is a tokenized match within the contents of the `description` field within the [User object](/x-api/fundamentals/data-dictionary#user).

Example: `bio:developer OR bio:"data engineer" OR bio:academic` | +| `bio_name:` | Standalone | Matches a keyword within the Post publisher's user bio name. This is a tokenized match within the contents of a user's "name" field within the [User object](/x-api/fundamentals/data-dictionary#user).

Example: `bio_name:phd OR bio_name:md` | +| `bio_location:` | Standalone | *Available alias:* `user_bio_location:`
Matches Posts that are published by users whose location contains the specified keyword or phrase. This operator performs a tokenized match, similar to the normal keyword rules on the message body.

This location is part of the [User object](/x-api/fundamentals/data-dictionary#user), matches on the 'location' field, and is a non-normalized, user-generated, free-form string. It is also different from a Post's location (see `place:`).

Example: `bio_location:"big apple" OR bio_location:nyc OR bio_location:manhattan` | +| `place:` | Standalone | Matches Posts tagged with the specified location or X place ID. Multi-word place names (“New York City”, “Palo Alto”) should be enclosed in quotes.

You can only pass a single place per `place:` operator.

Note: See the [GET geo/search](https://developer.x.com/content/developer-twitter/en/docs/geo/places-near-location/api-reference/get-geo-search) standard v1.1 endpoint for how to obtain X place IDs.

Note: This operator will not match on Retweets, since Retweet's places are attached to the original Post. It will also not match on places attached to the original Post of a Quote Tweet.

Example: `place:"new york city" OR place:seattle OR place:fd70c22040963ac7` | +| `place_country:` | Standalone | Matches Posts where the country code associated with a tagged place/location matches the given ISO alpha-2 character code.

You can find a list of valid ISO codes on [Wikipedia](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).

You can only pass a single ISO code per `place_country:` operator.

Note: This operator will not match on Retweets, since Retweet's places are attached to the original Post. It will also not match on places attached to the original Post of a Quote Tweet.

Example: `place_country:US OR place_country:MX OR place_country:CA` | +| `point_radius:` | Standalone | Matches against the `place.geo.coordinates` object of the Post when present, and in X, against a place geo polygon, where the Place polygon is fully contained within the defined region.

`point_radius:[longitude latitude radius]`

- Units of radius supported are miles (mi) and kilometers (km)
- Radius must be less than 25mi
- Longitude is in the range of ±180
- Latitude is in the range of ±90
- All coordinates are in decimal degrees
- Rule arguments are contained within brackets, space delimited

You can only pass a single geo polygon per `point_radius:` operator.

Note: This operator will not match on Retweets, since Retweet's places are attached to the original Post. It will also not match on places attached to the original Post of a Quote Tweet.

Example: `point_radius:[2.355128 48.861118 16km] OR point_radius:[-41.287336 174.761070 20mi]` | +| `bounding_box:` | Standalone | *Available alias:* `geo_bounding_box:`
Matches against the place.geo.coordinates object of the Post when present, and in X, against a place geo polygon, where the place polygon is fully contained within the defined region.

`bounding_box:[west_long south_lat east_long north_lat]`

- `west_long south_lat` represent the southwest corner of the bounding box where `west_long` is the longitude of that point, and `south_lat` is the latitude.
- `east_long north_lat` represent the northeast corner of the bounding box, where `east_long` is the longitude of that point, and `north_lat` is the latitude.
- Width and height of the bounding box must be less than 25mi
- Longitude is in the range of ±180
- Latitude is in the range of ±90
- All coordinates are in decimal degrees.
- Rule arguments are contained within brackets, space delimited.

You can only pass a single geo polygon per `bounding_box:` operator.

Note: This operator will not match on Retweets, since Retweet's places are attached to the original Post. It will also not match on places attached to the original Post of a Quote Tweet.

Example: `bounding_box:[-105.301758 39.964069 -105.178505 40.09455]` | +| `is:retweet` | Conjunction required | Matches on Retweets that match the rest of the specified rule. This operator looks only for true Retweets (for example, those generated using the Retweet button). Quote Tweets will not be matched by this operator.

Example: `data @XDevelopers -is:retweet` | +| `is:reply` | Conjunction required | Deliver only explicit replies that match a rule. Can also be negated to exclude replies that match a rule from delivery.

When used with the filtered stream, this operator matches on replies to an original Post, replies in quoted Posts, and replies in Retweets.

Example: `from:XDevelopers is:reply` | +| `is:quote` | Conjunction required | Returns all Quote Tweets, also known as Posts with comments.

Example: `"sentiment analysis" is:quote` | +| `is:verified` | Conjunction required | Deliver only Posts whose authors are verified by X.

Example: `#nowplaying is:verified` | +| `-is:nullcast` | Conjunction required | Removes Posts created for promotion only on ads.twitter.com that have a `source:"Twitter for Advertisers (legacy)"` or `source:"Twitter for Advertisers".`
This operator must be negated.

For more info on Nullcasted Posts, see our page on [Post availability](https://developer.x.com/content/developer-twitter/en/docs/twitter-api/v1/tweets/post-and-engage/guides/tweet-availability).

Example: `"mobile games" -is:nullcast` | +| `has:hashtags` | Conjunction required | Matches Posts that contain at least one hashtag.

Example: `from:XDevelopers -has:hashtags` | +| `has:cashtags` | Conjunction required | Matches Posts that contain a cashtag symbol (with a leading '$' character. For example, `$tag`).

Example: `#stonks has:cashtags` | +| `has:links` | Conjunction required | This operator matches Posts which contain links and media in the Post body.

Example: `from:XDevelopers announcement has:links` | +| `has:mentions` | Conjunction required | Matches Posts that mention another X user.

Example: `#nowplaying has:mentions` | +| `has:media` | Conjunction required | *Available alias:* `has:media_link`
Matches Posts that contain a media object, such as a photo, GIF, or video, as determined by X. This will not match on media created with Periscope, or Posts with links to other media hosting sites.

Example: `(kittens OR puppies) has:media` | +| `has:images` | Conjunction required | Matches Posts that contain a recognized URL to an image.

Example: `#meme has:images` | +| `has:video_link` | Conjunction required | *Available alias:* `has:videos`
Matches Posts that contain native X videos, uploaded directly to X. This will not match on videos created with Periscope, or Posts with links to other video hosting sites.

Example: `#icebucketchallenge has:video_link` | +| `has:geo` | Conjunction required | Matches Posts that have Post-specific geolocation data provided by the X user. This can be either a location in the form of a X place, with the corresponding display name, geo polygon, and other fields, or in rare cases, a geo lat-long coordinate.

Note: Operators matching on place (Post geo) will only include matches from original posts. Retweets do not contain any place data.

Example: `recommend #paris has:geo -bakery` | +| `sample:` | Conjunction required | Returns a random percent sample of Posts that match a rule rather than the entire set of Posts. The percent value must be represented by an integer between 1 and 100 (for example, `sample:10` will return a random 10% sample).

This operator first reduces the scope of the stream to the percentage you specified, then the rule/filter is applied to that sampled subset. In other words, if you are using, for example, `sample:10`, each Post will have a 10% chance of being in the sample.

This operator applies to the entire rule and requires all OR'd terms to be grouped.

Example: `#nowplaying @spotify sample:15` | +| `lang:` | Conjunction required | Matches Posts that have been classified by X as being of a particular language (if, and only if, the post has been classified). It is important to note that each Post is currently only classified as being of one language, so AND’ing together multiple languages will yield no results.

You can only pass a single BCP 47 language identifier per `lang:` operator.

Note: if no language classification can be made the provided result is 'und' (for undefined).

Example: `recommend #paris lang:en`

The list below represents the currently supported languages and their corresponding BCP 47 language identifier:

| Language | BCP 47 |
|-|-|
| Amharic | `am` |
| Arabic | `ar` |
| Armenian | `hy` |
| Basque | `eu` |
| Bengali | `bn` |
| Bosnian | `bs` |
| Bulgarian | `bg` |
| Burmese | `my` |
| Croatian | `hr` |
| Catalan | `ca` |
| Czech | `cs` |
| Danish | `da` |
| Dutch | `nl` |
| English | `en` |
| Estonian | `et` |
| Finnish | `fi` |
| French | `fr` |
| Georgian | `ka` |
| German | `de` |
| Greek | `el` |
| Gujarati | `gu` |
| Haitian Creole | `ht` |
| Hebrew | `iw` |
| Hindi | `hi` |
| Latinized Hindi | `hi-Latn` |
| Hungarian | `hu` |
| Icelandic | `is` |
| Indonesian | `in` |
| Italian | `it` |
| Japanese | `ja` |
| Kannada | `kn` |
| Khmer | `km` |
| Korean | `ko` |
| Lao | `lo` |
| Latvian | `lv` |
| Lithuanian | `lt` |
| Malayalam | `ml` |
| Maldivian | `dv` |
| Marathi | `mr` |
| Nepali | `ne` |
| Norwegian | `no` |
| Oriya | `or` |
| Panjabi | `pa` |
| Pashto | `ps` |
| Persian | `fa` |
| Polish | `pl` |
| Portuguese | `pt` |
| Romanian | `ro` |
| Russian | `ru` |
| Serbian | `sr` |
| Simplified Chinese | `zh-CN` |
| Sindhi | `sd` |
| Sinhala | `si` |
| Slovak | `sk` |
| Slovenian | `sl` |
| Sorani Kurdish | `ckb` |
| Spanish | `es` |
| Swedish | `sv` |
| Tagalog | `tl` |
| Tamil | `ta` |
| Telugu | `te` |
| Thai | `th` |
| Tibetan | `bo` |
| Traditional Chinese | `zh-TW` |
| Turkish | `tr` |
| Ukrainian | `uk` |
| Urdu | `ur` |
| Uyghur | `ug` |
| Vietnamese | `vi` |
| Welsh | `cy` | | +| `followers_count:` | | Matches Posts when the author has a followers count within the given range.
If a single number is specified, any number equal to or higher will match.

Example: `followers_count:500`

Additionally, a range can be specified to match any number in the given range.

Example: `followers_count:1000..10000` | +| `tweets_count:` | | *Available alias:* `statuses_count:`
Matches Posts when the author has posted a number of Posts that falls within the given range.
If a single number is specified, any number equal to or higher will match.

Example: `tweets_count:1000`

Additionally, a range can be specified to match any number in the given range.

Example: `tweets_count:1000..10000` | +| `following_count:` | | *Available alias:* `friends_count:`
Matches Posts when the author has a friends count (the number of users they follow) that falls within the given range.
If a single number is specified, any number equal to or higher will match.

Example: `following_count:500`

Additionally, a range can be specified to match any number in the given range.

Example: `following_count:1000..10000` | +| `listed_count:` | | *Available alias:* `user_in_lists_count:`
Matches Posts when the author is included in the specified number of Lists.
If a single number is specified, any number equal to or higher will match.

Example: `listed_count:10`

Additionally, a range can be specified to match any number in the given range.

Example: `listed_count:10..100` | +| `url_title:` | | *Available alias:* `within_url_title:`
Performs a keyword/phrase match on the expanded URL HTML title metadata.

Example: `url_title:snow` | +| `url_description:` | | *Available alias:* `within_url_description:`
Performs a keyword/phrase match on the expanded page description metadata.

Example: `url_description:weather` | +| `url_contains:` | | Matches Posts with URLs that literally contain the given phrase or keyword. To search for patterns with punctuation in them (i.e., google.com) enclose the search term in quotes.
NOTE: This will match against the expanded URL as well.

Example: `url_contains:photos` | +| `source:` | | Matches any Post generated by the given source application. The value must be either the name of the application or the application's URL. Cannot be used alone.

Example: `source:"X for iPhone"`

Note: As an X app developer, Posts created programmatically by your application will have the source of your application Name and Website URL set in your [app settings](/resources/fundamentals/developer-apps#app-management). | +| `in_reply_to_tweet_id:` | | *Available alias:* `in_reply_to_status_id:`
Deliver only explicit Replies to the specified Post.

Example: `in_reply_to_tweet_id:1539382664746020864` | | `retweets_of_tweet_id:` | | *Available alias:* `retweets_of_status_id:`
Deliver only explicit (or native) Retweets of the specified Post. Note that the status ID used should be the ID of an original Post and not a Retweet.

Example: `retweets_of_tweet_id:1539382664746020864` | \ No newline at end of file diff --git a/x-api/posts/filtered-stream/integrate/consuming-streaming-data.mdx b/x-api/posts/filtered-stream/integrate/consuming-streaming-data.mdx index 7d45fde..34457dd 100644 --- a/x-api/posts/filtered-stream/integrate/consuming-streaming-data.mdx +++ b/x-api/posts/filtered-stream/integrate/consuming-streaming-data.mdx @@ -1,95 +1,95 @@ ---- -title: Consuming streaming data -sidebarTitle: Consuming streaming data ---- - -### Building a client to consume streaming data - -When using a streaming endpoint, there are some general best practices to consider in order to optimize usage.   -  - -#### Client design - -When building a solution with the filter stream endpoint, you will need a client that can do the following: - -1. Establish an HTTPS streaming connection to the filter stream endpoint. -2. Asynchronously send POST requests to the filter stream rules endpoint to add and delete rules from the stream. -3. Handle low data volumes – Maintain the streaming connection, detecting Post objects and keep-alive signals -4. Handle high data volumes – de-couple stream ingestion from additional processing using asynchronous processes, and ensure client side buffers are flushed regularly. -5. Manage volume consumption tracking on the client side. -6. Detect stream disconnections, evaluate and reconnect to the stream automatically. -   - -#### Connecting to a streaming endpoint - -Establishing a connection to X API v2 streaming endpoints means making a very long lived HTTP request, and parsing the response incrementally. Conceptually, you can think of it as downloading an infinitely long file over HTTP.  Once a connection has been established, the X server will deliver Post events through the connection as long as the connection is open. -  - -#### Consuming data in real time - -Note that the individual fields of JSON objects are not ordered, and not all fields will be present in all circumstances. Similarly, separate activities are not delivered in sorted order, and duplicate messages may be encountered. Keep in mind that over time, new message types may be added and sent through the stream. - -Thus, your client must tolerate: - -* Fields appearing in any order -* Unexpected or missing fields -* Non-sorted Posts -* Duplicate messages -* New arbitrary message types coming down the stream at any time - -In addition to relevant Post data and requested field parameters, the following kinds of messages may be delivered on a stream connection. Note that this list may not be comprehensive—additional objects may be introduced into streams. Ensure that your parser is tolerant of unexpected message formats. -  - -#### Buffering  - -The streaming endpoints will send data to you as quickly as it becomes available, which can result in high volumes in many cases. If the X server cannot write new data to the stream right away (for example if your client is not reading fast enough, see [handling disconnections](/x-api/posts/filtered-stream#what-is-a-disconnection) for more), it will buffer the content on its end to allow your client to catch up. However, when this buffer is full, a forced disconnect will be initiated to drop the connection, and the buffered Posts will be dropped and not resent. See below for more details. - -One way to identify times where your app is falling behind is to compare the timestamp of the Posts being received with the current time, and track this over time. - -Although stream backups cannot ever be completely eliminated due to potential latency and hiccups over the public internet, they can be largely eliminated through proper configuration of your app. To minimize the occurrence of backups: - -* Ensure that your client is reading the stream fast enough. Typically you should not do any real processing work as you read the stream. Read the stream and hand the activity to another thread/process/data store to do your processing asynchronously. -* Ensure that your data center has inbound bandwidth sufficient to accomodate large sustained data volumes as well as significantly larger spikes (e.g. 5-10x normal volume). For filtered stream, the volume and corresponding bandwidth required on your end are wholly dependent on what Posts your rules are matching. -   - -#### Usage tracking and rule management - -As developers expectations around what “normal” data volume should be for their streams, we do not have a general recommendation for a specific percentage decrease/increase or period of time.  - -Consider monitoring your stream data volumes for unexpected deviations. A data volume decrease may be symptomatic of a different issue than a stream disconnection. In such a situation, a stream would still be receiving the keep-alive signal and probably some new activity data. However, a significantly decreased number of Posts should lead you to investigate whether there is anything causing the decrease in inbound data volume to your application or network, check the [status page](https://api.twitterstat.us/) for any related notices. - -To create such monitoring, you could track the number of new Posts you expect to see in a set amount of time. If a stream’s data volume falls far enough below the specified threshold, and does not recover within a set period of time, then alerts and notifications should be initiated. You may also want to monitor for a large increase in data volume, particularly if you are in the process of modifying rules in a filtered stream, or if an event occurs that produces a spike in Post activity. - -It's important to note that Posts delivered through filtered stream do count towards the total monthly Post volume, and you should track and adjust consumption in order to optimize.  If volume is high, consider adding a sample: operator to each of your rules to reduce from 100% matching to sample:50 or sample:25 when necessary. - -Additionally, we encourage you to implement measures within your app that will alert your team if the volume passes a pre-set threshold, and to possibly introduce other measures such as automated deletion of rules that are bringing in too much data, or disconnecting from the stream completely in extreme circumstances. -  - -#### Responding to system messages - -Keep-alive signals -At least every 20 seconds, the stream will send a keep-alive signal, or heartbeat in the form of an \\r\\n carriage return through the open connection to prevent your client from timing out. Your client application should be tolerant of the \\r\\n characters in the stream. - -If your client properly implements a read timeout on your HTTP library, your app will be able to rely on the HTTP protocol and your HTTP library to throw an event if no data is read within this period, and you will not need to explicitly monitor for the \\r\\n character. - -This event will typically be an exception being thrown or some other event depending on the HTTP library used. It is highly recommended to wrap your HTTP methods with error/event handlers to detect these timeouts. On timeout, your application should attempt to reconnect. - -Error messages -The v2 streaming endpoints may also deliver in stream error messages. Provided below is the basic format of these messages, along with some examples. Please note that the messages delivered could change, with new message being introduced. Client applications need to be tolerant of changing system message payloads. - -Note that error messages will link to the documentation describing how to solve the problem. - -Message format: - -```{ - "errors": [{ - "title": "operational-disconnect", - "disconnect_type": "UpstreamOperationalDisconnect", - "detail": "This stream has been disconnected upstream for operational reasons.", - "type": "https://api.x.com/2/problems/operational-disconnect" - }] -} -``` - -Note that error messages indicating a force disconnect for a full buffer may never get to your client, if the backup which caused the force disconnect prevents it from getting through. Accordingly, your app should not depend on these messages to initiate a reconnect. - +--- +title: Consuming streaming data +sidebarTitle: Consuming streaming data +--- + +### Building a client to consume streaming data + +When using a streaming endpoint, there are some general best practices to consider in order to optimize usage.   +  + +#### Client design + +When building a solution with the filter stream endpoint, you will need a client that can do the following: + +1. Establish an HTTPS streaming connection to the filter stream endpoint. +2. Asynchronously send POST requests to the filter stream rules endpoint to add and delete rules from the stream. +3. Handle low data volumes – Maintain the streaming connection, detecting Post objects and keep-alive signals +4. Handle high data volumes – de-couple stream ingestion from additional processing using asynchronous processes, and ensure client side buffers are flushed regularly. +5. Manage volume consumption tracking on the client side. +6. Detect stream disconnections, evaluate and reconnect to the stream automatically. +   + +#### Connecting to a streaming endpoint + +Establishing a connection to X API v2 streaming endpoints means making a very long lived HTTP request, and parsing the response incrementally. Conceptually, you can think of it as downloading an infinitely long file over HTTP.  Once a connection has been established, the X server will deliver Post events through the connection as long as the connection is open. +  + +#### Consuming data + +Note that the individual fields of JSON objects are not ordered, and not all fields will be present in all circumstances. Similarly, separate activities are not delivered in sorted order, and duplicate messages may be encountered. Keep in mind that over time, new message types may be added and sent through the stream. + +Thus, your client must tolerate: + +* Fields appearing in any order +* Unexpected or missing fields +* Non-sorted Posts +* Duplicate messages +* New arbitrary message types coming down the stream at any time + +In addition to relevant Post data and requested field parameters, the following kinds of messages may be delivered on a stream connection. Note that this list may not be comprehensive—additional objects may be introduced into streams. Ensure that your parser is tolerant of unexpected message formats. +  + +#### Buffering  + +The streaming endpoints will send data to you as quickly as it becomes available, which can result in high volumes in many cases. If the X server cannot write new data to the stream right away (for example if your client is not reading fast enough, see [handling disconnections](/x-api/posts/filtered-stream#what-is-a-disconnection) for more), it will buffer the content on its end to allow your client to catch up. However, when this buffer is full, a forced disconnect will be initiated to drop the connection, and the buffered Posts will be dropped and not resent. See below for more details. + +One way to identify times where your app is falling behind is to compare the timestamp of the Posts being received with the current time, and track this over time. + +Although stream backups cannot ever be completely eliminated due to potential latency and hiccups over the public internet, they can be largely eliminated through proper configuration of your app. To minimize the occurrence of backups: + +* Ensure that your client is reading the stream fast enough. Typically you should not do any real processing work as you read the stream. Read the stream and hand the activity to another thread/process/data store to do your processing asynchronously. +* Ensure that your data center has inbound bandwidth sufficient to accomodate large sustained data volumes as well as significantly larger spikes (e.g. 5-10x normal volume). For filtered stream, the volume and corresponding bandwidth required on your end are wholly dependent on what Posts your rules are matching. +   + +#### Usage tracking and rule management + +As developers expectations around what “normal” data volume should be for their streams, we do not have a general recommendation for a specific percentage decrease/increase or period of time.  + +Consider monitoring your stream data volumes for unexpected deviations. A data volume decrease may be symptomatic of a different issue than a stream disconnection. In such a situation, a stream would still be receiving the keep-alive signal and probably some new activity data. However, a significantly decreased number of Posts should lead you to investigate whether there is anything causing the decrease in inbound data volume to your application or network, check the [status page](https://api.twitterstat.us/) for any related notices. + +To create such monitoring, you could track the number of new Posts you expect to see in a set amount of time. If a stream’s data volume falls far enough below the specified threshold, and does not recover within a set period of time, then alerts and notifications should be initiated. You may also want to monitor for a large increase in data volume, particularly if you are in the process of modifying rules in a filtered stream, or if an event occurs that produces a spike in Post activity. + +It's important to note that Posts delivered through filtered stream do count towards the total monthly Post volume, and you should track and adjust consumption in order to optimize.  If volume is high, consider adding a sample: operator to each of your rules to reduce from 100% matching to sample:50 or sample:25 when necessary. + +Additionally, we encourage you to implement measures within your app that will alert your team if the volume passes a pre-set threshold, and to possibly introduce other measures such as automated deletion of rules that are bringing in too much data, or disconnecting from the stream completely in extreme circumstances. +  + +#### Responding to system messages + +Keep-alive signals +At least every 20 seconds, the stream will send a keep-alive signal, or heartbeat in the form of an \\r\\n carriage return through the open connection to prevent your client from timing out. Your client application should be tolerant of the \\r\\n characters in the stream. + +If your client properly implements a read timeout on your HTTP library, your app will be able to rely on the HTTP protocol and your HTTP library to throw an event if no data is read within this period, and you will not need to explicitly monitor for the \\r\\n character. + +This event will typically be an exception being thrown or some other event depending on the HTTP library used. It is highly recommended to wrap your HTTP methods with error/event handlers to detect these timeouts. On timeout, your application should attempt to reconnect. + +Error messages +The v2 streaming endpoints may also deliver in stream error messages. Provided below is the basic format of these messages, along with some examples. Please note that the messages delivered could change, with new message being introduced. Client applications need to be tolerant of changing system message payloads. + +Note that error messages will link to the documentation describing how to solve the problem. + +Message format: + +```{ + "errors": [{ + "title": "operational-disconnect", + "disconnect_type": "UpstreamOperationalDisconnect", + "detail": "This stream has been disconnected upstream for operational reasons.", + "type": "https://api.x.com/2/problems/operational-disconnect" + }] +} +``` + +Note that error messages indicating a force disconnect for a full buffer may never get to your client, if the backup which caused the force disconnect prevents it from getting through. Accordingly, your app should not depend on these messages to initiate a reconnect. + diff --git a/x-api/posts/filtered-stream/integrate/handling-high-volume-capacity.mdx b/x-api/posts/filtered-stream/integrate/handling-high-volume-capacity.mdx index e6db625..1d19309 100644 --- a/x-api/posts/filtered-stream/integrate/handling-high-volume-capacity.mdx +++ b/x-api/posts/filtered-stream/integrate/handling-high-volume-capacity.mdx @@ -1,43 +1,43 @@ ---- -title: Handling high-volume capacity -sidebarTitle: Handling high-volume capacity ---- - -### How to plan for high-volume social data events - -Major national and global events are often accompanied by dramatic spikes in user activity across social media platforms. Sometimes these events are known about in advance, like the Super Bowl, political elections, and New Year’s celebrations around the world. Other times, the spikes in volume are due to unexpected happenings such as natural disasters, unplanned political events, pop culture moments, or health pandemics like COVID-19. - -These bursts of user activity may sometimes be short-lived (measured in seconds), or they may even be sustained over several minutes’ time. No matter their origin, it is important to consider the impact that they can have on applications consuming real-time data from X. Here are some best practices that will help your team prepare for high-volume social data events. - -#### Review your current filtered stream rules - -* Certain keywords can skyrocket during high volume events, such as brand mentions when a brand sponsors a major sporting event. -* Be careful to avoid any unnecessary or overly generic rules that may generate unnecessary activity volumes. -* Consider communicating with your clients prior to known high-volume events to help them plan appropriately. -   - -#### Stress test your application - -Anticipate that burst volumes may reach 5-10x average daily consumption levels. Depending on your rule set, the increase may be much higher. - -#### Understand delivery caps for connections - -Flow and delivery caps are based on levels of access. This results in a static volume of delivered results for streams. - -* **Academic**: 250 Posts/second -* **Enterprise**: Posts/second is set at access level - -#### Optimize to stay connected - -With real-time streams, staying connected is essential to avoid missing data. Your client application should be able to detect a disconnect and have logic to immediately retry its connection, using an exponential backoff if the reconnect attempt fails. -  - -#### Add built-in buffering on your end - -Building a multi-threaded application is a key strategy for handling high-volume streams. At a high-level, a best practice for managing data streams is to have a separate thread/process that establishes the streaming connection and then writes received JSON activities to a memory structure or a buffered stream reader. This ‘light-weight’ stream processing thread is responsible for handling incoming data, which can be buffered in memory, growing and shrinking as needed. Then a different thread consumes that hash and does the ‘heavy lifting’ of parsing the JSON, preparing database writes, or whatever else your application needs to do. -  - -#### Global events = global time zones - -The events may occur after business hours or over the weekend, so be sure that your team is prepared for spikes to occur outside your normal business hours. - +--- +title: Handling high-volume capacity +sidebarTitle: Handling high-volume capacity +--- + +### How to plan for high-volume social data events + +Major national and global events are often accompanied by dramatic spikes in user activity across social media platforms. Sometimes these events are known about in advance, like the Super Bowl, political elections, and New Year’s celebrations around the world. Other times, the spikes in volume are due to unexpected happenings such as natural disasters, unplanned political events, pop culture moments, or health pandemics like COVID-19. + +These bursts of user activity may sometimes be short-lived (measured in seconds), or they may even be sustained over several minutes’ time. No matter their origin, it is important to consider the impact that they can have on applications consuming data from X. Here are some best practices that will help your team prepare for high-volume social data events. + +#### Review your current filtered stream rules + +* Certain keywords can skyrocket during high volume events, such as brand mentions when a brand sponsors a major sporting event. +* Be careful to avoid any unnecessary or overly generic rules that may generate unnecessary activity volumes. +* Consider communicating with your clients prior to known high-volume events to help them plan appropriately. +   + +#### Stress test your application + +Anticipate that burst volumes may reach 5-10x average daily consumption levels. Depending on your rule set, the increase may be much higher. + +#### Understand delivery caps for connections + +Flow and delivery caps are based on levels of access. This results in a static volume of delivered results for streams. + +* **Academic**: 250 Posts/second +* **Enterprise**: Posts/second is set at access level + +#### Optimize to stay connected + +With streams, staying connected is essential to avoid missing data. Your client application should be able to detect a disconnect and have logic to immediately retry its connection, using an exponential backoff if the reconnect attempt fails. +  + +#### Add built-in buffering on your end + +Building a multi-threaded application is a key strategy for handling high-volume streams. At a high-level, a best practice for managing data streams is to have a separate thread/process that establishes the streaming connection and then writes received JSON activities to a memory structure or a buffered stream reader. This ‘light-weight’ stream processing thread is responsible for handling incoming data, which can be buffered in memory, growing and shrinking as needed. Then a different thread consumes that hash and does the ‘heavy lifting’ of parsing the JSON, preparing database writes, or whatever else your application needs to do. +  + +#### Global events = global time zones + +The events may occur after business hours or over the weekend, so be sure that your team is prepared for spikes to occur outside your normal business hours. + diff --git a/x-api/posts/filtered-stream/integrate/recovery-and-redundancy-features.mdx b/x-api/posts/filtered-stream/integrate/recovery-and-redundancy-features.mdx index 056b468..3e052e8 100644 --- a/x-api/posts/filtered-stream/integrate/recovery-and-redundancy-features.mdx +++ b/x-api/posts/filtered-stream/integrate/recovery-and-redundancy-features.mdx @@ -1,45 +1,45 @@ ---- -title: Recovery and redundancy -sidebarTitle: Recovery and redundancy ---- - -#### Introduction - -When consuming realtime data, maximizing your connection time and receiving all matched data is a fundamental goal. This means that it is important to take advantage of redundant connections, automatically detect disconnections, to reconnect quickly, and to have a plan for recovering lost data. - -In this integration guide, we will discuss different recovery and redundancy features: redundant connections, backfill, and recovery. -  - -**Redundant connections** - -A redundant connection simply allows you to establish more than one simultaneous connections to the filtered stream. This provides redundancy by allowing you to connect to the same stream with two separate consumers, receiving the same data through both connections. Thus, your app has a hot failover for various situations such as if one stream is disconnected or if your application's primary server fails. - -Filtered stream currently only allows Projects with Enterprise access to connect to up to two redundant connections. To use a redundant stream, simply connect to the same URL used for your primary connection. The data for your stream will be sent through both connections. - -#### Recovering missed data after a disconnection: Backfill - -After you've detected a disconnection, your system should be smart enough to reconnect to the stream. If possible, your system should take note of how long the disconnection lasted so that you can use the proper recovery feature to backfill the data.  - -If you are using a Project with Enterprise access and identified that the disconnection lasted five minutes or less, you can use the backfill parameter, backfill_minutes. If you pass this parameter with your [GET /tweets/search/stream](/x-api/posts/filtered-stream#get-2-tweets-search-stream) request, you will receive the Posts that match your rules within the past one to five minutes. We generally deliver these older Posts first before any newly matched Posts, and also do not deduplicate Posts. This means that if you were disconnected for 90 seconds, but request two minutes worth of backfill data, you will receive 30 seconds worth of duplicate Posts, which your system should be tolerant of. Here is an example of what a request might look like with the backfill parameter: - - `curl 'https://api.x.com/2/tweets/search/stream?backfill_minutes=5' -H "Authorization: Bearer $ACCESS_TOKEN"` - - -If you don't have Enterprise access, or identified that the disconnection time lasted for longer than five minutes, you can utilize the [recent search endpoint](/x-api/posts/search/introduction) or the recovery feature to request missed data. However, note that the search Posts endpoints do not include the sample:, bio:, bio_name:, or bio_location: operators, and has certain differences in matching behavior when using accents and diacritics with the keyword and #hashtag operators. These differences could mean that you don't fully recover all Posts that might have been received via the filtered stream endpoints.  - -**Recovering missed data after a disconnection: Recovery** - -If you are using a Project with Enterprise access, you can use the Recovery feature to recover missed data within the last 24 hours if you are unable to reconnect with the 5 minute backfill window. - -The streaming recovery feature allows you to have an extended backfill window of 24 hours. Recovery enables you to 'replay' the time period of missed data. A recovery stream is started when you make a connection request using 'start\_time' and 'end\_time' request parameters. Once connected, Recovery will re-stream the time period indicated, then disconnect.   - -You will be able to make 2 concurrent requests to recovery at the same time, i.e. “two recovery jobs”. Recovery works technically in the same way as backfill, except a start and end time is defined. A recovery period is for a single time range. - -| | | | -| :--- | :--- | :--- | -| **Name** | **Type** | **Description** | -| start_time | date (ISO 8601) | YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339).

Date in UTC signifying the start time to recover from. | -| end_time | date (ISO 8601) | YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339).

Date in UTC signifying the end time to recover to. | - - +--- +title: Recovery and redundancy +sidebarTitle: Recovery and redundancy +--- + +#### Introduction + +When consuming streaming data, maximizing your connection time and receiving all matched data is a fundamental goal. This means that it is important to take advantage of redundant connections, automatically detect disconnections, to reconnect quickly, and to have a plan for recovering lost data. + +In this integration guide, we will discuss different recovery and redundancy features: redundant connections, backfill, and recovery. +  + +**Redundant connections** + +A redundant connection simply allows you to establish more than one simultaneous connections to the filtered stream. This provides redundancy by allowing you to connect to the same stream with two separate consumers, receiving the same data through both connections. Thus, your app has a hot failover for various situations such as if one stream is disconnected or if your application's primary server fails. + +Filtered stream currently only allows Projects with Enterprise access to connect to up to two redundant connections. To use a redundant stream, simply connect to the same URL used for your primary connection. The data for your stream will be sent through both connections. + +#### Recovering missed data after a disconnection: Backfill + +After you've detected a disconnection, your system should be smart enough to reconnect to the stream. If possible, your system should take note of how long the disconnection lasted so that you can use the proper recovery feature to backfill the data.  + +If you are using a Project with Enterprise access and identified that the disconnection lasted five minutes or less, you can use the backfill parameter, backfill_minutes. If you pass this parameter with your [GET /tweets/search/stream](/x-api/posts/filtered-stream#get-2-tweets-search-stream) request, you will receive the Posts that match your rules within the past one to five minutes. We generally deliver these older Posts first before any newly matched Posts, and also do not deduplicate Posts. This means that if you were disconnected for 90 seconds, but request two minutes worth of backfill data, you will receive 30 seconds worth of duplicate Posts, which your system should be tolerant of. Here is an example of what a request might look like with the backfill parameter: + + `curl 'https://api.x.com/2/tweets/search/stream?backfill_minutes=5' -H "Authorization: Bearer $ACCESS_TOKEN"` + + +If you don't have Enterprise access, or identified that the disconnection time lasted for longer than five minutes, you can utilize the [recent search endpoint](/x-api/posts/search/introduction) or the recovery feature to request missed data. However, note that the search Posts endpoints do not include the sample:, bio:, bio_name:, or bio_location: operators, and has certain differences in matching behavior when using accents and diacritics with the keyword and #hashtag operators. These differences could mean that you don't fully recover all Posts that might have been received via the filtered stream endpoints.  + +**Recovering missed data after a disconnection: Recovery** + +If you are using a Project with Enterprise access, you can use the Recovery feature to recover missed data within the last 24 hours if you are unable to reconnect with the 5 minute backfill window. + +The streaming recovery feature allows you to have an extended backfill window of 24 hours. Recovery enables you to 'replay' the time period of missed data. A recovery stream is started when you make a connection request using 'start\_time' and 'end\_time' request parameters. Once connected, Recovery will re-stream the time period indicated, then disconnect.   + +You will be able to make 2 concurrent requests to recovery at the same time, i.e. “two recovery jobs”. Recovery works technically in the same way as backfill, except a start and end time is defined. A recovery period is for a single time range. + +| | | | +| :--- | :--- | :--- | +| **Name** | **Type** | **Description** | +| start_time | date (ISO 8601) | YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339).

Date in UTC signifying the start time to recover from. | +| end_time | date (ISO 8601) | YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339).

Date in UTC signifying the end time to recover to. | + + Example request URL: [https://api.x.com/2/tweets/search/stream?start\_time=2022-07-12T15:10:00Z&end\_time=2022-07-12T15:20:00Z](https://api.x.com/2/tweets/search/stream?start_time=1985-04-12T23:20:50.52Z&end_time=1985-04-13T00:20:50.52Z) \ No newline at end of file diff --git a/x-api/posts/filtered-stream/introduction.mdx b/x-api/posts/filtered-stream/introduction.mdx index 76e3200..dcd0755 100644 --- a/x-api/posts/filtered-stream/introduction.mdx +++ b/x-api/posts/filtered-stream/introduction.mdx @@ -5,7 +5,7 @@ sidebarTitle: Introduction import { Button } from '/snippets/button.mdx'; -The filtered stream endpoint group enables developers to filter the real-time stream of public Posts. This endpoint group’s functionality includes multiple endpoints that enable you to create and manage rules, and apply those rules to filter a stream of real-time Posts that will return matching public Posts. This endpoint group allows users to listen for specific topics and events in real-time, monitor the conversation around competitions, understand how trends develop in real-time, and much more. +The filtered stream endpoint group enables developers to filter a stream of public Posts. This endpoint group’s functionality includes multiple endpoints that enable you to create and manage rules, and apply those rules to filter a stream of Posts that will return matching public Posts. This endpoint group allows users to listen for specific topics and events, monitor the conversation around competitions, understand how trends develop, and much more. Developers can use the REST [rules endpoint](/x-api/posts/filtered-stream#post-2-tweets-search-stream-rules) to add and remove rules to a persistent stream connection without needing to disconnect. These [rules](/x-api/posts/filtered-stream#building-rules-for-filtered-stream) can be created with operators that match on Post attributes such as message keywords, hashtags, and URLs. Operators and rule clauses can be combined with boolean logic and parentheses to help refine the filter’s matching behavior.  From 937a5c21550fa69801f3880aa89d0baab2170e07 Mon Sep 17 00:00:00 2001 From: Taylor Caldwell Date: Wed, 23 Jul 2025 10:40:54 -0700 Subject: [PATCH 18/34] Update overview pages; remove homepages --- ...rence-index.mdx => api-reference-index.mdx | 0 docs.json | 117 +++++---- .../customer-directory.mdx | 0 .../forms/application-trial.mdx | 0 .../forms/enterprise-api-interest.mdx | 0 .../forms/government-end-user-request.mdx | 0 .../forms/survey.mdx | 0 .../forms/use-case/initial.mdx | 0 .../forms/use-case/modification.mdx | 0 .../forms/use-case/public-sector.mdx | 0 .../forms/use-case/upgrade.mdx | 0 .../partner-directory.mdx | 0 .../authentication/api-reference.mdx | 0 .../authentication/basic-auth.mdx | 0 .../authentication/faq.mdx | 0 .../guides/authentication-best-practices.mdx | 0 .../authentication/guides/log-in-with-x.mdx | 0 .../authentication/guides/tls.mdx | 0 .../guides/v2-authentication-mapping.mdx | 0 .../oauth-1-0a/api-key-and-secret.mdx | 0 .../oauth-1-0a/authorizing-a-request.mdx | 0 .../oauth-1-0a/creating-a-signature.mdx | 0 .../authentication/oauth-1-0a/oauth-echo.mdx | 0 .../obtaining-user-access-tokens.mdx | 0 .../authentication/oauth-1-0a/overview.mdx | 0 .../percent-encoding-parameters.mdx | 0 .../oauth-1-0a/pin-based-oauth.mdx | 0 .../oauth-2-0/application-only.mdx | 0 .../oauth-2-0/authorization-code.mdx | 0 .../oauth-2-0/bearer-tokens.mdx | 0 .../authentication/oauth-2-0/overview.mdx | 0 .../oauth-2-0/user-access-token.mdx | 0 .../authentication/overview.mdx | 0 .../counting-characters.mdx | 0 .../developer-apps.mdx | 0 .../developer-portal.mdx | 0 .../projects.mdx | 0 .../rate-limits.mdx | 0 .../security.mdx | 0 .../fundamentals => fundamentals}/x-ids.mdx | 0 home.mdx | 141 ----------- logo/logo.svg | 3 + resources/newsletter.mdx => newsletter.mdx | 0 overview.mdx | 109 +++++++++ resources/platform-overview.mdx | 184 --------------- snippets/pricing-card.mdx | 81 +++++++ ...d-libraries.mdx => tools-and-libraries.mdx | 0 resources/tutorials.mdx => tutorials.mdx | 0 x-api/introduction.mdx | 223 ++++++++---------- 49 files changed, 356 insertions(+), 502 deletions(-) rename resources/api-reference-index.mdx => api-reference-index.mdx (100%) rename {resources/enterprise => enterprise}/customer-directory.mdx (100%) rename {resources/enterprise => enterprise}/forms/application-trial.mdx (100%) rename {resources/enterprise => enterprise}/forms/enterprise-api-interest.mdx (100%) rename {resources/enterprise => enterprise}/forms/government-end-user-request.mdx (100%) rename {resources/enterprise => enterprise}/forms/survey.mdx (100%) rename {resources/enterprise => enterprise}/forms/use-case/initial.mdx (100%) rename {resources/enterprise => enterprise}/forms/use-case/modification.mdx (100%) rename {resources/enterprise => enterprise}/forms/use-case/public-sector.mdx (100%) rename {resources/enterprise => enterprise}/forms/use-case/upgrade.mdx (100%) rename {resources/enterprise => enterprise}/partner-directory.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/api-reference.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/basic-auth.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/faq.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/guides/authentication-best-practices.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/guides/log-in-with-x.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/guides/tls.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/guides/v2-authentication-mapping.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-1-0a/api-key-and-secret.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-1-0a/authorizing-a-request.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-1-0a/creating-a-signature.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-1-0a/oauth-echo.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-1-0a/obtaining-user-access-tokens.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-1-0a/overview.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-1-0a/percent-encoding-parameters.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-1-0a/pin-based-oauth.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-2-0/application-only.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-2-0/authorization-code.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-2-0/bearer-tokens.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-2-0/overview.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/oauth-2-0/user-access-token.mdx (100%) rename {resources/fundamentals => fundamentals}/authentication/overview.mdx (100%) rename {resources/fundamentals => fundamentals}/counting-characters.mdx (100%) rename {resources/fundamentals => fundamentals}/developer-apps.mdx (100%) rename {resources/fundamentals => fundamentals}/developer-portal.mdx (100%) rename {resources/fundamentals => fundamentals}/projects.mdx (100%) rename {resources/fundamentals => fundamentals}/rate-limits.mdx (100%) rename {resources/fundamentals => fundamentals}/security.mdx (100%) rename {resources/fundamentals => fundamentals}/x-ids.mdx (100%) delete mode 100644 home.mdx create mode 100644 logo/logo.svg rename resources/newsletter.mdx => newsletter.mdx (100%) create mode 100644 overview.mdx delete mode 100644 resources/platform-overview.mdx create mode 100644 snippets/pricing-card.mdx rename resources/tools-and-libraries.mdx => tools-and-libraries.mdx (100%) rename resources/tutorials.mdx => tutorials.mdx (100%) diff --git a/resources/api-reference-index.mdx b/api-reference-index.mdx similarity index 100% rename from resources/api-reference-index.mdx rename to api-reference-index.mdx diff --git a/docs.json b/docs.json index 5122530..2c5a6b6 100644 --- a/docs.json +++ b/docs.json @@ -44,6 +44,38 @@ { "source": "/x-api/media/media-subtitles-delete", "destination": "/x-api/media/subtitle-delete" + }, + { + "source": "/tutorials", + "destination": "/tutorials" + }, + { + "source": "/tools-and-libraries", + "destination": "/tools-and-libraries" + }, + { + "source": "/platform-overview", + "destination": "/overview" + }, + { + "source": "/home", + "destination": "/overview" + }, + { + "source": "/newsletter", + "destination": "/newsletter" + }, + { + "source": "/api-reference-index", + "destination": "/api-reference-index" + }, + { + "source": "/fundamentals/*", + "destination": "/fundamentals/*" + }, + { + "source": "/enterprise/*", + "destination": "/enterprise/*" } ], "favicon": "/favicon.png", @@ -56,85 +88,74 @@ "tab": "Home", "groups": [ { - "group": "Home", - "pages": [ - "home" - ] - } - ] - }, - { - "tab": "Get started", - "groups": [ - { - "group": "Get Started", + "group": "Getting Started", "pages": [ - "resources/platform-overview" + "overview" ] }, { "group": "Fundamentals", "pages": [ - "resources/fundamentals/developer-apps", - "resources/fundamentals/projects", - "resources/fundamentals/developer-portal", + "fundamentals/developer-apps", + "fundamentals/projects", + "fundamentals/developer-portal", { "group": "Authentication", "icon": "key", "pages": [ - "resources/fundamentals/authentication/overview", + "fundamentals/authentication/overview", { "group": "Guides", "pages": [ - "resources/fundamentals/authentication/guides/log-in-with-x", - "resources/fundamentals/authentication/guides/authentication-best-practices", - "resources/fundamentals/authentication/guides/tls", - "resources/fundamentals/authentication/guides/v2-authentication-mapping" + "fundamentals/authentication/guides/log-in-with-x", + "fundamentals/authentication/guides/authentication-best-practices", + "fundamentals/authentication/guides/tls", + "fundamentals/authentication/guides/v2-authentication-mapping" ] }, { "group": "OAuth 1.0a", "pages": [ - "resources/fundamentals/authentication/oauth-1-0a/api-key-and-secret", - "resources/fundamentals/authentication/oauth-1-0a/obtaining-user-access-tokens", - "resources/fundamentals/authentication/oauth-1-0a/authorizing-a-request", - "resources/fundamentals/authentication/oauth-1-0a/oauth-echo", - "resources/fundamentals/authentication/oauth-1-0a/pin-based-oauth", - "resources/fundamentals/authentication/oauth-1-0a/creating-a-signature", - "resources/fundamentals/authentication/oauth-1-0a/percent-encoding-parameters" + "fundamentals/authentication/oauth-1-0a/api-key-and-secret", + "fundamentals/authentication/oauth-1-0a/obtaining-user-access-tokens", + "fundamentals/authentication/oauth-1-0a/authorizing-a-request", + "fundamentals/authentication/oauth-1-0a/oauth-echo", + "fundamentals/authentication/oauth-1-0a/pin-based-oauth", + "fundamentals/authentication/oauth-1-0a/creating-a-signature", + "fundamentals/authentication/oauth-1-0a/percent-encoding-parameters" ] }, { "group": "OAuth 2.0", "pages": [ - "resources/fundamentals/authentication/oauth-2-0/overview", - "resources/fundamentals/authentication/oauth-2-0/application-only", - "resources/fundamentals/authentication/oauth-2-0/bearer-tokens", - "resources/fundamentals/authentication/oauth-2-0/authorization-code", - "resources/fundamentals/authentication/oauth-2-0/user-access-token" + "fundamentals/authentication/oauth-2-0/overview", + "fundamentals/authentication/oauth-2-0/application-only", + "fundamentals/authentication/oauth-2-0/bearer-tokens", + "fundamentals/authentication/oauth-2-0/authorization-code", + "fundamentals/authentication/oauth-2-0/user-access-token" ] }, - "resources/fundamentals/authentication/basic-auth", - "resources/fundamentals/authentication/faq", - "resources/fundamentals/authentication/api-reference" + "fundamentals/authentication/basic-auth", + "fundamentals/authentication/faq", + "fundamentals/authentication/api-reference" ] }, - "resources/fundamentals/counting-characters", - "resources/fundamentals/rate-limits", - "resources/fundamentals/x-ids", - "resources/fundamentals/security" + "fundamentals/counting-characters", + "fundamentals/rate-limits", + "fundamentals/x-ids", + "fundamentals/security" ] }, { "group": "Partners & Customers", "pages": [ - "resources/enterprise/partner-directory", - "resources/enterprise/customer-directory", + "enterprise/partner-directory", + "enterprise/customer-directory", { "group": "Request Access", "pages": [ - "resources/enterprise/forms/enterprise-api-interest", - "resources/enterprise/forms/government-end-user-request" + "enterprise/forms/enterprise-api-interest", + "enterprise/forms/government-end-user-request" ] } ] @@ -142,10 +163,10 @@ { "group": "Resources", "pages": [ - "resources/tools-and-libraries", - "resources/tutorials", - "resources/api-reference-index", - "resources/newsletter" + "tools-and-libraries", + "tutorials", + "api-reference-index", + "newsletter" ] } ] diff --git a/resources/enterprise/customer-directory.mdx b/enterprise/customer-directory.mdx similarity index 100% rename from resources/enterprise/customer-directory.mdx rename to enterprise/customer-directory.mdx diff --git a/resources/enterprise/forms/application-trial.mdx b/enterprise/forms/application-trial.mdx similarity index 100% rename from resources/enterprise/forms/application-trial.mdx rename to enterprise/forms/application-trial.mdx diff --git a/resources/enterprise/forms/enterprise-api-interest.mdx b/enterprise/forms/enterprise-api-interest.mdx similarity index 100% rename from resources/enterprise/forms/enterprise-api-interest.mdx rename to enterprise/forms/enterprise-api-interest.mdx diff --git a/resources/enterprise/forms/government-end-user-request.mdx b/enterprise/forms/government-end-user-request.mdx similarity index 100% rename from resources/enterprise/forms/government-end-user-request.mdx rename to enterprise/forms/government-end-user-request.mdx diff --git a/resources/enterprise/forms/survey.mdx b/enterprise/forms/survey.mdx similarity index 100% rename from resources/enterprise/forms/survey.mdx rename to enterprise/forms/survey.mdx diff --git a/resources/enterprise/forms/use-case/initial.mdx b/enterprise/forms/use-case/initial.mdx similarity index 100% rename from resources/enterprise/forms/use-case/initial.mdx rename to enterprise/forms/use-case/initial.mdx diff --git a/resources/enterprise/forms/use-case/modification.mdx b/enterprise/forms/use-case/modification.mdx similarity index 100% rename from resources/enterprise/forms/use-case/modification.mdx rename to enterprise/forms/use-case/modification.mdx diff --git a/resources/enterprise/forms/use-case/public-sector.mdx b/enterprise/forms/use-case/public-sector.mdx similarity index 100% rename from resources/enterprise/forms/use-case/public-sector.mdx rename to enterprise/forms/use-case/public-sector.mdx diff --git a/resources/enterprise/forms/use-case/upgrade.mdx b/enterprise/forms/use-case/upgrade.mdx similarity index 100% rename from resources/enterprise/forms/use-case/upgrade.mdx rename to enterprise/forms/use-case/upgrade.mdx diff --git a/resources/enterprise/partner-directory.mdx b/enterprise/partner-directory.mdx similarity index 100% rename from resources/enterprise/partner-directory.mdx rename to enterprise/partner-directory.mdx diff --git a/resources/fundamentals/authentication/api-reference.mdx b/fundamentals/authentication/api-reference.mdx similarity index 100% rename from resources/fundamentals/authentication/api-reference.mdx rename to fundamentals/authentication/api-reference.mdx diff --git a/resources/fundamentals/authentication/basic-auth.mdx b/fundamentals/authentication/basic-auth.mdx similarity index 100% rename from resources/fundamentals/authentication/basic-auth.mdx rename to fundamentals/authentication/basic-auth.mdx diff --git a/resources/fundamentals/authentication/faq.mdx b/fundamentals/authentication/faq.mdx similarity index 100% rename from resources/fundamentals/authentication/faq.mdx rename to fundamentals/authentication/faq.mdx diff --git a/resources/fundamentals/authentication/guides/authentication-best-practices.mdx b/fundamentals/authentication/guides/authentication-best-practices.mdx similarity index 100% rename from resources/fundamentals/authentication/guides/authentication-best-practices.mdx rename to fundamentals/authentication/guides/authentication-best-practices.mdx diff --git a/resources/fundamentals/authentication/guides/log-in-with-x.mdx b/fundamentals/authentication/guides/log-in-with-x.mdx similarity index 100% rename from resources/fundamentals/authentication/guides/log-in-with-x.mdx rename to fundamentals/authentication/guides/log-in-with-x.mdx diff --git a/resources/fundamentals/authentication/guides/tls.mdx b/fundamentals/authentication/guides/tls.mdx similarity index 100% rename from resources/fundamentals/authentication/guides/tls.mdx rename to fundamentals/authentication/guides/tls.mdx diff --git a/resources/fundamentals/authentication/guides/v2-authentication-mapping.mdx b/fundamentals/authentication/guides/v2-authentication-mapping.mdx similarity index 100% rename from resources/fundamentals/authentication/guides/v2-authentication-mapping.mdx rename to fundamentals/authentication/guides/v2-authentication-mapping.mdx diff --git a/resources/fundamentals/authentication/oauth-1-0a/api-key-and-secret.mdx b/fundamentals/authentication/oauth-1-0a/api-key-and-secret.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-1-0a/api-key-and-secret.mdx rename to fundamentals/authentication/oauth-1-0a/api-key-and-secret.mdx diff --git a/resources/fundamentals/authentication/oauth-1-0a/authorizing-a-request.mdx b/fundamentals/authentication/oauth-1-0a/authorizing-a-request.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-1-0a/authorizing-a-request.mdx rename to fundamentals/authentication/oauth-1-0a/authorizing-a-request.mdx diff --git a/resources/fundamentals/authentication/oauth-1-0a/creating-a-signature.mdx b/fundamentals/authentication/oauth-1-0a/creating-a-signature.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-1-0a/creating-a-signature.mdx rename to fundamentals/authentication/oauth-1-0a/creating-a-signature.mdx diff --git a/resources/fundamentals/authentication/oauth-1-0a/oauth-echo.mdx b/fundamentals/authentication/oauth-1-0a/oauth-echo.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-1-0a/oauth-echo.mdx rename to fundamentals/authentication/oauth-1-0a/oauth-echo.mdx diff --git a/resources/fundamentals/authentication/oauth-1-0a/obtaining-user-access-tokens.mdx b/fundamentals/authentication/oauth-1-0a/obtaining-user-access-tokens.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-1-0a/obtaining-user-access-tokens.mdx rename to fundamentals/authentication/oauth-1-0a/obtaining-user-access-tokens.mdx diff --git a/resources/fundamentals/authentication/oauth-1-0a/overview.mdx b/fundamentals/authentication/oauth-1-0a/overview.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-1-0a/overview.mdx rename to fundamentals/authentication/oauth-1-0a/overview.mdx diff --git a/resources/fundamentals/authentication/oauth-1-0a/percent-encoding-parameters.mdx b/fundamentals/authentication/oauth-1-0a/percent-encoding-parameters.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-1-0a/percent-encoding-parameters.mdx rename to fundamentals/authentication/oauth-1-0a/percent-encoding-parameters.mdx diff --git a/resources/fundamentals/authentication/oauth-1-0a/pin-based-oauth.mdx b/fundamentals/authentication/oauth-1-0a/pin-based-oauth.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-1-0a/pin-based-oauth.mdx rename to fundamentals/authentication/oauth-1-0a/pin-based-oauth.mdx diff --git a/resources/fundamentals/authentication/oauth-2-0/application-only.mdx b/fundamentals/authentication/oauth-2-0/application-only.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-2-0/application-only.mdx rename to fundamentals/authentication/oauth-2-0/application-only.mdx diff --git a/resources/fundamentals/authentication/oauth-2-0/authorization-code.mdx b/fundamentals/authentication/oauth-2-0/authorization-code.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-2-0/authorization-code.mdx rename to fundamentals/authentication/oauth-2-0/authorization-code.mdx diff --git a/resources/fundamentals/authentication/oauth-2-0/bearer-tokens.mdx b/fundamentals/authentication/oauth-2-0/bearer-tokens.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-2-0/bearer-tokens.mdx rename to fundamentals/authentication/oauth-2-0/bearer-tokens.mdx diff --git a/resources/fundamentals/authentication/oauth-2-0/overview.mdx b/fundamentals/authentication/oauth-2-0/overview.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-2-0/overview.mdx rename to fundamentals/authentication/oauth-2-0/overview.mdx diff --git a/resources/fundamentals/authentication/oauth-2-0/user-access-token.mdx b/fundamentals/authentication/oauth-2-0/user-access-token.mdx similarity index 100% rename from resources/fundamentals/authentication/oauth-2-0/user-access-token.mdx rename to fundamentals/authentication/oauth-2-0/user-access-token.mdx diff --git a/resources/fundamentals/authentication/overview.mdx b/fundamentals/authentication/overview.mdx similarity index 100% rename from resources/fundamentals/authentication/overview.mdx rename to fundamentals/authentication/overview.mdx diff --git a/resources/fundamentals/counting-characters.mdx b/fundamentals/counting-characters.mdx similarity index 100% rename from resources/fundamentals/counting-characters.mdx rename to fundamentals/counting-characters.mdx diff --git a/resources/fundamentals/developer-apps.mdx b/fundamentals/developer-apps.mdx similarity index 100% rename from resources/fundamentals/developer-apps.mdx rename to fundamentals/developer-apps.mdx diff --git a/resources/fundamentals/developer-portal.mdx b/fundamentals/developer-portal.mdx similarity index 100% rename from resources/fundamentals/developer-portal.mdx rename to fundamentals/developer-portal.mdx diff --git a/resources/fundamentals/projects.mdx b/fundamentals/projects.mdx similarity index 100% rename from resources/fundamentals/projects.mdx rename to fundamentals/projects.mdx diff --git a/resources/fundamentals/rate-limits.mdx b/fundamentals/rate-limits.mdx similarity index 100% rename from resources/fundamentals/rate-limits.mdx rename to fundamentals/rate-limits.mdx diff --git a/resources/fundamentals/security.mdx b/fundamentals/security.mdx similarity index 100% rename from resources/fundamentals/security.mdx rename to fundamentals/security.mdx diff --git a/resources/fundamentals/x-ids.mdx b/fundamentals/x-ids.mdx similarity index 100% rename from resources/fundamentals/x-ids.mdx rename to fundamentals/x-ids.mdx diff --git a/home.mdx b/home.mdx deleted file mode 100644 index ccb83e8..0000000 --- a/home.mdx +++ /dev/null @@ -1,141 +0,0 @@ ---- -mode: 'custom' ---- - -import { IntroCard } from '/snippets/card.mdx'; - -export function openSearch() { - if (typeof window !== 'undefined') { - document.getElementById('search-bar-entry').click(); - } -} - -
- -
-
- Use cases -
-
- - - - - - -
-
- -
-
-
-
- See how others are innovating with the X Developer Platform -
- -

- Businesses, researchers, and developers all over the world have used the X Developer Platform to creatively innovate, gain valuable insights, and shape the future. Explore how they did it and get inspired to use the APIs in your own way. -

- - Browse all success stories - - - - -
-
\ No newline at end of file diff --git a/logo/logo.svg b/logo/logo.svg new file mode 100644 index 0000000..437e2bf --- /dev/null +++ b/logo/logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/resources/newsletter.mdx b/newsletter.mdx similarity index 100% rename from resources/newsletter.mdx rename to newsletter.mdx diff --git a/overview.mdx b/overview.mdx new file mode 100644 index 0000000..54edcbf --- /dev/null +++ b/overview.mdx @@ -0,0 +1,109 @@ +--- +title: Welcome to the X Developer Platform +sidebarTitle: Overview +mode: wide +icon: hand-wave +--- + +import { Button } from '/snippets/button.mdx'; + +Build, analyze, and innovate with X's real-time, global data and APIs. Whether you're creating new apps, integrating with X, or analyzing trends, our platform gives you the tools to get started quickly. + + +
+
+ X logo +
+
+ Get real-time events for X accounts—post creation, @mentions, replies, follows, DMs, and more—delivered to your webhook. +

+ +
+
+
+ +--- + +## Jump right in + +Get started quickly with these popular resources and guides. + +
+ +
+
+ Create an API key and make your first request to the X API in minutes. +
+
+ +
+
+
+ +
+
+ Step-by-step guides for common use cases and integrations. +
+
+ +
+
+
+ +
+
+ Official and community libraries to speed up your development. +
+
+ +
+
+
+
+ +--- + +## Products + +Explore the main products of the X Developer Platform. Each product is designed to help you build, analyze, and integrate with X in different ways. + + + + Programmatic access to X's core data: posts, users, spaces, DMs, lists, trends, media, and more. + + + Automate and manage ad campaigns, targeting, creatives, and analytics on the X Ads platform. + + + Embed X content, timelines, and engagement tools directly into your website or app. + + + +--- + +## Support & Community + +- [Support hub](https://developer.x.com/en/support) — Troubleshooting, FAQs, and contact info +- [Developer forum](https://devcommunity.x.com) — Join the conversation +- [Newsletter](https://docs.x.com/resources/newsletter) - Get monthly updates + +--- + +## Stay informed + +- [API status](https://docs.x.com/status) +- [Changelog](https://docs.x.com/changelog) \ No newline at end of file diff --git a/resources/platform-overview.mdx b/resources/platform-overview.mdx deleted file mode 100644 index e0f67c8..0000000 --- a/resources/platform-overview.mdx +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: Platform overview -icon: hand-wave ---- - -import { Button } from '/snippets/button.mdx'; - -## Get started with the X Developer Platform - -X Developer Platform enables you to harness the power of X's open, global, real-time and historical platform within your own applications. The platform provides tools, resources, data and API products for you to integrate, and expand X's impact through research, solutions and more. - -This section can help you get acquainted with the platform’s organization. - -### How the platform is organized - -The X developer platform is organized into three different products. - -We have put together a different getting started section for each of these product pages since they have different requirements.  -  - -#### X API - -The X API is a set of programmatic endpoints that can be used to understand or build the conversation on X.  - -This API allows you to find and retrieve, engage with, or create a variety of different resources including the following: - -* Tweets - -* Users - -* Spaces - -* Direct Messages - -* Lists - -* Trends - -* Media - -* Places - -
- - - -
- -#### X Ads API - -The X Ads API is the direct connection to the X Ads platform. - -Integrate with the X Ads API to enhance the X Ads experience with additional innovation and efficiencies for your business. - -* Create, schedule, and manage ad campaigns - -* Create targeting criteria and custom audiences - -* Plan and create ad creatives - -* Pull ad analytics - -
- - - -
- -#### X for Websites - -X for Websites allows you to embed X's live content into your product, direct from the source. Make the most out of X on your website to increase followers, drive engagement, and grow your business - -Bring your pick of content from X into your website or app. Use our tools to embed Tweets in your stories and articles on the web. - -Include a stream of Tweets in your website or app in a compact, linear view. Configure Tweet timelines to automatically display live updates from people, trends, and places right in your app. - -Allow people who visit your website or app to engage with your X account and share content with their followers. Enhance links to your website shared on X with Cards and X buttons. - - - -### Documentation organization - -Our technical documentation has separate sections to help you work with each of these different products. In each section, you will find guides, libraries, API references, and other resources to help you get started. - -The [X API](/x-api/introduction) and [X Ads API](/x-ads-api/introduction) products share similar fundamentals, and even include some common endpoint functionality. These shared concepts are discussed in the platform fundamentals section, including the following: - - - - - - - - - - - - - - - -For content display and X actions on websites, the X for Websites product consists of web embeds and tools to optimize X links. You can learn more about the fundamentals of this product by navigating to the [X for Websites](https://developer.x.com/en/docs/twitter-for-websites) section of the docs. - -The documentation also includes tutorials, integration guides, developer tools, and use case examples to help you as you integrate with the platform. We welcome you to utilize these resources and engage with the developer community to get inspired and build something new. -  - -### Tools and libraries - -Find both X-maintained and open-source community client libraries and other developer tools that can help you integrate X into your system more quickly. - -
- - - -
- -### Tutorials - -Learn how to use X’s developer tools to build a solution around a use case with one of our tutorials: - - - -### Troubleshooting and support - -Debugging an error? Have a question? Head over to our support section to find troubleshooting tips, contact details, live API status monitor, and other helpful information. - - - -### Community - -* Join the X Developer Community online through our [forum](https://devcommunity.x.com) - -* Subscribe to the [X Developer Newsletter](https://docs.x.com/resources/newsletter) for monthly developer community updates - -### How to stay informed - -The following pages and resources can help provide you with important details on API outages, updates, and other news relevant to developers on the platform. - -* Review our [API status page](https://docs.x.com/status#x-developer-platform-status) to receive updates on known platform inconsistencies that could affect your integration. - -* Check out our [changelog](https://docs.x.com/changelog) to see the recent changes that we've made to the platform, as well as a list of important upcoming dates. - -All of these resources and more are listed on our [stay informed](https://developer.x.com/en/updates/stay-informed) page.  - -*** - -For more information on how to get started, please visit the specific getting started page for the product that matches your use case. - - - -
- - [Learn more](/x-api/getting-started/about-x-api) -
- - -
- - [Learn more](/x-ads-api/getting-started/step-by-step-guide) -
- - -
- - [Learn more](https://developer.x.com/en/docs/twitter-for-websites.html) -
-
\ No newline at end of file diff --git a/snippets/pricing-card.mdx b/snippets/pricing-card.mdx new file mode 100644 index 0000000..6b94ede --- /dev/null +++ b/snippets/pricing-card.mdx @@ -0,0 +1,81 @@ +export const PricingCard = ({ + title, + price, + description, + features = [], + icon, + iconType = "solid", + popular = false, + href = "https://developer.x.com/en/portal/products" +}) => { + const isLink = Boolean(href); + const CardWrapper = isLink ? 'a' : 'div'; + + return ( + +
+ {popular && ( +
+ + Popular + +
+ )} + +
+

+ {title} +

+ +
+ + {price} + + {price !== 'Contact us' && ( + /month + )} +
+ +

+ {description} +

+
+ + {features.length > 0 && ( + <> +
+
+

+ What's included: +

+
+ {features.map((feature, index) => ( +
+ + + +
+ {feature} +
+
+ ))} +
+
+ + )} +
+
+ ); +}; \ No newline at end of file diff --git a/resources/tools-and-libraries.mdx b/tools-and-libraries.mdx similarity index 100% rename from resources/tools-and-libraries.mdx rename to tools-and-libraries.mdx diff --git a/resources/tutorials.mdx b/tutorials.mdx similarity index 100% rename from resources/tutorials.mdx rename to tutorials.mdx diff --git a/x-api/introduction.mdx b/x-api/introduction.mdx index 68ebb34..f30c595 100644 --- a/x-api/introduction.mdx +++ b/x-api/introduction.mdx @@ -1,164 +1,129 @@ --- -title: "Introduction" +title: X API v2 +sidebarTitle: "Introduction" +mode: wide --- import { Button } from "/snippets/button.mdx" +import { PricingCard } from "/snippets/pricing-card.mdx" -The X API enables programmatic access to X in unique and advanced ways. Tap into core elements of X like: Posts, Direct Messages, Spaces, Lists, users, and more. - -
- - - - -
+X API v2 gives you programmatic access to X's global conversation—posts, users, spaces, DMs, lists, trends, media, and more. Build apps, analyze data, and create new experiences with powerful, modern endpoints. --- -## X API v2 +## Key Features -X API v2 is ready for prime time\! We recommend that the majority of developers start to think about migrating to v2 of the API, and for any new users to get started with v2. Why migrate? - - - - - - - - - - + + + Access detailed, structured data for posts, users, media, and more with comprehensive field selection. - - + + Get engagement analytics, real-time metrics, and detailed insights for your data. - - - - - + + Subscribe to filtered or sampled streams for live updates and real-time data processing. -## Access Levels - -### Free - -- For write-only use cases and testing the X API -- Low rate-limit access to v2 posts and media upload endpoints -- 500 Posts per month - posting limit at the app level -- 1 Project, 1 App per Project, 1 Environment -- Login with X, Access to Ads API -- Cost: Free - -### Basic - -- For hobbyists or prototypes -- Low-rate limit access to suite of v2 endpoints -- 3,000 Posts per month (user level), 50,000 Posts per month (app level) -- 15,000/month Posts read-limit rate cap -- 1 Project, 2 Apps per Project -- Login with X, Access to Ads API -- Cost: $200 per month - -### Pro - -- For startups scaling their business -- Rate-limited access to suite of v2 endpoints, including search and filtered stream -- 300,000 Posts per month - posting limit at the app level -- 1,000,000/month Posts read-limit rate cap -- 1 Project, 3 Apps per Project -- Login with X, Access to Ads API -- Cost: $5,000 per month - -### Enterprise - -- For businesses and scaled commercial projects -- Commercial-level access that meets your and your customer's specific needs -- Managed services by a dedicated account team -- Complete streams: replay, engagement metrics, backfill, and more features -- Cost: Monthly subscription tiers - - - -## Migrate to X API v2 - -Interested in migrating your current integration to X API v2? Check out our migration hub for resources that will help you understand what is different between v2 and previous versions, including the data formats. You can also access migration guides for each endpoint listed in the new v2 endpoint sections. - -
- +--- - +## API Tiers & Pricing + +
+ Ads API access, + Login with X access, + "Basic v2 endpoints access" + ]} + /> + + + + Full-archive search access, + Filtered stream access, + "Priority support" + ]} + /> +
+
+

+ Need Enterprise-level access? +

+

+ For businesses and scaled commercial projects, we offer custom solutions with dedicated support, + complete streams, backfill capabilities, and custom integrations. +

+
+ +
--- -## What to build - -Check out our 'what to build" page to learn more about: - -- Moderate conversations for health and safety -- Enable creation and personal expression -- Measure and analyze "what's happening" -- Improve community experiences -- Curate and recommend content -- Impact the greater good - - - -## Tools to get you started - -Go from zero to "Hello World" with the help of these resources, tools, and libraries. - - - - Check out our curated selection of all X-built and community-supported client libraries. - -
+## Get Started Tools + + + Official and community SDKs for fast integration. Support for TypeScript, Java, Python, and more. +

[Browse libraries](/x-api/tools-and-libraries/overview)
- - We have built out a Postman collection for our v2 endpoints to help you explore the API using their visual client\! - -
- + + Explore endpoints visually and test requests with our comprehensive Postman collection. +

[Get started with Postman](https://app.getpostman.com/run-collection/9956214-784efcda-ed4c-4491-a4c0-a26470a67400)
- - Looking to get started building with the X API. We have sample code, clients, and other example apps available. Check out the @XDevelopers GitHub\! - -
- + + Example apps, code samples, and tutorials on GitHub to help you get started quickly. +

[Get started with our sample code](https://github.com/xdevplatform)
-## Need help? +--- -Visit our support section for troubleshooting tips, FAQs, live API status monitor, and other helpful information. +## Support & Community +
- -## Join the conversation - -Explore our forum created for developers building and innovating on the X Developer Platform. - \ No newline at end of file + Join the forum + +
\ No newline at end of file From ea0f0c208a97ab9c9ef136c12635d83bdb211307 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Wed, 23 Jul 2025 17:48:05 +0000 Subject: [PATCH 19/34] Documentation edits made through Mintlify web editor --- overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/overview.mdx b/overview.mdx index 54edcbf..226754f 100644 --- a/overview.mdx +++ b/overview.mdx @@ -82,10 +82,10 @@ Get started quickly with these popular resources and guides. Explore the main products of the X Developer Platform. Each product is designed to help you build, analyze, and integrate with X in different ways. - + Programmatic access to X's core data: posts, users, spaces, DMs, lists, trends, media, and more. - + Automate and manage ad campaigns, targeting, creatives, and analytics on the X Ads platform. From 06574f4e64ceea49889336e3cdcc5eac92e57a9a Mon Sep 17 00:00:00 2001 From: Taylor Caldwell Date: Wed, 23 Jul 2025 14:32:34 -0700 Subject: [PATCH 20/34] Update image border radius for card images --- snippets/story-card.mdx | 2 +- snippets/success-story-card.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/snippets/story-card.mdx b/snippets/story-card.mdx index bae15ee..513da75 100644 --- a/snippets/story-card.mdx +++ b/snippets/story-card.mdx @@ -7,7 +7,7 @@ export const StoryCard = ({ img, href, title }) => { {title} diff --git a/snippets/success-story-card.mdx b/snippets/success-story-card.mdx index 73e94b9..2fceb6c 100644 --- a/snippets/success-story-card.mdx +++ b/snippets/success-story-card.mdx @@ -18,7 +18,7 @@ export const SuccessStoryCard = ({ img, href, title }) => { {title} From f3884378a22c826f9eefe3818d1eeced4dc30214 Mon Sep 17 00:00:00 2001 From: Taylor Caldwell Date: Wed, 23 Jul 2025 17:09:40 -0700 Subject: [PATCH 21/34] Update changelog page to use Mintlify Update component --- changelog.mdx | 2133 +++++++++++++++++++++---------------------------- style.css | 5 + 2 files changed, 920 insertions(+), 1218 deletions(-) diff --git a/changelog.mdx b/changelog.mdx index 2f99094..0766f75 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -1,1579 +1,1276 @@ --- title: Changelog -description: "The X Developer Platform is updated frequently with new functionality and products to better suit your needs. We will be documenting all changes made to the platform’s products via this resource and the @API X account." +description: "The X Developer Platform is updated frequently with new functionality and products to better suit your needs. We will be documenting all changes made to the platform’s products via this resource and the @API X account." mode: wide sidebarTitle: Overview --- -To subscribe to updates, please [**“Turn on notifications”**](https://help.x.com/en/managing-your-account/notifications-on-mobile-devices#:~:text=In%20the%20top%20menu,%20you,you%20would%20like%20to%20receive) for [**@API**](https://x.com/api). +To subscribe to updates, please [**“Turn on notifications”**](https://help.x.com/en/managing-your-account/notifications-on-mobile-devices#:~:text=In%20the%20top%20menu,%20you,you%20would%20like%20to%20receive) for [**@API**](https://x.com/api). + + +### Change to DM Events Behavior +Today, we made a change to X API V2 DM Events behavior. With the new change participant_ids array will only be included for ParticipantsJoin and ParticipantsLeave events, and it will list only the participants who joined or left at the time of the event. The MessageCreate event will no longer include the participant_ids array. Learn more [here](https://devcommunity.x.com/t/upcoming-change-to-x-api-dm-events-endpoints-behavior/241841). + + + +### Launch of Account Activity API Endpoints +Today, we launched new X API v2 [Account Activity API endpoints](/x-api/webhooks/introduction). Learn more [here](https://devcommunity.x.com/t/account-activity-api-is-now-available-in-v2/242895). + + + +### Improvements to Media Upload Endpoint +We made few improvements to media upload endpoint to improve the developer experience. We introduced Dedicated Endpoints for Chunked Media Upload [Media Upload endpoints](/x-api/media/introduction). Learn more [here](https://devcommunity.x.com/t/media-upload-endpoints-update-and-extended-migration-deadline/241818). + + + +### Support for Email Address Retrieval with OAuth 2.0 +Today, we added support for email address retrieval with OAuth 2.0 in X API V2. Learn more [here](https://devcommunity.x.com/t/announcing-support-for-email-address-retrieval-with-oauth-2-0-in-the-x-api-v2/240555). + + + +### Changes to User Affiliation Data +Today, we made changes to X API V2 User Affiliation Data. With the new change affiliation.user_id will return an array of user_ids. Earlier it used to return a single user_id as a string, even if a user had multiple affiliations. Learn more [here](https://devcommunity.x.com/t/change-to-x-api-user-affiliation-data/237164). + + + +### Launch of Media Upload Endpoints +Today, we launched new X API v2 [Media Upload endpoints](/x-api/media/introduction). Learn more [here](https://devcommunity.x.com/t/announcing-media-upload-endpoints-in-the-x-api-v2/234175/3). + + + +### Launch of New Documentation Site +Today, we launched our new X Developer Platform documentation site, [https://docs.x.com](https://docs.x.com). + + + +### Launch of xurl Tool +Today, we launched [xurl](https://github.com/xdevplatform/xurl), a new tool that simplifies API testing for X developers, which now supports OAuth 2.0. + + + +### Addition of Community ID Tweet Field +Today, we added the `community_id` Tweet Field to the X API v2. Learn more about it [here](https://x.com/tapshah21/status/1860061806653317126). + + + +### Addition of DM Blocking Endpoints +Today, we added the DM blocking and DM unblocking endpoints to the X API v2. + + + +### Support for Longform Posts +Today, we added the ability to create longform Posts with a length of 25k instead of 4k. + + + +### Support for Long Form Posts +Today, we added the ability to create long form Posts using the X API v2 + + + +### Retrieve User Affiliation +Today, we added the ability to retrieve a User's affiliation programmatically using the X API v2 + + + +### Get Article Metadata +Today, we added the ability to get Article metadata using the X API v2 + + + +### Get Profile Image and Cover Picture +Today, we added the ability to get profile Image and cover picture URL via the X V2 API + + + +### Addition of Connection Status Field +Today, we added the connection_status field in the X API v2. Learn more about it [here](https://devcommunity.x.com/t/announcing-connection-status-field-in-the-user-object-in-the-x-api-v2/212588). + + + +### Addition of Trends Lookup Endpoint +Today, we added the Trends lookup endpoint in the X API v2. Learn more about it [here](https://devcommunity.x.com/t/announcing-the-users-search-and-trends-lookup-endpoints-in-the-x-api-v2/210567). + + + +### Addition of Users Search Endpoint +Today, we added the Users Search endpoint in the X API v2. Learn more about it [here](https://devcommunity.x.com/t/announcing-the-users-search-and-trends-lookup-endpoints-in-the-x-api-v2/210567). + + + +### Get DM Permissions +Today, we added the ability to the get DM permissions via the X API v2. Learn more about it [here](https://devcommunity.x.com/t/dm-permissions-available-in-the-x-api-v2/209688). + + + +### Launch of Subscription Type Field +Today, we launched a subscription_type field on the User object in the X API v2. Learn more about it [here](https://devcommunity.x.com/t/new-subscription-type-field-is-available-in-the-twitter-api-v2/209219/2). + + + +### Get Posts Usage Endpoint +Today, we launched an endpoint to programmatically get your posts usage in the X API v2. Learn more about it [here](https://developer.x.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets). + + + +### Launch of Reposts Lookup Endpoint +Today, we launched an endpoint to lookup reposts of a post in the X API v2. Learn more about it [here](https://developer.x.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets). + + + +### Deprecation of Search Endpoints +Today, we are deprecating the search/tweets, users/search, and geo/search endpoints in the X API v1.1. Learn more [here](https://developer.x.com/en/docs/twitter-api/enterprise/powertrack-api/guides/powertrack_recovery_and_redundancy_features). + + + +### Deprecation of Replay API Endpoint +Today, we are deprecating the Replay API endpoint from the enterprise X API. You can use [recovery](https://developer.x.com/en/docs/twitter-api/enterprise/powertrack-api/guides/powertrack_recovery_and_redundancy_features) featured instead. + + + +### Deprecation of Historical Powertrack Endpoints +Today, we are deprecating the Historical Powertrack and Insights track endpoints from the enterprise X API. + + + +### Removal of Follows Endpoints from Basic and Pro Tiers +Today, we are removing the Follows and List Follows endpoints from the Basic and Pro tiers of the X API v2. + + + +### Removal of Manage Blocks Endpoint +Today, we are removing the Manage Blocks endpoint from X API v2. + + + +### Support for Bookmarks Count and Long Posts +Today, we added support for retrieving bookmarks count and the ability to retrieve posts with more than 280 characters in the X API v2. + + + +### Deprecation of Statuses/Filter Endpoint +Today, we are deprecating the statuses/filter endpoint in the X API v1.1 Developers can use the filtered stream endpoint in the X API v2. + + + +### Support for View Counts +Today, we are adding support for view counts in the X API v2. A new field called impression_count is made available in the public_metrics of the post payload. + + + +### Addition of Verified Type Field +Today, we are adding a verified_type user field to the X API v2 that indicates the type of verification a user account has (blue, business, government or none) . + + + +### Removal of Source Field +Today, we are removing the source field from the post payload in the X APIs. + - - - ### June 3, 2025 + +### Addition of Direct Messages Endpoints +Today, Today, we are adding six v2 Direct Messages endpoints. This release includes three GET methods for retrieving Direct Message conversation events and three POST methods for creating new Direct Messages. These methods support group conversations for the first time. - `X API` + Please visit our [blog post](https://developer.x.com/en/blog/product-news/2022/new-v2-direct-messages-endpoints) to learn more about this update. + - Today, we made a change to X API V2 DM Events behavior. With the new change participant_ids array will only be included for ParticipantsJoin and ParticipantsLeave events, and it will list only the participants who joined or left at the time of the event. The MessageCreate event will no longer include the participant_ids array. Learn more [here](https://devcommunity.x.com/t/upcoming-change-to-x-api-dm-events-endpoints-behavior/241841). - - ### May 20, 2025 + +### Support for Edited Post Metadata +Today, we are adding the ability for developers to retrieve edited post metadata using the X API v2. - `X API` + Please visit our [blog post](https://developer.x.com/en/blog/product-news/2022/supporting-edit-tweet-functionality) to learn more about this update. + - Today, we launched new X API v2 [Account Activity API endpoints](/x-api/webhooks/introduction). Learn more [here](https://devcommunity.x.com/t/account-activity-api-is-now-available-in-v2/242895). + +### Addition of Filtering Operator Aliases +Filtering/query operator "aliases" were added to search and filtered stream endpoints, across enterprise, premium, and v2. In many cases, the operator refers to posts instead of statuses, e.g. "in_reply_to_tweet_id" as an alias for "in_reply_to_status_id." In other cases, the new operator alias adds more clarity to the matching performed. For example., since posts can only have one video attachment, a new "has:video_link" alias is provided for "has:videos." Check out the [v2 filtered stream operator table](https://developer.x.com/en/docs/twitter-api/tweets/filtered-stream/integrate/build-a-rule#list) to see more examples. + - ### April 30, 2025 + +### Updates to Reverse Chronological Home Timeline +Beginning today, the reverse chronological home timeline v2 endpoint can return every post created on a timeline over the last 7 days and the most recent 800 regardless of the creation date. + - `X API` + +### New Filtering Operators for Filtered Stream +Today, 10 new v2 filtering operators are now available to all developers building with the filtered stream endpoints, and another 10 are now more widely available. - We made few improvements to media upload endpoint to improve the developer experience. We introduced Dedicated Endpoints for Chunked Media Upload - [Media Upload endpoints](/x-api/media/introduction). Learn more [here](https://devcommunity.x.com/t/media-upload-endpoints-update-and-extended-migration-deadline/241818). + Please visit our [blog post](https://developer.x.com/en/blog/product-news/2022/twitter-api-v2-filtered-stream) to learn more about this update. + - ### April 3, 2025 + +### Updates to Streaming Endpoints Latency +Today, we’re making updates to the streaming endpoints in the X API v2 to reduce the latency by 50%. + - `X API` + +### Enabling v1.1 Media Endpoints in Essential Access +Today, we're enabling the v1.1 media endpoints in Essential access of the X API v2. - Today, we added support for email address retrieval with OAuth 2.0 in X API V2. Learn more [here](https://devcommunity.x.com/t/announcing-support-for-email-address-retrieval-with-oauth-2-0-in-the-x-api-v2/240555). + Please visit our [forum announcement](https://devcommunity.x.com/t/v1-1-media-endpoints-available-for-essential-access-in-the-twitter-api-v2/171664) to learn more about this update. + + +### Launch of Reverse Chronological Home Timeline Endpoint +Today, we’re launching a new endpoint that enables you to retrieve a collection of the most recent posts and reposts posted by who you follow. - ### February 18, 2025 + Please visit our [forum announcement](https://devcommunity.x.com/t/reverse-chronological-home-timeline-in-the-twitter-api-v2/171549) to learn more about this launch. - `X API` + Along with the new endpoints, the variants field is now available for the [media object](https://developer.x.com/en/docs/twitter-api/data-dictionary/object-model/media). This will give you the type of content attached with the URL. + - Today, we made changes to X API V2 User Affiliation Data. With the new change affiliation.user_id will return an array of user_ids. Earlier it used to return a single user_id as a string, even if a user had multiple affiliations. Learn more [here](https://devcommunity.x.com/t/change-to-x-api-user-affiliation-data/237164). - - ### January 16, 2025 + +### Launch of Bookmarks Endpoints +Today, we’re launching new endpoints that enable you to manage and lookup Bookmarks using the X API v2. The Bookmarks feature has long been available in the X app, but until now, there hasn’t been an endpoint that allows you to retrieve, create or build solutions to manage your Bookmarks via the API. - `X API` + Please visit our [forum announcement](https://devcommunity.x.com/t/build-with-bookmarks-on-the-twitter-api-v2/168804) to learn more about this launch. + - Today, we launched new X API v2 [Media Upload endpoints](/x-api/media/introduction). Learn more [here](https://devcommunity.x.com/t/announcing-media-upload-endpoints-in-the-x-api-v2/234175/3). + +### Launch of Quotes Lookup Endpoint +Today, we’re launching the [quotes lookup endpoint](https://developer.x.com/en/docs/twitter-api/tweets/retweets/introduction) that lets you get the quotes for a post ID. - ### January 13, 2025 + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/introducing-the-quote-tweets-lookup-endpoint-to-the-twitter-api-v2/168370) to learn more about this launch. + - `Documentation` + +### Updates to Documentation Navigation +We’ve heard your feedback. Finding content in our documentation could be difficult, and it was confusing when you clicked on a link and were taken to an entirely different side navigation. - Today, we launched our new X Developer Platform documentation site, [https://docs.x.com](https://docs.x.com). + Today, we’ve released an updated docs navigation that enables you to browse the full offering of the X Developer Platform from a single side navigation. With this launch, we eliminated redundant pages, removed confusing icons, and improved how you can interact with the different elements within the navigation. - ### December 17, 2024 + If you have any feedback, please let us know via our [feedback channel](https://twitterdevfeedback.uservoice.com/forums/930250-twitter-api). + - `X API` + +### Improvements to Reposts and Likes Lookup Endpoints +Today, we’re launching improvements to the [reposts lookup](https://developer.x.com/en/docs/twitter-api/tweets/retweets/introduction) and the [Likes lookup](https://developer.x.com/en/docs/twitter-api/tweets/likes/introduction) endpoints, allowing you to get back the complete list of accounts who have Liked or reposted a post, not just the last 100 accounts to do so. - Today, we launched [xurl](https://github.com/xdevplatform/xurl), a new tool that simplifies API testing for X developers, which now supports OAuth 2.0. + To learn more about this launch, please visit our forum announcement to learn more about this launch. + - ### November 22, 2024 + +### Support for OAuth 2.0 Authentication +Today, all developers can now authenticate using OAuth 2.0 by selecting OAuth 2.0 as an authentication method in the developer portal. We’ve added support for confidential and public clients and all relevant v2 endpoints to use this authentication method as part of this release. - `X API v2` + OAuth 2.0 is an industry-standard authorization protocol that provides developers more control over an application’s scopes and improves authorization flows across multiple devices. In other words, developers building applications for people on X will have more control over the information their App requests from its users, so that you only have to ask your end-users for the data and information you need. - Today, we added the `community_id` Tweet Field to the X API v2. Learn more about it [here](https://x.com/tapshah21/status/1860061806653317126). + This modern authorization protocol will allow you to present your end-users with a more streamlined consent flow for authorizing your app, which only displays the specific scopes you have requested from them. - ### September 23, 2024 + To learn more about this launch, please visit our forum announcement. + - `X API v2` + +### Major Platform Updates to X API v2 +**Major platform updates: X API v2 is now the primary version, new Essential and Elevated access, and Policy changes** - Today, we added the DM blocking and DM unblocking endpoints to the X API v2. + Today, we are announcing that X API v2 is now the primary version of the X API. We have launched enough endpoints and functionality into X API v2 to satisfy the needs of 90% of all existing Apps built on the X API. - ### August 20, 2024 + We are launching the following changes today to further improve upon the X API v2 developer experience: - `X API v2` + * Fast and free Essential access to the API, and free Elevated access to developers who have had their use cases approved. We have a lot more details on these access levels available on our About the X API page. - Today, we added the ability to create longform Posts with a length of 25k instead of 4k. + * We are removing language in our Developer Policy that restricted how you build with X’s core features, and limited the number of users you can support through your app. - ### August 9, 2024 + * We are opening up our platform to encourage you to build tools and products that make X better, healthier, and extend the public conversation. [See a list of solutions we’d love to see you build](https://developer.x.com/en/docs/twitter-api/what-to-build). - `X API v2` + * Specifically, we’ve removed terms that restricted replication of the X experience, including X’s core features as well as terms that required permission to have high numbers of user tokens. - Today, we added the ability to create long form Posts using the X API v2 + * We know that building solutions that help people on X often means a developer has to build (or replicate) some of the things that are available on X. These changes to our Developer Policy are intended to drive clarity for the developer ecosystem and provide an open API platform that makes it easier for developers to build, innovate, and make an impact on the public conversation. - ### August 2, 2024 + We go into a lot more detail on this launch and the X API launches that led to this moment in our [forum post](https://devcommunity.x.com/t/ushering-in-a-new-era-for-the-twitter-developer-platform-with-the-twitter-api-v2/162087). - `X API v2` + In addition to exploring earlier changelog entries, we’ve put together some key resources that you can review to understand what all has released to X API v2 to-date: - Today, we added the ability to retrieve a User's affiliation programmatically using the X API v2 + * [X API endpoint map](/x-api/migrate/x-api-endpoint-map) - ### July 26, 2024 + * [About the X API](/x-api/getting-started/about-x-api) + - `X API v2` + +### Launch of List Lookup Endpoints +Today, we’re launching the new List lookup endpoints to X API v2. These endpoints will allow users to retrieve details on specified Lists such as followers, members, posts and more. The data retrieved can be used to build solutions that solve for curation, analysis and discoverability use cases and needs. In addition to new List endpoints, a new list: operator has been made available at the Academic Research access level. This will be available to use on search posts and post counts. - Today, we added the ability to get Article metadata using the X API v2 + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-list-lookup-endpoints-for-the-twitter-api-v2/161965). + - ### June 17, 2024 + +### Additions to Spaces Endpoints +We are adding functionality to the Spaces endpoint to return the list of people who purchased a ticket to a Space, as well as support for Topics. - `X API v2` + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/adding-new-functionality-to-spaces-endpoints/161959). + - Today, we added the ability to get profile Image and cover picture URL via the X V2 API + +### Launch of Manage Posts Endpoints +Today, we’re launching new manage posts endpoints to the X API v2. In addition to post and post delete functionality,, we’ve added the ability to post polls, tag people in images, create posts with reply settings, and post to Super Followers. - ### January 16, 2024 + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-manage-tweets-endpoints-for-the-twitter-api-v2/161501). + - `X API v2` + +### Changes to Embedded Buttons +Today, we're making some changes to X's embedded buttons. Buttons are now more rounded to match X.com buttons and we've (very slightly) updated our color palette. - Today, we added the connection\_status field in the X API v2. Learn more about it [here](https://devcommunity.x.com/t/announcing-connection-status-field-in-the-user-object-in-the-x-api-v2/212588). + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/embedded-buttons-have-a-new-look/160528). + - ### December 12, 2023 + +### Launch of Lists Endpoint Group +Today, we’re launching the new Lists endpoint group to X API v2. These endpoints will allow you to build solutions that curate and organize posts based on preferences, interests, groups, or topics. - `X API v2` + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-new-twitter-api-v2-manage-list-endpoints/159980). + - Today, we added the Trends lookup endpoint in the X API v2. Learn more about it [here](https://devcommunity.x.com/t/announcing-the-users-search-and-trends-lookup-endpoints-in-the-x-api-v2/210567). + +### Launch of Mutes Lookup Endpoint +Today, we’re launching the new [mutes lookup](https://developer.x.com/en/docs/twitter-api/users/mutes/introduction) endpoint to the X API v2. This endpoint will allow authenticated users to retrieve and get information on the accounts they have muted. - ### December 8, 2023 + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-new-mutes-lookup-endpoint-for-the-twitter-api-v2/159680). + - `X API v2` + +### Launch of OAuth 2.0 Beta +Today, we’re launching a beta of OAuth 2.0 and fine-grained scopes on the X API v2. . Developers interested in shaping the future of OAuth 2.0 on the X Developer Platform, can request access to the OAuth 2.0 beta. - Today, we added the Users Search endpoint in the X API v2. Learn more about it [here](https://devcommunity.x.com/t/announcing-the-users-search-and-trends-lookup-endpoints-in-the-x-api-v2/210567). + OAuth 2.0 is the industry standard for authentication and will allow for a more modern authorization experience. - ### November 29, 2023 + The OAuth 2.0 beta lets you test this new functionality in a v2 Project and associated App and give us feedback before a General Availability release. However, since this implementation of OAuth 2.0 is currently in development, we strongly recommend that you refrain from testing on a public, production environment, or app. - `X API v2` + To learn more about this launch, please visit our forum announcement. + - Today, we added the ability to the get DM permissions via the X API v2. Learn more about it [here](https://devcommunity.x.com/t/dm-permissions-available-in-the-x-api-v2/209688). + +### Launch of Batch Compliance Endpoints +Today, we’re launching the new [batch compliance endpoints](https://developer.x.com/en/docs/twitter-api/compliance/batch-compliance/introduction) to the X API v2 to make it easier for developers using the X API to keep their X data in compliance with our [Developer Agreement and Policy](https://developer.x.com/en/developer-terms/policy). These endpoints allow developers and researchers to batch upload large amounts of post or User IDs and understand what action is needed to ensure that their datasets reflect user intent and the current state of the content on X. - ### November 20, 2023 + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/new-batch-compliance-endpoints-available-on-the-twitter-api-v2/158534). + - `X API v2` + +### Launch of Spaces Endpoints +Today, we’re launching the new [Spaces endpoints](https://developer.x.com/en/docs/twitter-api/spaces/overview) and a [new top-level Spaces data dictionary](https://developer.x.com/en/docs/twitter-api/data-dictionary/object-model/space) to the X API v2. The Spaces endpoints enable you to lookup Spaces by Space ID or user ID, or using keywords, hashtags, or usernames of people mentioned in a title. The new data dictionary contains relevant information about a Space such as its title, ticketed status, and participant metrics; all user IDs can be expanded into full objects. - Today, we launched a subscription\_type field on the User object in the X API v2. Learn more about it [here](https://devcommunity.x.com/t/new-subscription-type-field-is-available-in-the-twitter-api-v2/209219/2). + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/introducing-new-spaces-endpoints-on-the-twitter-api-v2/158213). + - ### November 2, 2023 + +### New Object for Video Views Limitation +Previously, when you requested video view metrics using the enterprise \[Engagement API]/x-api/enterprise-gnip-2.0/fundamentals/engagement-api) on posts that are older than 1800 days old, we delivered a zero value without much context. Today, we will start delivering a new object in these cases called unsupported_for_video_views_tweet_ids, which will include a comma-separated list of post IDs that are older than 1800 days old. You will still receive all other requested metrics for these posts in a separate object. - `X API v2` + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/new-engagement-api-video-views-object-to-clarify-limitation/158163). + - Today, we launched an endpoint to programmatically get your posts usage in the X API v2. Learn more about it [here](https://developer.x.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets). + +### Addition of Alt Text Field +Today, we are making the alt_text field available in the X API v2 media object, in order to enable developers to build more consciously for accessibility. - ### September 28, 2023 + To request this field, you must pass the expansions=attachments.media_keys parameter, as well as the media.fields=alt_text parameter. If included in your request, this field will return the alt text for any posts that include images with alt text. - `X API v2` + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/media-alt-text-field-now-available-in-twitter-api-v2/157939). + - Today, we launched an endpoint to lookup reposts of a post in the X API v2. Learn more about it [here](https://developer.x.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets). + +### Launch of Reposts Endpoints +Today, we’re launching new [reposts](https://developer.x.com/en/docs/twitter-api/tweets/retweets) endpoints to X API v2. Developers can now use these endpoints to repost or undo a repost on behalf of an authenticated user, or to look up who reposted a given post. - ### September 28, 2023 + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-new-twitter-api-v2-retweets-endpoints/156827). + - `X API v1.1` + +### Launch of Manage Mutes Endpoints +Today, we’re launching new [manage mutes](https://developer.x.com/en/docs/twitter-api/users/mutes/introduction) endpoints to the X API v2. These endpoints will allow authenticated users to mute or unmute accounts. - Today, we are deprecating the search/tweets, users/search, and geo/search endpoints in the X API v1.1. Learn more [here](https://developer.x.com/en/docs/twitter-api/enterprise/powertrack-api/guides/powertrack_recovery_and_redundancy_features). + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-new-manage-mutes-endpoints-for-the-twitter-api-v2/156261). + - ### September 21, 2023 + We have now reduced the `max_results` that can deliver with the [full-archive search](/x-api/posts/full-archive-search) endpoint when you are requesting the `context_annotations` field with the `tweet.fields` parameter to 100, meaning that you can only pull up to 100 posts with the field per page. + - `X API: Enterprise` + +### Reliability Features for Streaming Endpoints +Today, we are launching two reliability streaming features for X API v2’s filtered stream and sampled stream called backfill and redundant connections, which are now available on the Academic Research product track. - Today, we are deprecating the Replay API endpoint from the enterprise X API. You can use [recovery](https://developer.x.com/en/docs/twitter-api/enterprise/powertrack-api/guides/powertrack_recovery_and_redundancy_features)  featured instead. + The redundant connections feature enables you to connect to a given stream two times, which can help to ensure that you maximize streaming up-time in case one of your streams experiences a disconnection. - ### August 1, 2023 + Backfill can be utilized by adding the backfill_minutes parameter and a whole number between one and five to your streaming request, and allows you to request missed data that might have resulted from a disconnected stream. - `X API v1.1` + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/new-reliability-and-recovery-functionality-available-for-twitter-api-v2-streaming-endpoints/156244/2). + - Today, we are deprecating the Historical Powertrack and Insights track endpoints from the enterprise X API. + +### Launch of Post Counts Endpoints +Today, we’re launching the new [post counts endpoints](/x-api/posts/counts/introduction) to the X API v2. This includes two different endpoints: Recent post counts, which is available to all product tracks, and full-archive post counts, which is currently only available to the Academic Research Product Track. You can use these endpoints to receive the count of posts that matches a specified query. - ### June 26, 2023 + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/introducing-new-tweet-counts-endpoints-to-the-twitter-api-v2/155997). + - `X API v2` + +### Improvements to Teams +Today, we’re launching key improvements to the functionality of teams based on feedback we’ve heard from the community. We have updated the style and design of the team page. We also made changes to the invitation flow to make it easier to invite team members or to learn more about why an invitation might have failed. If you have a team account you can check out the changes by viewing the [teams page](https://developer.x.com/en/portal/teams) of the developer portal. To learn more about teams check out our [documentation on the subject](https://developer.x.com/en/docs/developer-portal/overview#team) and related [FAQ](https://developer.x.com/en/docs/developer-portal/faq#dev-portal-management-faq). - Today, we are removing the Follows and List Follows endpoints from the Basic and Pro tiers of the X API v2. + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-improvements-to-the-functionality-of-teams/155447/2). + - ### June 12, 2023 + +### Retirement of Configuration Endpoint +Today, we retired the standard v1.1 GET /help/configuration endpoint. - `X API v2` + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/retiring-the-1-1-configuration-endpoint/153319). + - Today, we are removing the Manage Blocks endpoint from X API v2. + +### Consolidation of oEmbed Endpoint +Today, we’re sharing that the v1.1 oEmbed endpoint will be retired and removed on November 23, 2021, so that new features can be supported in a consistent manner. After that date, the only official and supported API endpoint for X oEmbeds (embedded posts and timelines) will be via publish.x.com/oembed. - ### May 31, 2023 + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/consolidating-the-oembed-functionality/154690/2). + - `X API v2` + +### Launch of Blocks and Likes Lookup Endpoints +Today, we’re launching the new [blocks](/x-api/users/blocks) and [Likes](/x-api/posts/likes) lookup endpoints to the X API v2. These endpoints enable you to use the v2 API to get information about which posts an account has liked, what users have liked a post, and who you or an authenticated user has blocked. - Today, we added support for retrieving bookmarks count and the ability to retrieve posts with more than 280 characters in the X API v2. + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-twitter-api-v2-likes-lookup-and-blocks-lookup/154353). + - ### March 14, 2023 + +### Launch of Manage Likes Endpoints +Today, we’re launching the new [manage Likes](https://developer.x.com/en/docs/twitter-api/tweets/likes) endpoints to the X API v2. These endpoints enable you to use the v2 API to like and unlike posts. - `X API v1.1` + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-new-manage-likes-endpoints-for-thetwitter-api-v2/152780). + - Today, we are deprecating the statuses/filter endpoint in the X API v1.1 Developers can use the filtered stream endpoint in the X API v2. + +### Launch of Manage Blocks Endpoints +Today, we’re launching the new [manage blocks](/x-api/users/blocks) endpoints to the X API v2. These endpoints enable you to block or unblock accounts on behalf of a user using user IDs. - ### January 5, 2023 + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-manage-blocks-for-twitter-api-v2/152358/2). + - `X API v2` + +### Removal of Support for Embedded Timelines +Today we’re sharing our plans for the future of [embedded timeline widgets](https://developer.x.com/en/docs/x-for-websites/timelines/overview). On June 23rd 2021, we plan to retire the Likes, Collections, and Moments timelines. We recommended you use the [Profile](https://developer.x.com/en/docs/x-for-websites/timelines/guides/profile-timeline) and [Lists](https://developer.x.com/en/docs/x-for-websites/timelines/guides/list-timeline) timelines, which we’re updating to become faster, easier to use, and more up-to-date with X features and functionality. - Today, we are adding support for view counts in the X API v2. A new field called impression\_count is made available in the public\_metrics of the post payload. + You can learn more about this change in our [forum announcement](https://devcommunity.x.com/t/removing-support-for-embedded-like-collection-and-moment-timelines/150313). + - ### December 21, 2022 + +### Launch of Manage Follows Endpoints +Today, we’re launching the new [manage follows](/x-api/users/follows) endpoints to the X API v2. These endpoints enable you to follow or unfollow accounts on behalf of a user using their user ID. This launch comes just a few months after the launch of the [follows lookup](/x-api/users/follows) endpoints, which allow you to retrieve an account’s followers and who they are following. - `X API v2` + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/introducing-the-new-manage-follows-endpoints-to-the-twitter-api-v2/149465). + - Today, we are adding a verified\_type user field to the X API v2 that indicates the type of verification a user account has (blue, business, government or none) . + +### Introduction of Academic Research Product Track +Today, we are introducing the new [Academic Research product track](/resources/fundamentals/projects) to [X API v2](/x-api/introduction). This update introduces a new application process for Academic Researchers that will provide those that are approved with an Academic Research [Project](/resources/fundamentals/projects) that will unlock greater access and advanced functionality. - ### December 20, 2022 + With the new Academic Research product track, you will be able to access the following: - `X API v2` + * The new X API v2 [full-archive search endpoint](/x-api/posts/full-archive-search), which is only available to the Academic Research product track at this time. - Today, we are removing the source field from the post payload in the X APIs. + * An increased [post cap](/x-api/fundamentals/post-cap) of 10 million, up from the 500,000 that is available to the [Standard product track](/resources/fundamentals/projects) at the Basic [access level](https://developer.x.com/en/products/x-api/early-access/guide#na_2). - ### October 27, 2022 + * New filter operators available to [recent search](/x-api/posts/recent-search), [full-archive search](/x-api/posts/full-archive-search), and [filtered stream](/x-api/posts/filtered-stream), including `$` (aka cashtag), `bio` (only available via filtered stream), `bio_name` (only available via filtered stream), `bio_location` (only available via filtered stream), `place`, `place_country`, `point_radius`, `bounding_box`, `-is:nullcast`, `has:cashtags` and `has:geo`. - `X API v2` + * An increased rule limit for filtered stream of 1,000 concurrent rules, up from the 25 that is available to the Standard product track at the Basic access level. - Today, Today, we are adding six v2 Direct Messages endpoints. This release includes three GET methods for retrieving Direct Message conversation events and three POST methods for creating new Direct Messages. These methods support group conversations for the first time. + * An increased query and rule character limit of 1,024 characters long, up from the 512 character limit that is available to the Standard product tack at the Basic access level - Please visit our [blog post](https://developer.x.com/en/blog/product-news/2022/new-v2-direct-messages-endpoints) to learn more about this update. + To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/introducing-the-new-academic-research-product-track/148632). + - ### September 29, 2022 + +### Addition of Reply Settings Field +Today we are launching a new field in the post object called reply_settings. This field is available on all X API v2 endpoints that return posts including post lookup, hide replies, recent search, sampled stream, filtered stream, follows lookup, user post timeline, and user mention timeline endpoints or by [expanding](/x-api/fundamentals/expansions) the post object in any endpoint. - `X API v2` + This field indicates how the post author has allowed others to reply to their posts, whether it’s everyone, just the people they mention in the post, or those they follow. The field values returned by the `reply_settings` field include `everyone`, `mentionedUsers`, and `following`. If no conversation controls are set for the post, this will still show up in the post object with `everyone` value for the field. + - Today, we are adding the ability for developers to retrieve edited post metadata using the X API v2. + +### Launch of User Post and Mention Timeline Endpoints +Today, we’re launching the new [user post timeline and user mention timeline endpoints](/x-api/posts/timelines) to the X API v2. These endpoints enable you to request the posts composed by, or mentioning, a specified account on X. Learn more in the forum post announcement. + - Please visit our [blog post](https://developer.x.com/en/blog/product-news/2022/supporting-edit-tweet-functionality) to learn more about this update. + +### Launch of Follows Lookup Endpoints +Today, we’re launching the new [follows lookup endpoints](/x-api/users/follows) to the X API v2. These endpoints enable you to retrieve an account’s followers and who they are following using their user ID. Learn more in the forum post announcement. + - ### August 3rd, 2022 + +### Retirement of Labs v2 Endpoints +Retired Labs v2 recent search and hide replies endpoints - `X API v2` + We have retired the following endpoints. If you were using the Labs versions of these endpoints, you can use the linked migration guides to update your integration to start using the new X API v2 versions: - Filtering/query operator "aliases" were added to search and filtered stream endpoints, across enterprise, premium, and v2. In many cases, the operator refers to posts instead of statuses, e.g. "in\_reply\_to\_tweet\_id" as an alias for "in\_reply\_to\_status\_id." In other cases, the new operator alias adds more clarity to the matching performed. For example., since posts can only have one video attachment, a new "has:video\_link" alias is provided for "has:videos." Check out the [v2 filtered stream operator table](https://developer.x.com/en/docs/twitter-api/tweets/filtered-stream/integrate/build-a-rule#list) to see more examples. + * [Recent search v2](/x-api/posts/search/migrate/overview) - ### July 27th, 2022 + * [Hide replies v2](/x-api/posts/hide-replies/migrate) - `X API v2` + We also have additional details about migration to the new X API v2 via our [migration hub](/x-api/migrate/overview). - Beginning today, the reverse chronological home timeline v2 endpoint can return every post created on a timeline over the last 7 days and the most recent 800 regardless of the creation date.  + If you have any questions, please reach out to our [Labs forum category](https://devcommunity.x.com/c/labs/57). + - ### July 19th, 2022 + +### Retirement of Labs v1 Endpoints +On August 12th, 2020, we launched the new X API v2: Early access. With this release, we graduated several endpoints to X API v2 from the Labs program, and announced that the Labs version of the endpoints would remain in a deprecated state for 60 days before retiring them. - `X API v2` + Today marks 60 days since the launch, meaning that we have retired the following endpoints. If you are using the Labs versions of these endpoints, you can use the linked migration guides to update your integration to start using the new X API v2 versions: - Today, 10 new v2 filtering operators are now available to all developers building with the filtered stream endpoints, and another 10 are now more widely available.   + * [post metrics v1](https://developer.x.com/en/docs/labs/migrate) - Please visit our [blog post](https://developer.x.com/en/blog/product-news/2022/twitter-api-v2-filtered-stream) to learn more about this update. + * [Filtered stream v1](/x-api/posts/filtered-stream#comparing-x-apis-filtered-stream-endpoints) - ### June 16th, 2022 + * [Sampled stream v1](https://developer.x.com/en/docs/x-api/posts/sampled-stream/migrate) - `X API v2` + We also have additional details about migration to the new X API v2 via our [migration hub](/x-api/migrate/overview). - Today, we’re making updates to the streaming endpoints in the X API v2 to reduce the latency by 50%. + If you have any questions, please reach out to our [Labs forum category](https://devcommunity.x.com/c/labs/57). + - ### May 23rd, 2022 + +### Addition of Post Consumption Status Bar +In the [main dashboard page](https://developer.x.com/en/portal/dashboard) of the new developer portal, you can now check your usage towards the [post cap](/x-api/fundamentals/post-cap) of 500,000 posts per month. This cap is applied at the Project level, across the following v2 endpoints in Basic access: filtered stream, and recent search. - `X API v2` + In order to see this feature and use the new v2 endpoints, you will need to activate the [new developer portal experience](https://developer.x.com/en/portal/opt-in.html). + - Today, we're enabling the v1.1 media endpoints in Essential access of the X API v2. + +### Launch of Hide Replies Endpoint +Today, we’re launching the new hide replies endpoint into the v2 X API. This endpoint enables you to hide abusive, distracting, or misleading replies to posts – a crucial piece to improving the health of the public conversation. Learn more in the forum post announcement. - Please visit our [forum announcement](https://devcommunity.x.com/t/v1-1-media-endpoints-available-for-essential-access-in-the-twitter-api-v2/171664) to learn more about this update. + The same endpoint in X Developer Labs is now deprecated, and it will be retired in 90 days. Learn how to [migrate to the v2 endpoint.](/x-api/posts/hide-replies#comparing-twitter-apis-hide-replies-endpoints) + - ### May 19th, 2022 + +### Early Access to X API v2 Endpoints +Today we announced [Early Access to the first endpoints of the new X API](https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html)! - `X API v2` + The new X API features a new API foundation which will allow us to deliver new functionality faster; an updated data format and new functionality that gives you more control over which fields you receive; new post, user, and media fields; and a set of updated endpoints that enable you to listen to and analyze posts, including the following: - Today, we’re launching a new endpoint that enables you to retrieve a collection of the most recent posts and reposts posted by who you follow.  + * [post lookup](/x-api/posts/post-lookup-by-post-ids) - Please visit our [forum announcement](https://devcommunity.x.com/t/reverse-chronological-home-timeline-in-the-twitter-api-v2/171549) to learn more about this launch. + * [User lookup](/x-api/users/user-lookup-by-id) - Along with the new endpoints,  the variants field is now available for the [media object](https://developer.x.com/en/docs/twitter-api/data-dictionary/object-model/media). This will give you the type of content attached with the URL. + * [Recent search](/x-api/posts/recent-search) - ### March 24th, 2022 + * [Filtered stream](/x-api/posts/filtered-stream) - `X API v2` + * [Sampled stream](/x-api/posts/sample-stream) - Today, we’re launching new endpoints that enable you to manage and lookup Bookmarks using the X API v2. The Bookmarks feature has long been available in the X app, but until now, there hasn’t been an endpoint that allows you to retrieve, create or build solutions to manage your Bookmarks via the API.   + You can find a full list of the new functionality available, and find migration resources on our \[X API v2: Early Access docs page]https://developer.x.com/en/docs/x-api/early-access). - Please visit our [forum announcement](https://devcommunity.x.com/t/build-with-bookmarks-on-the-twitter-api-v2/168804) to learn more about this launch. + Learn more about what we have planned in our “\[Guide to the future of the X API]https://developer.x.com/en/docs/x-api/early-access)”. + - ### March 17th, 2022 + +### Deprecation of Labs Endpoints +We are deprecating certain Labs endpoints due to the launch of their X API v2 replacements in this release. - `X API v2` + The following Labs v1 endpoints will be retired 60 days from today's release: - Today, we’re launching the [quotes lookup endpoint](https://developer.x.com/en/docs/twitter-api/tweets/retweets/introduction) that lets you get the quotes for a post ID.  + * post metrics v1 - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/introducing-the-quote-tweets-lookup-endpoint-to-the-twitter-api-v2/168370) to learn more about this launch. + * Filtered stream v1 - ### February 3, 2022 + * Sampled stream v1 - `Documentation` + The following Labs v2 endpoint will be retired 90 days from today’s release: - We’ve heard your feedback. Finding content in our documentation could be difficult, and it was confusing when you clicked on a link and were taken to an entirely different side navigation.  + * Recent search v2 + - Today, we’ve released an updated docs navigation that enables you to browse the full offering of the X Developer Platform from a single side navigation. With this launch, we eliminated redundant pages, removed confusing icons, and improved how you can interact with the different elements within the navigation.  + +### Improvements to Hide Replies +We added the ability to unhide a reply. Additionally, previously unhidden replies can now be hidden again via this endpoint. - If you have any feedback, please let us know via our [feedback channel](https://twitterdevfeedback.uservoice.com/forums/930250-twitter-api). + Get more details in the [Hide replies documentation](https://developer.x.comhttps://developer.x.com/en/docs/labs). + - ### January 20th, 2022 + +### Retirement of Labs v1 Endpoints +Today we are retiring the Labs v1 posts and users, hide replies, and recent search endpoints. - `X API v2` + You can read more about our Labs v1 plan in our [forum announcement](https://devcommunity.x.com/t/update-on-labs-v1-endpoints/138641). + - Today, we’re launching improvements to the [reposts lookup](https://developer.x.com/en/docs/twitter-api/tweets/retweets/introduction) and the [Likes lookup](https://developer.x.com/en/docs/twitter-api/tweets/likes/introduction) endpoints, allowing you to get back the complete list of accounts who have Liked or reposted a post, not just the last 100 accounts to do so.  + +### Addition of Quote Tweets Metric +Today, the `quote_tweets` metric is now available for 'unowned' posts via the [/totals](/x-api/enterprise-gnip-2.0/fundamentals/engagement-api#post-insights-engagement) endpoint. This means that you can access the quote count for all posts by using app-only authentication. - To learn more about this launch, please visit our forum announcement to learn more about this launch. + You can read more about this change in our [forum post](https://devcommunity.x.com/t/how-the-new-retweets-and-comments-metric-is-returned-with-the-twitter-api/139131). + - ### December 14th, 2021 + +### Addition of New Post Metrics +Today we are adding two new non-public metrics subfields, `user_profile_clicks` and `url_link_clicks`, to the post object in the X Developer Labs post lookup endpoints. They will be returned when using the `tweet.fields` parameter with any of the following values: `non_public_metrics`, `organic_metrics`, or `promoted_metrics`. - `X API v2: Authentication` + To learn more, please visit the [post lookup API reference](https://developer.x.com/en/docs/labs/tweets-and-users/api-reference/get-tweets-id) + - Today, all developers can now authenticate using OAuth 2.0 by selecting OAuth 2.0 as an authentication method in the developer portal. We’ve added support for confidential and public clients and all relevant v2 endpoints to use this authentication method as part of this release.  + +### Changes to Repost Counts +Starting today, X web, iOS and Android will be showing the total 'reposts and comments' count per post. Using the X API, the total 'reposts and comments' number matching the X interface can be calculated by adding the `retweet_count` and `quote_count` when available. Additionally `quote_count` will be the total unique accounts that have quoted the post, rather than the total posts quoting the post. For more details, please see our [forum post](https://devcommunity.x.com/t/how-the-new-retweets-and-comments-metric-is-returned-with-the-twitter-api/139131/2). + - OAuth 2.0 is an industry-standard authorization protocol that provides developers more control over an application’s scopes and improves authorization flows across multiple devices. In other words, developers building applications for people on X will have more control over the information their App requests from its users, so that you only have to ask your end-users for the data and information you need.  + +### Organic and Promoted Metrics Groupings +We are adding `organic_metrics` and `promoted_metrics` to the post and media objects in the post lookup endpoints. + - This modern authorization protocol will allow you to present your end-users with a more streamlined consent flow for authorizing your app, which only displays the specific scopes you have requested from them. + +### Addition of Metrics to Endpoints +We are adding metrics to the post and media objects in the post lookup and recent search endpoints. - To learn more about this launch, please visit our forum announcement. + You can read more about these changes in our [forum announcement](https://devcommunity.x.com/t/adding-metrics-to-the-tweets-and-recent-search-endpoints-in-labs/135315) + - ### November 15th, 2021 + +### Launch of COVID-19 Endpoints +Today we are launching a new COVID-19 stream endpoint and an accompanying compliance endpoint. - `X API v2: Early Access` + You can read more about these changes in our [forum announcement.](https://devcommunity.x.com/t/new-covid-19-stream-endpoint-available-in-twitter-developer-labs/135540) + - **Major platform updates: X API v2 is now the primary version, new Essential and Elevated access, and Policy changes** + +### Updates to Replay API User Profiles +Starting today, the Replay API will deliver user profile objects that reflect the referenced user at the time the Replay API is running. This change to deliver current user profile objects is similar to the recent Historical PowerTrack update below from Nov. 25, 2019. + - Today, we are announcing that X API v2 is now the primary version of the X API. We have launched enough endpoints and functionality into X API v2 to satisfy the needs of 90% of all existing Apps built on the X API.  + +### Addition of Post Annotations +We are adding annotations to the post object in the posts and recent search endpoints. - We are launching the following changes today to further improve upon the X API v2 developer experience: + You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/adding-annotations-to-tweets-and-recent-search-endpoints-in-labs/135193). + - * Fast and free Essential access to the API, and free Elevated access to developers who have had their use cases approved. We have a lot more details on these access levels available on our About the X API page.  + +### Updates to Developer Policy +Today, we announced a significant [update to the Developer Policy](https://developer.x.com/en/developer-terms/policy). We encourage you to read more about this via our [forum](https://devcommunity.x.com/t/a-new-easier-to-understand-twitter-developer-policy/135038) and [blog](https://blog.x.com/developer/en_us/topics/community/2020/twitter_developer_policy_update.html) posts, and to review the revised policy. The Developer Policy is one of the foundations for your use of the X API and it is important to understand your commitments. + - * We are removing language in our Developer Policy that restricted how you build with X’s core features, and limited the number of users you can support through your app. + +### Launch of Hide Replies Endpoint +We want to help people feel safe and comfortable having conversations on X. As part of that, today we’re excited to give post authors more control over the conversations they start by supporting the hide replies feature with a new [endpoint](/x-api/posts/hide-replies). - * We are opening up our platform to encourage you to build tools and products that make X better, healthier, and extend the public conversation. [See a list of solutions we’d love to see you build](https://developer.x.com/en/docs/twitter-api/what-to-build).  + You can read more about this new endpoint in our [forum announcement](https://devcommunity.x.com/t/introducing-the-hide-replies-endpoint/134683). + - * Specifically, we’ve removed terms that restricted replication of the X experience, including X’s core features as well as terms that required permission to have high numbers of user tokens.  + +### Release of v2 Labs Endpoints +Today, we are bringing our posts and Users, Recent Search and Hide Replies endpoints to v2 of Labs. We are deprecating Labs v1 endpoints and will fully retire them 90 days after this initial release. We will also keep our v1 documentation available for this duration. You can provide us feedback on this versioning strategy via our [feedback channel](https://twitterdevfeedback.uservoice.com/). - * We know that building solutions that help people on X often means a developer has to build (or replicate) some of the things that are available on X. These changes to our Developer Policy are intended to drive clarity for the developer ecosystem and provide an open API platform that makes it easier for developers to build, innovate, and make an impact on the public conversation. + We're releasing the following changes to posts and Users: - We go into a lot more detail on this launch and the X API launches that led to this moment in our [forum post](https://devcommunity.x.com/t/ushering-in-a-new-era-for-the-twitter-developer-platform-with-the-twitter-api-v2/162087).  + * Introduce [fields](/x-api/fundamentals/fields) as a query parameter - In addition to exploring earlier changelog entries, we’ve put together some key resources that you can review to understand what all has released to X API v2 to-date: + * Remove [formats](https://developer.x.com/en/docs/labs#payload) as a query parameter - * [X API endpoint map](/x-api/migrate/x-api-endpoint-map) + * Add path variable for single ID [lookup](https://developer.x.com/en/docs/labs/overview/versioning/migration-guide#id-lookup-path) in posts and Users - * [About the X API](/x-api/getting-started/about-x-api)  + * Adjusting the path and query parameters for single and multi-username [lookup](/x-api/migrate/overview#username-lookup-path) in GET /users - ### November 15th, 2021 + * Change field name `stats` to `public_metrics` - `X API v2: Early Access` + Other changes include: - Today, we’re launching the new List lookup endpoints to X API v2. These endpoints will allow users to retrieve details on specified Lists such as followers, members, posts and more. The data retrieved can be used to build solutions that solve for curation, analysis and discoverability use cases and needs. In addition to new List endpoints, a new list: operator has been made available at the Academic Research access level. This will be available to use on search posts and post counts. + * Remove the `most_recent_tweet_id` expansion in Users - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-list-lookup-endpoints-for-the-twitter-api-v2/161965). + * Remove HTML tags from the `source` field in posts to make that field easier to parse - ### November 15th, 2021 + The core search, pagination and other functionality of Recent Search will stay the same. - `X API v2: Early Access` + We have put together some [migration materials](/x-api/migrate/overview) for when you update from v1 to v2. - We are adding functionality to the Spaces endpoint to return the list of people who purchased a ticket to a Space, as well as support for Topics. + You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/releasing-a-new-version-of-labs-endpoints/134219). + - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/adding-new-functionality-to-spaces-endpoints/161959). + +### Addition of Drop/Undrop Events to Compliance Firehose +Today we added new drop/undrop event types to the Compliance Firehose API. You can read more about them in our [documentation.](/x-api/enterprise-gnip-2.0/fundamentals/firehouse) + - ### November 3rd, 2021 + +### Changes to Access Token Management +Today, we're making changes to the way that Access Tokens and Access Token Secrets are presented and managed within the [applications Dashboard on developer.x.com](https://developer.x.com/content/developer-twitter/en/apps). - `X API v2: Early Access` + In order to make API integrations more secure, we will no longer show the Access Token and Access Token Secret on the Dashboard beyond the first time that these values are generated. - Today, we’re launching new manage posts endpoints to the X API v2. In addition to post and post delete functionality,, we’ve added the ability to post polls, tag people in images, create posts with reply settings, and post to Super Followers. + After the first time, these credentials can not be retrieved. You will be able to regenerate the tokens on the Dashboard, but this will invalidate your current token and secret. - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-manage-tweets-endpoints-for-the-twitter-api-v2/161501). + You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/upcoming-changes-to-access-token-and-secret-management/130851). + - ### October 12th, 2021 + +### Removal of SPDY Support +Starting January 15, 2020, all connections to the X API (and all other X domains) will no longer support SPDY connections. - `X for Websites` + You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/removing-support-for-spdy-protocol-on-twitter/132530). + - Today, we're making some changes to X's embedded buttons. Buttons are now more rounded to match X.com buttons and we've (very slightly) updated our color palette. + +### Launch of Recent Search Endpoint in Labs +Today, we are releasing a new endpoint to [search for posts posted in the last 7 days](/x-api/posts/recent-search). - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/embedded-buttons-have-a-new-look/160528). + Learn more about this launch via our [forum announcement.](https://devcommunity.x.com/t/new-recent-search-endpoint-available-in-labs/133076) + - ### September 29th, 2021 + +### Update to Twurl CLI +A new updated major release of our X API CLI, `[twurl](https://github.com/twitter/twurl)`, is now available. This release includes a number of bug fixes and enhancements and introduces Bearer Token support which helps to add functionality around the Premium and X Developer Labs endpoints. Read more in our [forum post](https://devcommunity.x.com/t/twurl-0-9-5-released/132966). + - `X API v2: Early Access` + +### Addition of Post Annotations in Streams +Today in X Developer Labs, we are releasing new metadata elements to the default post payload. These new fields, rendered as part of the post payload, will provide more contextual information about the post. - Today, we’re launching the new Lists endpoint group to X API v2. These endpoints will allow you to build solutions that curate and organize posts based on preferences, interests, groups, or topics. + Learn more about this launch via our [forum announcement](https://devcommunity.x.com/t/tweet-annotations-added-to-the-tweet-object-for-the-sampled-stream-and-filtered-stream-endpoints-in-labs/132407). + - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-new-twitter-api-v2-manage-list-endpoints/159980). + +### Updates to Historical PowerTrack User Profiles +Today, we’re updating our "batch historical posts" endpoint (Historical PowerTrack) to provide user profile location, bio description, and display name information that reflects values in place at the of the job processing. When the updated user objects are delivered, there will be a new "updated" string array in the User/Actor object. - ### September 22nd, 2021 + There are up to three possible values: name, description, location: - `X API v2: Early Access` + `"updated": ["name", "description", "location"]` - Today, we’re launching the new [mutes lookup](https://developer.x.com/en/docs/twitter-api/users/mutes/introduction) endpoint to the X API v2. This endpoint will allow authenticated users to retrieve and get information on the accounts they have muted. + See the [documentation on Historical PowerTrack's data format](https://aem-author-production-version-6-3.twitter.biz/content/developer-twitter/en/docs/tweets/batch-historical/guides/powertrack-data-format.html) for more details. + - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-new-mutes-lookup-endpoint-for-the-twitter-api-v2/159680). + +### Addition to Account Activity API +Today, we’re releasing a new feature to the Account Activity API that will provide developers with the ability to view whether an account that mentions your subscribed user is blocked. - ### September 9th, 2021 + You can read more about the `user_has_blocked` [data object structure](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#account-activity-data-object-structure) and check out our [forum announcement](https://devcommunity.x.com/t/new-release-account-activity-api-user-has-blocked-field/131157) for more details. + - #### OAuth 2.0 beta now available + +### Launch of Sampled Stream Endpoint in Labs +Today, we are releasing a new endpoint to [stream a sample of all public posts](/x-api/posts/recent-search) in real-time, as they are posted. - Today, we’re launching a beta of OAuth 2.0 and fine-grained scopes on the X API v2. . Developers interested in shaping the future of OAuth 2.0 on the X Developer Platform, can request access to the OAuth 2.0 beta.  + Learn more about this launch via our [forum announcement.](https://devcommunity.x.com/t/new-sampled-stream-endpoint-available-in-labs/130958) + - OAuth 2.0 is the industry standard for authentication and will allow for a more modern authorization experience.  + +### Launch of Filtered Stream Endpoint in Labs +Today, we are releasing a [new streaming endpoint](/x-api/posts/filtered-stream) to retrieve posts, and an endpoint to manage your filters in X Developer Labs. With these endpoints, you will be able to retrieve up to 500,000 posts per month (maximum 50 posts per second); you can set up to 10 filter rules on your stream (these can be applied at the same time). - The OAuth 2.0 beta lets you test this new functionality in a v2 Project and associated App and give us feedback before a General Availability release. However, since this implementation of OAuth 2.0 is currently in development, we strongly recommend that you refrain from testing on a public, production environment, or app. + Learn more about this launch via our [forum announcement](https://devcommunity.x.com/t/new-filtered-stream-endpoints-available-in-labs-and-the-future-of-statuses-filter/129888). - To learn more about this launch, please visit our forum announcement. + Requests parameters documented in the API reference pages are now clearly marked as either optional or required. Additionally, API reference pages will describe a JSON body payload when this is allowed by a request. + - ### August 25th, 2021 + +### Launch of Post Metrics in Labs +You can now retrieve engagement data for any post or list of posts from owned/authorized accounts. The posts you query must be no older than 30 days and cannot be reposts. - #### Batch compliance endpoints now available in X API v2 + [GET /tweets/metrics/private](https://developer.x.com/en/docs/labs/tweet-metrics/overview.html) supports the following metrics: - `X API v2: Early Access` + * `impressions` - Today, we’re launching the new [batch compliance endpoints](https://developer.x.com/en/docs/twitter-api/compliance/batch-compliance/introduction) to the X API v2 to make it easier for developers using the X API to keep their X data in compliance with our [Developer Agreement and Policy](https://developer.x.com/en/developer-terms/policy). These endpoints allow developers and researchers to batch upload large amounts of post or User IDs and understand what action is needed to ensure that their datasets reflect user intent and the current state of the content on X. + * `reposts` - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/new-batch-compliance-endpoints-available-on-the-twitter-api-v2/158534). + * `quotes` - ### August 18th, 2021 + * `likes` - #### Spaces endpoints now available in X API v2 + * `replies` - `X API v2: Early Access` + * `video views` - Today, we’re launching the new [Spaces endpoints](https://developer.x.com/en/docs/twitter-api/spaces/overview) and a [new top-level Spaces data dictionary](https://developer.x.com/en/docs/twitter-api/data-dictionary/object-model/space) to the X API v2. The Spaces endpoints enable you to lookup Spaces by Space ID or user ID, or using keywords, hashtags, or usernames of people mentioned in a title. The new data dictionary contains relevant information about a Space such as its title, ticketed status, and participant metrics; all user IDs can be expanded into full objects. + * `video view quartiles` (where the requester is also the author of the media) - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/introducing-new-spaces-endpoints-on-the-twitter-api-v2/158213). + Learn more about this launch via our [forum announcement](https://devcommunity.x.com/t/new-twitter-developer-labs-release-metrics-endpoint/129122). + - ### August 16th, 2021 + +### Changes to DM Permissions +Starting today, applications that need to create Direct Messages will be required to have "Read, Write, and Direct Messages" app permissions (RW+DM). Applications attempting to create Direct Messages with only the RW app permission will receive the following error: - #### New data object to help clarify video view limitation for Engagement API + `{"code": 93,"message": "This application is not allowed to access or delete your direct messages."}` - `X API: Enterprise` + You can learn more about this change via our [forum announcement](https://devcommunity.x.com/t/updates-to-app-permissions-direct-message-write-permission-change/128221). + - Previously, when you requested video view metrics using the enterprise \[Engagement API]/x-api/enterprise-gnip-2.0/fundamentals/engagement-api) on posts that are older than 1800 days old, we delivered a zero value without much context. Today, we will start delivering a new object in these cases called unsupported\_for\_video\_views\_tweet\_ids, which will include a comma-separated list of post IDs that are older than 1800 days old. You will still receive all other requested metrics for these posts in a separate object. + +### Addition of Pinned Post Expansion +`pinned_tweet_id` will expand a user’s pinned post through our user object expansion. + - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/new-engagement-api-video-views-object-to-clarify-limitation/158163). + +### Addition of Quote Counts Metadata +Developers can use the new Labs endpoints to pull counts of quotes. + - ### August 11th, 2021 + +### Addition of Most Recent Post Expansion +`most_recent_tweet_id` will expand a user’s most recent post through our user object expansion. - #### Media alt text field now available in X API v2 + Learn more about this launch via our [forum announcement](https://devcommunity.x.com/t/update-to-twitter-developer-labs/128060). + - `X API v2: Early Access` + +### Requirement for TLS 1.2 +Today, all connections to the X API (and all other X domains) will require TLS 1.2. - Today, we are making the alt\_text field available in the X API v2 media object, in order to enable developers to build more consciously for accessibility.  + You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/removing-support-for-legacy-tls-versions-1-0-1-1-on-twitter/126648/2). + - To request this field, you must pass the expansions=attachments.media\_keys parameter, as well as the media.fields=alt\_text parameter. If included in your request, this field will return the alt text for any posts that include images with alt text. + +### New Account Activity API Endpoint +Starting today, we are introducing the new [Account Activity API endpoint](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#api-reference) to deactivate user subscriptions using application-only OAuth. - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/media-alt-text-field-now-available-in-twitter-api-v2/157939). + This new endpoint offers developers the convenience of only having to provide a bearer token to deactivate a subscription, without requiring the subscribed user’s access token. - ### July 14th, 2021 + We are immediately marking the existing enterprise Account Activity API endpoint used to deactivate user subscriptions with 3-Legged OAuth as deprecated. The endpoint will be retired and no longer be available starting from January 15, 2020. - #### reposts now available in X API v2 + Developers can learn more about this API in our [documentation](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#api-reference). + - `X API v2: Early Access` + +### New Expansions for Tweets Endpoint +We added two new expansions to the \[GET /tweets]https://developer.x.com/en/docs/labs/tweets-and-users/api-reference/get-tweets.html) endpoint: - Today, we’re launching new [reposts](https://developer.x.com/en/docs/twitter-api/tweets/retweets) endpoints to X API v2.  Developers can now use these endpoints to repost or undo a repost on behalf of an authenticated user, or to look up who reposted a given post. + entities.mentions.username will expand the username of any recognized user mention in a post into a full user object. - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-new-twitter-api-v2-retweets-endpoints/156827). + `referenced_tweets.id.author_id` expands the ID of the author of any referenced post, when one of the posts requested is a repost, Quoted post or Reply. This expansion will also expand the referenced post ID into a full object. + - ### June 30th, 2021 + +### Support for Tweets and Users Endpoints in Labs +The first two endpoints are now available via the Labs portal. Make sure you have an approved developer account and have applied for Labs access to get started with these endpoints. - #### Manage mutes now available in X API v2 + [Key differences](https://developer.x.com/content/developer-twitter/en/docs/labs/overview/whats-new) from equivalent v1.1 functionality include: - `X API v2: Early Access` + * Single endpoint for single object "show" function and batch "lookups" - Today, we’re launching new [manage mutes](https://developer.x.com/en/docs/twitter-api/users/mutes/introduction) endpoints to the X API v2. These endpoints will allow authenticated users to mute or unmute accounts. + * \[Expansion parameters]) support the inclusion of additional objects as part of one request (e.g. mentioned users, referenced posts, e.g.) - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-new-manage-mutes-endpoints-for-the-twitter-api-v2/156261). -   + * \[Format parameters]) support different data projections with more or less verbose payloads - #### New limits for max\_results when requesting context\_annotations field + * Rate limiting is at the app level, regardless of auth method (user context or bearer token) - `X API v2: Early Access` + Learn more about this launch via our [forum announcement](https://devcommunity.x.com/t/twitter-developer-labs-is-open-to-all-developers/126717). + - We have now reduced the `max_results` that can deliver with the [full-archive search](/x-api/posts/full-archive-search) endpoint when you are requesting the `context_annotations` field with the `tweet.fields` parameter to 100, meaning that you can only pull up to 100 posts with the field per page. + +### Retirement of Terms and Privacy Endpoints +We have fully retired the Terms of Service and Privacy Endpoints. The current status of our [Privacy Policy](https://x.com/en/privacy) and [Terms of Service](https://x.com/en/tos) is best served by our up-to-date web pages. - ### June 29th, 2021 + You can learn more about this change via our [forum announcement](https://devcommunity.x.com/t/terms-of-service-and-privacy-endpoints-will-no-longer-serve-content-after-june-10/125714). + - #### Redundant connections and backfill are now available with v2 filtered stream and sampled stream + +### Changes to User Object Fields +Today some user object fields, including user.lang, will start returning 'null' for updated metadata fields previously announced in our [forum post](https://devcommunity.x.com/t/upcoming-changes-to-user-object-and-get-users-suggestions-endpoints/124732). - `X API v2: Early Access` + Developers can learn about this change through our [documentation.](/x-api/fundamentals/data-dictionary#user) + - Today, we are launching two reliability streaming features for X API v2’s filtered stream and sampled stream called backfill and redundant connections, which are now available on the Academic Research product track.  + +### Launch of Account Activity Replay API +Starting today, we are introducing the [Account Activity Replay API](/x-api/enterprise-gnip-2.0/fundamentals/account-activity), a data recovery tool available with the enterprise tier of the [Account Activity API](/x-api/enterprise-gnip-2.0/fundamentals/account-activity) - The redundant connections feature enables you to connect to a given stream two times, which can help to ensure that you maximize streaming up-time in case one of your streams experiences a disconnection.  + The [Account Activity Replay API](/x-api/enterprise-gnip-2.0/fundamentals/account-activity) allows you to retrieve events from as far back as five days. It should be utilized to recover data in scenarios where your [webhook](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#api-reference) server misses events - Backfill can be utilized by adding the backfill\_minutes parameter and a whole number between one and five to your streaming request, and allows you to request missed data that might have resulted from a disconnected stream.  + Developers can learn more about this API in our [documentation](/x-api/enterprise-gnip-2.0/fundamentals/account-activity). + - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/new-reliability-and-recovery-functionality-available-for-twitter-api-v2-streaming-endpoints/156244/2). + +### Support for Native Media in Quotes +Starting today, native media (photos, videos, and GIFs) can be added to quotes on X, which will be shown as additional media metadata in the entities sections of quote payloads. - ### June 24th, 2021 + Developers can learn more about this in our [documentation](https://developer.x.com/en/docs/x-api/v1/data-dictionary/object-model/tweet). + - #### post counts now available in X API v2 + +### Addition of is:reply Operator +Today, the operator is:reply becomes available to use with the [enterprise search APIs](/x-api/enterprise-gnip-2.0/fundamentals/search-api) and the paid version of the [premium search endpoints](https://developer.x.com/content/developer-twitter/en/docs/tweets/search/api-reference/premium-search). - `X API v2: Early Access` + The is:reply Boolean operator can be used to filter all replies to posts, or to filter out explicit replies that match a rule. This operator functions in the same way as the is:quote operator. - Today, we’re launching the new [post counts endpoints](/x-api/posts/counts/introduction) to the X API v2. This includes two different endpoints: Recent post counts, which is available to all product tracks, and full-archive post counts, which is currently only available to the Academic Research Product Track. You can use these endpoints to receive the count of posts that matches a specified query. + Remember that, with the Search API, all ‘is:’ and ‘has:’ operators must be used in conjunction with a standalone operator like a keyword or hashtag. - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/introducing-new-tweet-counts-endpoints-to-the-twitter-api-v2/155997). + You can learn more about this operator in the [documentation](/x-api/enterprise-gnip-2.0/fundamentals/rules-filtering). + - ### June 21st, 2021 + +### Changes to Expanded URL Enrichment +Today, the expanded URL enrichment will no longer contain the unwound URL object and metadata (including the title and description fields) for URLs linking to posts, Moments, or profiles. Please note that other URLs (to websites, etc.) will continue to be enriched with this metadata, and the url, expanded_url, and `display_url` will still be available. This change applies to [Decahose](/x-api/enterprise-gnip-2.0/fundamentals/decahose-api), [PowerTrack](/x-api/enterprise-gnip-2.0/powertrack-api), [Historical PowerTrack](https://developer.x.com/content/developer-twitter/en/docs/tweets/batch-historical/overview), and the [Search APIs](https://developer.x.com/en/docs/x-api/v1/tweets/search/overview). + - #### Improvements to Teams Functionality + +### Addition of is:reply Operator in PowerTrack +Today, we are introducing a new operator, is:reply, to help you narrow conversations to those you care about most. You can now filter out replies from your results (in addition to the pre-existing ability to filter out reposts, is:retweet, and Quoted posts, is:quote). This new operator is available today within [PowerTrack](/x-api/enterprise-gnip-2.0/powertrack-api), [Historical PowerTrack](https://developer.x.com/content/developer-twitter/en/docs/tweets/batch-historical/overview), and [Replay](/x-api/enterprise-gnip-2.0/powertrack-api#replay-api). - `Developer Portal` + The is:reply Boolean operator can be used to filter all replies to posts, or to filter out explicit replies that match a rule. This operator functions in the same way as the is:quote operator. - Today, we’re launching key improvements to the functionality of teams based on feedback we’ve heard from the community. We have updated the style and design of the team page. We also made changes to the invitation flow to make it easier to invite team members or to learn more about why an invitation might have failed. If you have a team account you can check out the changes by viewing the [teams page](https://developer.x.com/en/portal/teams) of the developer portal. To learn more about teams check out our [documentation on the subject](https://developer.x.com/en/docs/developer-portal/overview#team) and related [FAQ](https://developer.x.com/en/docs/developer-portal/faq#dev-portal-management-faq). + You can learn more about this operator in the [documentation](/x-api/enterprise-gnip-2.0/fundamentals/rules-filtering). + - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-improvements-to-the-functionality-of-teams/155447/2). + +### Access to Apps in Developer Portal +Today, we've added the ability for developers to view and edit their existing [X apps](/resources/fundamentals/developer-apps) via the [X app dashboard](https://developer.x.com/content/developer-twitter/en/apps) on developer.x.com as long as they're logged into their X account. Previously, you could only view and edit your existing X apps on developer.x.com if you had applied or been approved for a [developer account](/resources/fundamentals/developer-portal). - ### June 18th, 2021 + You still must have an approved developer account to be able to create new X apps. + - #### Retiring the standard v1.1 GET /help/configuration endpoint + +### Support for Video Subtitles +Today, we are announcing that advertisers and publishers are now able to add subtitle files (SRT) to their videos via ads.x.com, Media Studio and our publisher upload API. Subtitles will be viewable on auto-playing video (when no sound is available) on Android and Web. We will release the functionality for iOS in the coming weeks. - `X API: Standard v1.1` + To read more about the new subtitles endpoints, please review their respective API reference pages: - Today, we retired the standard v1.1 GET /help/configuration endpoint. + * [POST media/subtitles-create](https://developer.x.com/en/docs/x-api/v1/media/upload-media/api-reference/post-media-subtitles-create) - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/retiring-the-1-1-configuration-endpoint/153319). + * [POST media/subtitles-delete](https://developer.x.com/en/docs/x-api/v1/media/upload-media/api-reference/post-media-subtitles-delete) + - ### May 26th, 2021 + +### Update to Account Activity API Endpoint +Today we are announcing an update to the [Account Activity API](/x-api/enterprise-gnip-2.0/fundamentals/account-activity) endpoint, [GET subscriptions/count](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#get-direct-messages-events-list#get-account-activity-subscriptions-count). To enable greater visibility into your billing details and use of the API, beginning today, you can programmatically pull the number of provisioned subscriptions associated with your Account Activity API instance within the JSON. This means you can now see both what your provisioned number of subscriptions are, and how close you are to hitting that limit via the GET subscriptions/count API endpoint. - #### Consolidating the oEmbed endpoint + This update has been documented with the [Account Activity API documentation](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#get-direct-messages-events-list#get-account-activity-subscriptions-count). + - `X for Websites` + +### New Rate Limits on POST Endpoints +Today we are implementing new app-level rate limits on several of our standard POST endpoints: - Today, we’re sharing that the v1.1 oEmbed endpoint will be retired and removed on November 23, 2021, so that new features can be supported in a consistent manner. After that date, the only official and supported API endpoint for X oEmbeds (embedded posts and timelines) will be via publish.x.com/oembed. + * [POST statuses/update](https://developer.x.com/en/docs/x-api/v1/tweets/post-and-engage/api-reference/post-statuses-update) - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/consolidating-the-oembed-functionality/154690/2). + * [POST statuses/retweet/:id](https://developer.x.com/en/docs/x-api/v1/tweets/post-and-engage/api-reference/get-statuses-retweets-id) - ### May 20th, 2021 + * [POST favorites/create](https://developer.x.com/en/docs/x-api/v1/accounts-and-users/follow-search-get-users/api-reference/post-friendships-create) - #### Blocks and Likes lookup available in X API v2 + * [POST direct_messages/events/new](https://developer.x.com/en/docs/x-api/v1/direct-messages/sending-and-receiving/api-reference/new-event) - `X API v2: Early Access` + * [POST friendships/create](https://developer.x.com/en/docs/x-api/v1/accounts-and-users/follow-search-get-users/api-reference/post-friendships-create) - Today, we’re launching the new [blocks](/x-api/users/blocks) and [Likes](/x-api/posts/likes) lookup endpoints to the X API v2. These endpoints enable you to use the v2 API to get information about which posts an account has liked, what users have liked a post, and who you or an authenticated user has blocked. + You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/new-post-endpoint-rate-limit-enforcement-begins-today/115355). + - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-twitter-api-v2-likes-lookup-and-blocks-lookup/154353). + +### Update to twitter-text Library +Today, we are announcing an update to the [twitter-text](https://github.com/twitter/twitter-text) library to account for the recent changes to the way that X counts emojis. If an emoji previously counted as more than two characters, its count will now be reduced to just two characters to allow for users to make the most out of their 280 characters. - ### April 22nd, 2021 + You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/new-update-to-the-twitter-text-library-emoji-character-count/114607). + - #### Manage Likes available in X API v2 + +### Retirement of Legacy DM Endpoints +We have fully retired the legacy Direct Message endpoints. You can find a list of the retired DM endpoints, as well as their replacements on \[this page]\(https://developer.x.com/content/developer-twitter/en/docs/direct-messages/sending-and-receiving/api-reference. - `X API v2: Early Access` + You can learn more about this update via our [forum announcement](https://devcommunity.x.com/t/details-and-what-to-expect-from-the-api-deprecations-this-week-on-august-16-2018/110746). + - Today, we’re launching the new [manage Likes](https://developer.x.com/en/docs/twitter-api/tweets/likes) endpoints to the X API v2. These endpoints enable you to use the v2 API to like and unlike posts. + +### Changes to DM Media Access +Today, we are implementing some changes to the process where you [retreive attached media from Direct Messages](https://developer.x.com/en/docs/x-api/v1/direct-messages/message-attachments/overview). We will no longer support accessing `media_url` or `media_url_https` via an authenticated www.x.com session. The request to fetch `media_url_https` MUST always be signed with the user’s access token using OAuth 1.0A. - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-new-manage-likes-endpoints-for-thetwitter-api-v2/152780).[](https://devcommunity.x.com/t/announcing-new-manage-likes-endpoints-for-thetwitter-api-v2/152780) + You can learn more about this update via our [forum announcement](https://devcommunity.x.com/t/direct-message-api-change-to-how-apps-can-access-images-sent-in-direct-messages/112722). + - ### April 7th, 2021 + +### Retirement of User and Site Streams +We have fully retired [User Streams](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction) and [Site Streams](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction). - #### Manage blocks available in X API v2 + You can learn more about this update via our [forum announcement](https://devcommunity.x.com/t/details-and-what-to-expect-from-the-api-deprecations-this-week-on-august-16-2018/110746). + - `X API v2: Early Access` + +### New Version of Usage API +Today we are launching a new version of the Usage API. With this update, we’re making the API more stable by moving to a new system. - Today, we’re launching the new [manage blocks](/x-api/users/blocks) endpoints to the X API v2. These endpoints enable you to block or unblock accounts on behalf of a user using user IDs. + With the system update, users will experience a data "hole" as developers will only be able to pull data back to May 1, 2018. Therefore for the upcoming year, they will be missing out on a few months of historical data (until June 2019). - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/announcing-manage-blocks-for-twitter-api-v2/152358/2). + A product name is changing within the Usage API from Historical PowerTrack Subscription to Historical PowerTrack 2.0 which will make the product naming consistent with the rest of our user-facing wording. Customers will receive the exact same data in the same format with the update. You will see this change within the products.type JSON object. - ### March 3rd, 2021 + If you have any questions, please reach out to your account manager. + - #### Removing support for Embedded Like, Collection, and Moment Timelines + +### API Deprecations +The [Account Activity API DM Beta](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction) product was fully retired today. - `X for Websites` + The following services and endpoints will experience degraded service starting today: - Today we’re sharing our plans for the future of [embedded timeline widgets](https://developer.x.com/en/docs/x-for-websites/timelines/overview). On June 23rd 2021, we plan to retire the Likes, Collections, and Moments timelines. We recommended you use the [Profile](https://developer.x.com/en/docs/x-for-websites/timelines/guides/profile-timeline) and [Lists](https://developer.x.com/en/docs/x-for-websites/timelines/guides/list-timeline) timelines, which we’re updating to become faster, easier to use, and more up-to-date with X features and functionality. + * [User Streams](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction) - You can learn more about this change in our [forum announcement](https://devcommunity.x.com/t/removing-support-for-embedded-like-collection-and-moment-timelines/150313). + * [Site Streams](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction) - ### February 10th, 2021 + * [GET direct_messages](https://developer.x.com/en/docs/x-api/v1/direct-messages/sending-and-receiving/api-reference/list-events) - #### Manage follows available in X API v2 + * [GET direct_messages/sent](https://developer.x.com/content/developer-twitter/en/docs/direct-messages/sending-and-receiving/api-reference/get-sent-message) - `X API v2: Early Access` + * [GET direct_messages/show](https://developer.x.com/content/developer-twitter/en/docs/direct-messages/sending-and-receiving/api-reference/get-message) - Today, we’re launching the new [manage follows](/x-api/users/follows) endpoints to the X API v2. These endpoints enable you to follow or unfollow accounts on behalf of a user using their user ID. This launch comes just a few months after the launch of the [follows lookup](/x-api/users/follows) endpoints, which allow you to retrieve an account’s followers and who they are following.  + * [POST direct_messages/new](https://developer.x.com/content/developer-twitter/en/docs/direct-messages/sending-and-receiving/api-reference/new-message) - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/introducing-the-new-manage-follows-endpoints-to-the-twitter-api-v2/149465). + * [POST direct_messages/destroy](https://developer.x.com/content/developer-twitter/en/docs/direct-messages/sending-and-receiving/api-reference/delete-message) - ### January 26th, 2021 + User Streams and Site Streams will be fully retired on August 23rd. - #### Introducing the X API v2 Academic Research product track + The legacy Direct Messages endpoints will be fully retired on September 17th. - `X API v2: Early Access` + You can learn more about this update via our [forum announcement](https://devcommunity.x.com/t/details-and-what-to-expect-from-the-api-deprecations-this-week-on-august-16-2018/110746). + - Today, we are introducing the new [Academic Research product track](/resources/fundamentals/projects) to [X API v2](/x-api/introduction). This update introduces a new application process for Academic Researchers that will provide those that are approved with an Academic Research [Project](/resources/fundamentals/projects) that will unlock greater access and advanced functionality. + +### Changes to App Creation and Rate Limits +As of today, you will no longer be able to create new [X apps](/resources/fundamentals/developer-apps) via [apps.x.com](https://apps.x.com/). You will now be redirected to either your [developer portal](/resources/fundamentals/developer-portal) account or, if you don't have a developer portal account yet, to the page where [you can apply](https://developer.x.com/content/developer-twitter/en/apply-for-access). - With the new Academic Research product track, you will be able to access the following: + We also announced that we will be implementing new app-level rate limits to the following POST endpoints on September 10th, 2018. - * The new X API v2 [full-archive search endpoint](/x-api/posts/full-archive-search), which is only available to the Academic Research product track at this time.  + * [POST statuses/update](https://developer.x.com/en/docs/x-api/v1/tweets/post-and-engage/api-reference/post-statuses-update) - * An increased [post cap](/x-api/fundamentals/post-cap) of 10 million, up from the 500,000 that is available to the [Standard product track](/resources/fundamentals/projects) at the Basic [access level](https://developer.x.com/en/products/x-api/early-access/guide#na_2).  + * [POST statuses/retweet:id](https://developer.x.com/en/docs/x-api/v1/tweets/post-and-engage/api-reference/post-statuses-retweet-id) - * New filter operators available to [recent search](/x-api/posts/recent-search), [full-archive search](/x-api/posts/full-archive-search), and [filtered stream](/x-api/posts/filtered-stream), including `$` (aka cashtag), `bio` (only available via filtered stream), `bio_name` (only available via filtered stream), `bio_location` (only available via filtered stream), `place`, `place_country`, `point_radius`, `bounding_box`, `-is:nullcast`, `has:cashtags` and `has:geo`. + * [POST friendships/create](https://developer.x.com/en/docs/x-api/v1/accounts-and-users/follow-search-get-users/api-reference/post-friendships-create) - * An increased rule limit for filtered stream of 1,000 concurrent rules, up from the 25 that is available to the Standard product track at the Basic access level.  + * [POST favorites/create](https://developer.x.com/en/docs/x-api/v1/tweets/post-and-engage/api-reference/post-favorites-create) - * An increased query and rule character limit of 1,024 characters long, up from the 512 character limit that is available to the Standard product tack at the Basic access level + * [POST direct_messages/events/new](https://developer.x.com/en/docs/x-api/v1/direct-messages/sending-and-receiving/api-reference/new-event) - To learn more about this launch, please visit our [forum announcement](https://devcommunity.x.com/t/introducing-the-new-academic-research-product-track/148632). + Finally, we are introducing a new option for people to report suspected violations of our platform policies to you for review. - ### December 18th, 2020 + You can learn more about all of these updates via our [blog post](https://cli.re/g32qKr). + - #### Conversation reply settings post field for v2 X API + +### App Management in Developer Portal +If you have a [developer portal](/resources/fundamentals/developer-portal) account, you can now create and manage your [X apps](/resources/fundamentals/developer-apps). Please read our [forum post](https://devcommunity.x.com/t/app-creation-and-management-now-available-in-the-developer-portal/107723) for more details. + - `X API v2: Early Access` + +### Changes to Sign in with X and Account Activity +Today, we started requiring that you register the [callback URLs](/resources/fundamentals/developer-apps#callback-urls) that you use with the Sign in with X process. You can read more about this update [here](https://devcommunity.x.com/t/action-required-sign-in-with-twitter-users-must-whitelist-callback-urls/105342). - Today we are launching a new field in the post object called reply\_settings. This field is available on all X API v2 endpoints that return posts including post lookup, hide replies, recent search, sampled stream, filtered stream, follows lookup, user post timeline, and user mention timeline endpoints or by [expanding](/x-api/fundamentals/expansions) the post object in any endpoint. + We also announced the addition of the tweet_delete_events activity to the Account Activity API. This new activity will be sent for those corresponding deleted events to enable developers to more easily provide a compliant experience for their customers and application users. You can read more about this new activity in our [forum post](https://devcommunity.x.com/t/adding-delete-events-to-the-account-activity-api/106783) or on our [documentation](/x-api/enterprise-gnip-2.0/fundamentals/account-activity). + - This field indicates how the post author has allowed others to reply to their posts, whether it’s everyone, just the people they mention in the post, or those they follow. The field values returned by the `reply_settings` field include `everyone`, `mentionedUsers`, and `following`. If no conversation controls are set for the post, this will still show up in the post object with `everyone` value for the field.  + +### Updates to Terms and Policies +Today, we made some changes to our [Terms of Service](https://x.com/en/tos), [Privacy Policy](https://x.com/en/privacy), and \[X Developer Agreement]https://developer.x.com/en/developer-terms/agreement-and-policy that include privacy, security, and data protection updates. Please read our [forum post](https://devcommunity.x.com/t/upcoming-changes-to-the-developer-platform/104603) for more details. + - ### December 17th, 2020 + +### Timezone Fields Made Private +Today, the timezone values in X user objects became private fields. From here on out, all\* time_zone and utc_offset data objects will return as null. Please read our [forum post](https://devcommunity.x.com/t/upcoming-changes-to-the-developer-platform/104603) for more details. + \* They will continue to be available on the account/settings endpoint, for authenticated users only. + - #### User post timeline and user mention timeline available in X API v2 + +### Removal of Klout Data +Today, we removed all Klout data from post payloads as part of our GDPR updates. + - `X API v2: Early Access` + +### Changes to Profile Background and Account Activity +Today, we are changing all instances of profile_background_image_url and profile_background_image_url_https to their default values. Please read our [forum post](https://devcommunity.x.com/t/upcoming-changes-to-the-developer-platform/104603) for more details. - Today, we’re launching the new [user post timeline and user mention timeline endpoints](/x-api/posts/timelines) to the X API v2. These endpoints enable you to request the posts composed by, or mentioning, a specified account on X. Learn more in the forum post announcement.  + In addition to the above change, we are adding a new field to the [Account Activity API](/x-api/enterprise-gnip-2.0/fundamentals/account-activity) payloads to reference which subscription the activity was delivered for. This JSON object is called for_user_id and will include the subscribed user's ID who produced that activity as its value. You can see some examples of this new JSON object in our [account activity objects](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#account-activity-data-object-structure) page. + - ### December 17th, 2020 + +### Changes to Quote Payload Rendering +Today, we are adding a change to the way that URLs will be rendered in the quote payload. - #### Follows lookup available in the X API v2 + We’re adding a new entity called the "quoted_status_permalink" entity to ensure the quoted post can be referenced and we will be removing the t.co link from the quoted post "text" field. - `X API v2: Early Access` + With the new format, the t.co link is no longer appended to the "text" field of the quoted post in the "quoted_status" object. - Today, we’re launching the new [follows lookup endpoints](/x-api/users/follows) to the X API v2. These endpoints enable you to retrieve an account’s followers and who they are following using their user ID. Learn more in the forum post announcement.  + Further, we will no longer put the quoted post t.co url, expanded_url, and display_url in the ‘urls’ entity. Instead, these will be added to a new "quoted_status_permalink" object with "url", "expanded", and "display" URL attributes. This means that the "quoted_status_permalink" object will be reserved for the t.co link back to the quoted post, whereas the "entities.urls" array can be used to identify any links shared within the original post or quote. - ### November 16th, 2020 + Please read our [forum post](https://devcommunity.x.com/t/updating-how-urls-are-rendered-in-the-quote-tweet-payload/105473) and [updated documentation](https://devcommunity.x.com/t/upcoming-changes-to-the-developer-platform/104603) for more details. + - #### Retiring some Labs v2 endpoints + +### Deprecation of X Kit +The announcement of [X Kit](https://developer.x.com/en/docs/x-for-websites) deprecation, after October 31, 2018 X Kit will no longer be actively maintained. Please read our [blog post](https://blog.x.com/developer/en_us/topics/tools/2018/discontinuing-support-for-twitter-kit-sdk.html) for more details. + - `X Developer Labs` + +### Platform Updates for GDPR +Today we announced several updates to the platform related to GDPR. Please read our [forum post](https://devcommunity.x.com/t/upcoming-changes-to-the-developer-platform/104603) for more details. + - Retired Labs v2 recent search and hide replies endpoints + +### Addition of Additional Media Info Object +The addition of a new object to the post payload – additional_media_info object – and also restricting some video details (video_info) for promoted posts where advertisers have requested we limit video playback to X owned clients. You can find additional information about this change at the following link: [Extended Entities Objects > post with native video](https://developer.x.com/en/docs/x-api/v1/data-dictionary/object-model/extended-entities). + - We have retired the following endpoints. If you were using the Labs versions of these endpoints, you can use the linked migration guides to update your integration to start using the new X API v2 versions: + +### Launch of Premium Full-Archive Search +Launch of the [premium full-archive search endpoint](https://blog.x.com/developer/en_us/topics/tools/2018/access-the-full-history-of-tweets.html). + - * [Recent search v2](/x-api/posts/search/migrate/overview) + +### Launch of Account Activity APIs +Launched both ([All Activities](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction)) and ([Direct Messages](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction)) Standard beta Account Activity APIs, read more about this launch [on our blog](https://blog.x.com/developer/en_us/topics/tools/2017/announcing-more-functionality-to-improve-customer-engagements-on-twitter.html). Announced User streams & Site streams deprecation and sunset date of Tuesday June 19, 2018. + - * [Hide replies v2](/x-api/posts/hide-replies/migrate) + +### Update to twitter-text Library +Version 2.0 of twitter-text is now available [on GitHub](https://github.com/twitter/twitter-text). This update addresses the change in our character limit that was rolled out on November 7th, 2017. To learn more about this update, please [visit our forum](https://devcommunity.x.com/t/shipped-twitter-text-2-0/98577). + - We also have additional details about migration to the new X API v2 via our [migration hub](/x-api/migrate/overview).  + +### Launch of Premium APIs +Launched the Premium APIs. - If you have any questions, please reach out to our [Labs forum category](https://devcommunity.x.com/c/labs/57).  + These new APIs build on the quality and stability of our enterprise data platform, and make it available more widely via a tiered pricing model. For the first time, you can start to search across 30 days of posts (instead of the limited 7 days of data on the standard endpoint), and optionally, you can also access our premium enrichments for profile geo, URL expansion, and poll data. Here’s a taste of some of the new features: - ### October 12th, 2020 + * More posts per request (Sandbox + Premium) - #### Retiring some Labs v1 endpoints + * A far more rich query language enabling more complex queries (Sandbox + Premium) - `X Developer Labs` + * A counts endpoint that returns time-series counts of posts (Premium) - On August 12th, 2020, we launched the new X API v2: Early access. With this release, we graduated several endpoints to X API v2 from the Labs program, and announced that the Labs version of the endpoints would remain in a deprecated state for 60 days before retiring them. + * Metadata enrichments, such as expanded URLs and Profile Geo (Premium) - Today marks 60 days since the launch, meaning that we have retired the following endpoints. If you are using the Labs versions of these endpoints, you can use the linked migration guides to update your integration to start using the new X API v2 versions: + Read more about this launch [on our blog](https://blog.x.com/developer/en_us/topics/tools/2017/introducing-twitter-premium-apis.html). + - * [post metrics v1](https://developer.x.com/en/docs/labs/migrate) + +### Launch of 280 Character Posts +Official launch of 280 character posts in languages where cramming was an issue. Please see our [forum announcement](https://devcommunity.x.com/t/updating-the-character-limit-and-the-twitter-text-library/96425) or official [blog post](https://blog.x.com/official/en_us/topics/product/2017/tweetingmadeeasier.html) for further reference. + - * [Filtered stream v1](/x-api/posts/filtered-stream#comparing-x-apis-filtered-stream-endpoints) + +### Removal of DM Commands in Statuses/Update +The ability to send Direct Messages via the statuses/update API endpoint has been completely removed, and the `enable_dm_commands` and `fail_dm_commands` parameters will no longer have any effect. Read more about this update [on our forum](https://devcommunity.x.com/t/retiring-legacy-dm-commands-on-the-standard-tweet-api/86653 "on our forum"). + - * [Sampled stream v1](https://developer.x.com/en/docs/x-api/posts/sampled-stream/migrate) + +### Changes to OAuth Login Flow +A change was made to X’s backend OAuth API endpoints which altered the behaviour of the /oauth/authenticate endpoint to match that of the /oauth/authorize endpoint. Read more about this update [on our forum](https://devcommunity.x.com/t/recent-changes-to-twitter-s-oauth-login-flow-and-api-endpoints/94943). + - We also have additional details about migration to the new X API v2 via our [migration hub](/x-api/migrate/overview).  + +### Updates to Engagement API Metrics +The Engagement API was updated to use the same metrics aggregation methodology in use by the X analytics dashboard. Read more about this update [on our forum](https://devcommunity.x.com/t/changes-to-the-engagement-api/94523). + - If you have any questions, please reach out to our [Labs forum category](https://devcommunity.x.com/c/labs/57).  + +### Changes to DM Commands Failure +The default value of the `fail_dm_commands` parameter within the DM statuses/update endpoint has been switched to *true*. All status updates intended as Direct Messages will start to return errors (unless `enable_dm_commands` is *false*, in which case the post will be posted). Read more about this update [on our forum](https://devcommunity.x.com/t/retiring-legacy-dm-commands-on-the-standard-tweet-api/86653). + - ### September 3rd, 2020 + +### Treatment of 280 Character Tweets +The response payload for 280 character tweets will be treated the same way as long tweets. Read more about this update [on our forum](https://devcommunity.x.com/t/testing-280-characters-for-certain-languages/94126). + - #### post consumption status bar added to the new developer portal experience + +### Addition of Additional Media Info +Adding new data to the post payload (`additional_media_info object`) and also restricting some video details (`video_info`) for promoted posts where advertisers have requested we limit video playback to X owned clients. You can find additional information about this change at the following link: [Extended Entities Objects > post with native video](https://developer.x.com/en/docs/x-api/v1/data-dictionary/object-model/extended-entities) + - `Developer Portal X API v2: Early Access` + +### End of Support for url_contains Operator in 30-Day Search +30-Day and Full-Archive Search ended support for url_contains: operator. Deprecation of this operator was announced as part of the Gnip 2.0 migration in August 2016. Any Search query using the url_contains: Operator will be rejected as invalid. + - In the [main dashboard page](https://developer.x.com/en/portal/dashboard) of the new developer portal, you can now check your usage towards the [post cap](/x-api/fundamentals/post-cap) of 500,000 posts per month. This cap is applied at the Project level, across the following v2 endpoints in Basic access: filtered stream, and recent search. + +### Upcoming Removal of url_contains Operator in Search APIs +The 30-Day Search API (both 30-Day and Full-Archive) will no longer support the url_contains: operator beginning 30 days from today, or after August 4, 2017 (Support of url_contains: will actually end with the first deploy after that date). Deprecation of this operator was announced as part of the Gnip 2.0 migration in August 2016. When Operator support is ended, any query using the url_contains: will be rejected as invalid. + - In order to see this feature and use the new v2 endpoints, you will need to activate the [new developer portal experience](https://developer.x.com/en/portal/opt-in.html). + +### Retirement of xAuth +The xAuth authentication mechanism has been removed from all X APIs Read more about this update [on our forum](https://devcommunity.x.com/t/retirement-of-xauth/88022). + - ### August 19th, 2020 + +### HTTP Headers Forced to Lowercase +All HTTP headers have been forced into lowercase (`content-type`, `x-rate-limit-remaining`, `x-access-level` etc). Read more about this update [on our forum](https://devcommunity.x.com/t/upcoming-http-header-changes/86715). + - #### Hide replies available in v2 X API + +### Optional Parameters for DM Commands +The optional `enable_dm_commands` parameter to statuses/update will enable applications to remove DM command support early, before the transition period ends. The default value is *true* (i.e. current legacy behavior), but this may be set to *false* to get the new, post-November 1 behavior. The optional fail_dm_commands parameter to statuses/update will make DM commands return HTTP 403 (error code 151) from the API when set to *true*. The default value is *false*. Read more about this update [on our forum](https://devcommunity.x.com/t/retiring-legacy-dm-commands-on-the-standard-tweet-api/86653). + - `X API v2: Early Access X Developer Labs` + +### Support for Emojis in Rules +Rules with emojis are now available in the enterprise Search APIs + - Today, we’re launching the new hide replies endpoint into the v2 X API. This endpoint enables you to hide abusive, distracting, or misleading replies to posts – a crucial piece to improving the health of the public conversation. Learn more in the forum post announcement. + +### Wider Availability of Direct Message APIs +Access to several new Direct Message APIs are now more widely available. Read more about this update [on our blog](https://blog.twitter.com/developer/en_us/topics/tools/2017/new-apis-to-power-the-future-of-customer-engagement-in-direct-me.html). + - The same endpoint in X Developer Labs is now deprecated, and it will be retired in 90 days. Learn how to [migrate to the v2 endpoint.](/x-api/posts/hide-replies#comparing-twitter-apis-hide-replies-endpoints) + +### Retirement of MPEG-DASH Video Support +MPEG-DASH URLs (.mpd) has been removed from the payload of a post that contains video. Read more about this update [on our forum](https://devcommunity.x.com/t/retiring-mpeg-dash-video-support-on-march-9th-2017/82761). + - ### August 12th, 2020 + +### New Enrichments and Payload Changes +New Enrichment! Poll Metadata is now available through our enterprise APIs. See the [documentation](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction) for more details. - #### X API v2: Early Access released + New payload field: Image Alt-Text (decription) field may be present in the entities.media\[] and extended_entities.media\[] section of the payload if a user chooses chooses the "Add description" option when adding a photo to a post. This is available in enriched native format only. - `X API v2: Early Access` + Default payload format: Newly created streams on Gnip products will now default to orriginal format JSON. + - Today we announced [Early Access to the first endpoints of the new X API](https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html)! + +### Updates to Historical PowerTrack and Replay API +Historical PowerTrack API & Replay API - The new X API features a new API foundation which will allow us to deliver new functionality faster; an updated data format and new functionality that gives you more control over which fields you receive; new post, user, and media fields; and a set of updated endpoints that enable you to listen to and analyze posts, including the following: + * quote filtering is now supported - * [post lookup](/x-api/posts/post-lookup-by-post-ids) + * Quoted posts are now fully rehydrated within HPT and Replay post payloads + - * [User lookup](/x-api/users/user-lookup-by-id) + +### New Payload Fields for Counts +New payload fields: quote_count and reply_count are now available in native enriched format payloads across Realtime and Historical APIs + - * [Recent search](/x-api/posts/recent-search) + +### Support for Geo Operators in Full-Archive Search +Full-Archive Search API (FAS): - * [Filtered stream](/x-api/posts/filtered-stream) + * Added support for additional geo operators: - * [Sampled stream](/x-api/posts/sample-stream) + * place: - You can find a full list of the new functionality available, and find migration resources on our \[X API v2: Early Access docs page]https://developer.x.com/en/docs/x-api/early-access). + * place_country: - Learn more about what we have planned in our “\[Guide to the future of the X API]https://developer.x.com/en/docs/x-api/early-access)”. + * has:profile_geo: - #### Deprecating certain Labs endpoints + * profile_country: - `X Developer Labs `    + * profile_region: - We are deprecating certain Labs endpoints due to the launch of their X API v2 replacements in this release. + * profile_locality: + - The following Labs v1 endpoints will be retired 60 days from today's release: + +### Rule Management by ID in PowerTrack +Rule management (GET and DELETE) by Rule ID is now available for PowerTrack 2.0 and PowerTrack Replay 2.0 + - * post metrics v1 + +### Support for Geo Operators in 30-Day Search +30-Day Search API: - * Filtered stream v1 + * Added support for additional geo operators: - * Sampled stream v1 + * place: - The following Labs v2 endpoint will be retired 90 days from today’s release: + * place_country: - * Recent search v2 + * has:profile_geo: - ### July 13th, 2020 + * profile_country: - #### Improvements to Hide replies + * profile_region: - `X Developer Labs `    - - We added the ability to unhide a reply. Additionally, previously unhidden replies can now be hidden again via this endpoint. - - Get more details in the [Hide replies documentation](https://developer.x.comhttps://developer.x.com/en/docs/labs). - - ### July 8th, 2020 - - #### Retiring certain Labs v1 endpoints - - `X Developer Labs `    - - Today we are retiring the Labs v1 posts and users, hide replies, and recent search endpoints. - - You can read more about our Labs v1 plan in our [forum announcement](https://devcommunity.x.com/t/update-on-labs-v1-endpoints/138641). - - ### July 7th, 2020 - - #### quotes available for the /totals endpoint - - `X API: Enterprise`     - - Today, the `quote_tweets` metric is now available for 'unowned' posts via the [/totals](/x-api/enterprise-gnip-2.0/fundamentals/engagement-api#post-insights-engagement) endpoint. This means that you can access the quote count for all posts by using app-only authentication.  - - You can read more about this change in our [forum post](https://devcommunity.x.com/t/how-the-new-retweets-and-comments-metric-is-returned-with-the-twitter-api/139131).  - - ### July 1st, 2020 - - #### Adding two new posts metrics - - `X Developer Labs `    - - Today we are adding two new non-public metrics subfields, `user_profile_clicks` and `url_link_clicks`, to the post object in the X Developer Labs post lookup endpoints. They will be returned when using the `tweet.fields` parameter with any of the following values: `non_public_metrics`, `organic_metrics`, or `promoted_metrics`. - - To learn more, please visit the [post lookup API reference](https://developer.x.com/en/docs/labs/tweets-and-users/api-reference/get-tweets-id) - - ### June 15th, 2020 - - #### Changes to X web, iOS and Android repost counts - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise`     - - `X Ads API`     `X for Websites`         `X Developer Labs `    - - Starting today, X web, iOS and Android will be showing the total 'reposts and comments' count per post. Using the X API, the total 'reposts and comments' number matching the X interface can be calculated by adding the `retweet_count` and `quote_count` when available. Additionally `quote_count` will be the total unique accounts that have quoted the post, rather than the total posts quoting the post. For more details, please see our [forum post](https://devcommunity.x.com/t/how-the-new-retweets-and-comments-metric-is-returned-with-the-twitter-api/139131/2). - - ### May 28th, 2020 - - #### Defining organic and promoted metrics groupings for post and media objects - - `X Developer Labs `    - - We are adding `organic_metrics` and `promoted_metrics` to the post and media objects in the post lookup endpoints. - - ### May 6th, 2020 - - #### Metrics in posts and recent search endpoints - - `X Developer Labs `    - - We are adding metrics to the post and media objects in the post lookup and recent search endpoints. - - You can read more about these changes in our [forum announcement](https://devcommunity.x.com/t/adding-metrics-to-the-tweets-and-recent-search-endpoints-in-labs/135315) - - ### April 29th, 2020 - - #### COVID-19 Stream and Compliance endpoints - - `X Developer Labs `    - - Today we are launching a new COVID-19 stream endpoint and an accompanying compliance endpoint. - - You can read more about these changes in our [forum announcement.](https://devcommunity.x.com/t/new-covid-19-stream-endpoint-available-in-twitter-developer-labs/135540) - - ### March 31st, 2020 - - #### PowerTrack's Replay API now delivers current user profile data - - `X API: Enterprise `    - - Starting today, the Replay API will deliver user profile objects that reflect the referenced user at the time the Replay API is running. This change to deliver current user profile objects is similar to the recent Historical PowerTrack update below from Nov. 25, 2019. - - ### March 23rd, 2020 - - #### post annotations in posts and recent search endpoints - - `X Developer Labs `    - - We are adding annotations to the post object in the posts and recent search endpoints. - - You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/adding-annotations-to-tweets-and-recent-search-endpoints-in-labs/135193). - - ### March 10th, 2020 - - #### Major updates to the X Developer Policy - - X API: Standard v1.1     X API: Premium v1.1     X API: Enterprise     - - X Ads API     X for Websites         `X Developer Labs `    - - Today, we announced a significant [update to the Developer Policy](https://developer.x.com/en/developer-terms/policy). We encourage you to read more about this via our [forum](https://devcommunity.x.com/t/a-new-easier-to-understand-twitter-developer-policy/135038) and [blog](https://blog.x.com/developer/en_us/topics/community/2020/twitter_developer_policy_update.html) posts, and to review the revised policy. The Developer Policy is one of the foundations for your use of the X API and it is important to understand your commitments. - - ### February 26th, 2020 - - #### Introducting the hide replies endpoint - - `X Developer Labs `    - - We want to help people feel safe and comfortable having conversations on X. As part of that, today we’re excited to give post authors more control over the conversations they start by supporting the hide replies feature with a new [endpoint](/x-api/posts/hide-replies). - - You can read more about this new endpoint in our [forum announcement](https://devcommunity.x.com/t/introducing-the-hide-replies-endpoint/134683). - - ### February 25th, 2020 - - #### v2 of Labs endpoints: posts and Users, Recent Search, Hide Replies - - `X Developer Labs `    - - Today, we are bringing our posts and Users, Recent Search and Hide Replies endpoints to v2 of Labs. We are deprecating Labs v1 endpoints and will fully retire them 90 days after this initial release. We will also keep our v1 documentation available for this duration. You can provide us feedback on this versioning strategy via our [feedback channel](https://twitterdevfeedback.uservoice.com/).  - - We're releasing the following changes to posts and Users: - - * Introduce [fields](/x-api/fundamentals/fields) as a query parameter - - * Remove [formats](https://developer.x.com/en/docs/labs#payload) as a query parameter - - * Add path variable for single ID [lookup](https://developer.x.com/en/docs/labs/overview/versioning/migration-guide#id-lookup-path) in posts and Users - - * Adjusting the path and query parameters for single and multi-username [lookup](/x-api/migrate/overview#username-lookup-path) in GET /users - - * Change field name `stats` to `public_metrics` - - Other changes include: - - * Remove the `most_recent_tweet_id` expansion in Users - - * Remove HTML tags from the `source` field in posts to make that field easier to parse - - The core search, pagination and other functionality of Recent Search will stay the same. - - We have put together some [migration materials](/x-api/migrate/overview) for when you update from v1 to v2. - - You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/releasing-a-new-version-of-labs-endpoints/134219). - - ### February 7th, 2020 - - `X API: Enterprise`     - - Today we added new drop/undrop event types to the Compliance Firehose API. You can read more about them in our [documentation.](/x-api/enterprise-gnip-2.0/fundamentals/firehouse)   - - ### January 21st, 2020 - - `X API: Standard v1.1`    ` X API: Premium v1.1`     `X API: Enterprise`     - - `X Ads API`     `X Developer Labs `    - - Today, we're making changes to the way that Access Tokens and Access Token Secrets are presented and managed within the [applications Dashboard on developer.x.com](https://developer.x.com/content/developer-twitter/en/apps).  - - In order to make API integrations more secure, we will no longer show the Access Token and Access Token Secret on the Dashboard beyond the first time that these values are generated. - - After the first time, these credentials can not be retrieved. You will be able to regenerate the tokens on the Dashboard, but this will invalidate your current token and secret. - - You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/upcoming-changes-to-access-token-and-secret-management/130851).   - - ### January 15th, 2020 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise`     - - `X Ads API`     `X Developer Labs `    - - Starting January 15, 2020, all connections to the X API (and all other X domains) will no longer support SPDY connections. - - You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/removing-support-for-spdy-protocol-on-twitter/132530).   - - ### January 6th, 2020 - - #### New Recent search endpoint available in Labs - - `X Developer Labs `    - - Today, we are releasing a new endpoint to [search for posts posted in the last 7 days](/x-api/posts/recent-search).  - - Learn more about this launch via our [forum announcement.](https://devcommunity.x.com/t/new-recent-search-endpoint-available-in-labs/133076) - - ### December 29th, 2019 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise`     - - `X Ads API`     `X Developer Labs `    - - A new updated major release of our X API CLI, `[twurl](https://github.com/twitter/twurl)`, is now available. This release includes a number of bug fixes and enhancements and introduces Bearer Token support which helps to add functionality around the Premium and X Developer Labs endpoints. Read more in our [forum post](https://devcommunity.x.com/t/twurl-0-9-5-released/132966).   - - ### December 10th, 2019 - - #### post annotations added to the post Object for sampled stream and filtered stream endpoints in Labs - - `X Developer Labs `    - - Today in X Developer Labs, we are releasing new metadata elements to the default post payload. These new fields, rendered as part of the post payload, will provide more contextual information about the post. - - Learn more about this launch via our [forum announcement](https://devcommunity.x.com/t/tweet-annotations-added-to-the-tweet-object-for-the-sampled-stream-and-filtered-stream-endpoints-in-labs/132407). - - ### November 25th, 2019 - - `X API: Enterprise v1.1`     - - Today, we’re updating our "batch historical posts" endpoint (Historical PowerTrack) to provide user profile location, bio description, and display name information that reflects values in place at the of the job processing. When the updated user objects are delivered, there will be a new "updated" string array in the User/Actor object.  - - There are up to three possible values: name, description, location:   - - `"updated": ["name", "description", "location"]` - - See the [documentation on Historical PowerTrack's data format](https://aem-author-production-version-6-3.twitter.biz/content/developer-twitter/en/docs/tweets/batch-historical/guides/powertrack-data-format.html) for more details. - - ### October 29th, 2019 - - `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - Today, we’re releasing a new feature to the Account Activity API that will provide developers with the ability to view whether an account that mentions your subscribed user is blocked. - - You can read more about the `user_has_blocked` [data object structure](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#account-activity-data-object-structure) and check out our [forum announcement](https://devcommunity.x.com/t/new-release-account-activity-api-user-has-blocked-field/131157) for more details. - - ### October 22nd, 2019 - - #### New sampled stream endpoint available in Labs - - `X Developer Labs `    - - Today, we are releasing a new endpoint to [stream a sample of all public posts](/x-api/posts/recent-search) in real-time, as they are posted.  - - Learn more about this launch via our [forum announcement.](https://devcommunity.x.com/t/new-sampled-stream-endpoint-available-in-labs/130958) - - ### September 18th, 2019 - - #### New filtered stream endpoint available in Labs - - `X Developer Labs `    - - Today, we are releasing a [new streaming endpoint](/x-api/posts/filtered-stream) to retrieve posts, and an endpoint to manage your filters in X Developer Labs. With these endpoints, you will be able to retrieve up to 500,000 posts per month (maximum 50 posts per second); you can set up to 10 filter rules on your stream (these can be applied at the same time). - - Learn more about this launch via our [forum announcement](https://devcommunity.x.com/t/new-filtered-stream-endpoints-available-in-labs-and-the-future-of-statuses-filter/129888). - - #### Documentation: improvements to request parameters - - Requests parameters documented in the API reference pages are now clearly marked as either optional or required. Additionally, API reference pages will describe a JSON body payload when this is allowed by a request. - - ### August 27th, 2019 - - #### New post metrics are now available in Labs - - `X Developer Labs `    - - You can now retrieve engagement data for any post or list of posts from owned/authorized accounts. The posts you query must be no older than 30 days and cannot be reposts. - - [GET /tweets/metrics/private](https://developer.x.com/en/docs/labs/tweet-metrics/overview.html) supports the following metrics: - - * `impressions` - - * `reposts` - - * `quotes` - - * `likes` - - * `replies` - - * `video views` - - * `video view quartiles` (where the requester is also the author of the media) - - Learn more about this launch via our [forum announcement](https://devcommunity.x.com/t/new-twitter-developer-labs-release-metrics-endpoint/129122). - - ### August 15th, 2019 - - `X API: Standard v1.1`     - - Starting today, applications that need to create Direct Messages will be required to have "Read, Write, and Direct Messages" app permissions (RW+DM). Applications attempting to create Direct Messages with only the RW app permission will receive the following error: - - `{"code": 93,"message": "This application is not allowed to access or delete your direct messages."}` - - You can learn more about this change via our [forum announcement](https://devcommunity.x.com/t/updates-to-app-permissions-direct-message-write-permission-change/128221). - - ### August 12th, 2019 - - #### New expansion for GET /users: pinned post in X Developer Labs - - `X Developer Labs `    - - `pinned_tweet_id` will expand a user’s pinned post through our user object expansion. - - ### July 31st, 2019 - - #### New metadata available for quote counts: - - `X Developer Labs `    - - Developers can use the new Labs endpoints to pull counts of quotes. - - #### New expansion for GET /users: most recent post - - `most_recent_tweet_id` will expand a user’s most recent post through our user object expansion. - - Learn more about this launch via our [forum announcement](https://devcommunity.x.com/t/update-to-twitter-developer-labs/128060). - - ### July 25th, 2019 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - `X Ads API`     `X Ads API`     `X Developer Labs `    - - Today, all connections to the X API (and all other X domains) will require TLS 1.2. - - You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/removing-support-for-legacy-tls-versions-1-0-1-1-on-twitter/126648/2). - - ### July 15th, 2019 - - `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - Starting today, we are introducing the new [Account Activity API endpoint](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#api-reference) to deactivate user subscriptions using application-only OAuth. - - This new endpoint offers developers the convenience of only having to provide a bearer token to deactivate a subscription, without requiring the subscribed user’s access token. - - We are immediately marking the existing enterprise Account Activity API endpoint used to deactivate user subscriptions with 3-Legged OAuth as deprecated. The endpoint will be retired and no longer be available starting from January 15, 2020. - - Developers can learn more about this API in our [documentation](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#api-reference). - - ### June 20th, 2019 - - #### New expansions for GET /tweets: referenced author and mentioned user - - `X Developer Labs `    - - We added two new expansions to the \[GET /tweets]https://developer.x.com/en/docs/labs/tweets-and-users/api-reference/get-tweets.html) endpoint: - - entities.mentions.username will expand the username of any recognized user mention in a post into a full user object. - - `referenced_tweets.id.author_id` expands the ID of the author of any referenced post, when one of the posts requested is a repost, Quoted post or Reply. This expansion will also expand the referenced post ID into a full object. - - ### June 11th, 2019 - - #### GET /tweets and GET /users are now supported in Labs - - `X Developer Labs `    - - The first two endpoints are now available via the Labs portal. Make sure you have an approved developer account and have applied for Labs access to get started with these endpoints. - - [Key differences](https://developer.x.com/content/developer-twitter/en/docs/labs/overview/whats-new) from equivalent v1.1 functionality include: - - * Single endpoint for single object "show" function and batch "lookups" - - * \[Expansion parameters]) support the inclusion of additional objects as part of one request (e.g. mentioned users, referenced posts, etc.) - - * \[Format parameters]) support different data projections with more or less verbose payloads - - * Rate limiting is at the app level, regardless of auth method (user context or bearer token) - - Learn more about this launch via our [forum announcement](https://devcommunity.x.com/t/twitter-developer-labs-is-open-to-all-developers/126717). - - ### June 10th, 2019 - - `X API: Standard v1.1`     - - We have fully retired the Terms of Service and Privacy Endpoints. The current status of our [Privacy Policy](https://x.com/en/privacy) and [Terms of Service](https://x.com/en/tos) is best served by our up-to-date web pages. - - You can learn more about this change via our [forum announcement](https://devcommunity.x.com/t/terms-of-service-and-privacy-endpoints-will-no-longer-serve-content-after-june-10/125714).   - - ### May 21st, 2019 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - Today some user object fields, including user.lang, will start returning 'null' for updated metadata fields previously announced in our [forum post](https://devcommunity.x.com/t/upcoming-changes-to-user-object-and-get-users-suggestions-endpoints/124732). - - Developers can learn about this change through our [documentation.](/x-api/fundamentals/data-dictionary#user)   - - ### May 20th, 2019 - - `X API: Enterprise v1.1`     - - Starting today, we are introducing the [Account Activity Replay API](/x-api/enterprise-gnip-2.0/fundamentals/account-activity), a data recovery tool available with the enterprise tier of the [Account Activity API](/x-api/enterprise-gnip-2.0/fundamentals/account-activity) - - The [Account Activity Replay API](/x-api/enterprise-gnip-2.0/fundamentals/account-activity) allows you to retrieve events from as far back as five days. It should be utilized to recover data in scenarios where your [webhook](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#api-reference) server misses events - - Developers can learn more about this API in our [documentation](/x-api/enterprise-gnip-2.0/fundamentals/account-activity).   - - ### May 6th, 2019 - - `X API: Enterprise v1.1 `    - - Starting today, native media (photos, videos, and GIFs) can be added to quotes on X, which will be shown as additional media metadata in the entities sections of quote payloads.  - - Developers can learn more about this in our [documentation](https://developer.x.com/en/docs/x-api/v1/data-dictionary/object-model/tweet).   - - ### February 13th, 2019 - - `X API: Premium v1.1 `    `X API: Enterprise v1.1 `    - - Today, the operator is:reply becomes available to use with the [enterprise search APIs](/x-api/enterprise-gnip-2.0/fundamentals/search-api) and the paid version of the [premium search endpoints](https://developer.x.com/content/developer-twitter/en/docs/tweets/search/api-reference/premium-search). - - The is:reply Boolean operator can be used to filter all replies to posts, or to filter out explicit replies that match a rule. This operator functions in the same way as the is:quote operator.  - - Remember that, with the Search API, all ‘is:’ and ‘has:’ operators must be used in conjunction with a standalone operator like a keyword or hashtag. - - You can learn more about this operator in the [documentation](/x-api/enterprise-gnip-2.0/fundamentals/rules-filtering).   - - ### February 6th, 2019 - - `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - Starting today, the expanded URL enrichment will no longer contain the unwound URL object and metadata (including the title and description fields) for URLs linking to posts, Moments, or profiles. Please note that other URLs (to websites, etc.) will continue to be enriched with this metadata, and the url, expanded\_url, and `display_url` will still be available. This change applies to [Decahose](/x-api/enterprise-gnip-2.0/fundamentals/decahose-api), [PowerTrack](/x-api/enterprise-gnip-2.0/powertrack-api), [Historical PowerTrack](https://developer.x.com/content/developer-twitter/en/docs/tweets/batch-historical/overview), and the [Search APIs](https://developer.x.com/en/docs/x-api/v1/tweets/search/overview).   - - ### November 29th, 2018 - - `X API: Enterprise v1.1 `    - - Today, we are introducing a new operator, is:reply, to help you narrow conversations to those you care about most. You can now filter out replies from your results (in addition to the pre-existing ability to filter out reposts, is:retweet, and Quoted posts, is:quote). This new operator is available today within [PowerTrack](/x-api/enterprise-gnip-2.0/powertrack-api), [Historical PowerTrack](https://developer.x.com/content/developer-twitter/en/docs/tweets/batch-historical/overview), and [Replay](/x-api/enterprise-gnip-2.0/powertrack-api#replay-api). - - The is:reply Boolean operator can be used to filter all replies to posts, or to filter out explicit replies that match a rule. This operator functions in the same way as the is:quote operator. - - You can learn more about this operator in the [documentation](/x-api/enterprise-gnip-2.0/fundamentals/rules-filtering).   - - ### November 19th, 2018 - - `X API: Standard v1.1 `    `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - `X Ads API`     `X Ads API`     `X Developer Labs `    - - Today, we've added the ability for developers to view and edit their existing [X apps](/resources/fundamentals/developer-apps) via the [X app dashboard](https://developer.x.com/content/developer-twitter/en/apps) on developer.x.com as long as they're logged into their X account. Previously, you could only view and edit your existing X apps on developer.x.com if you had applied or been approved for a [developer account](/resources/fundamentals/developer-portal).  - - You still must have an approved developer account to be able to create new X apps.   - - ### November 7th, 2018 - - `X API: Standard v1.1`     `X Ads API`     - - Today, we are announcing that advertisers and publishers are now able to add subtitle files (SRT) to their videos via ads.x.com, Media Studio and our publisher upload API. Subtitles will be viewable on auto-playing video (when no sound is available) on Android and Web. We will release the functionality for iOS in the coming weeks.  - - To read more about the new subtitles endpoints, please review their respective API reference pages: - - * [POST media/subtitles-create](https://developer.x.com/en/docs/x-api/v1/media/upload-media/api-reference/post-media-subtitles-create) - - * [POST media/subtitles-delete](https://developer.x.com/en/docs/x-api/v1/media/upload-media/api-reference/post-media-subtitles-delete) - - ### November 5th, 2018 - - `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - Today we are announcing an update to the [Account Activity API](/x-api/enterprise-gnip-2.0/fundamentals/account-activity) endpoint, [GET subscriptions/count](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#get-direct-messages-events-list#get-account-activity-subscriptions-count). To enable greater visibility into your billing details and use of the API, beginning today, you can programmatically pull the number of provisioned subscriptions associated with your Account Activity API instance within the JSON.  This means you can now see both what your provisioned number of subscriptions are, and how close you are to hitting that limit via the GET subscriptions/count API endpoint.  - - This update has been documented with the [Account Activity API documentation](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#get-direct-messages-events-list#get-account-activity-subscriptions-count).   - - ### October 22nd, 2018 - - `X API: Standard v1.1`     - - Today we are implementing new app-level rate limits on several of our standard POST endpoints: - - * [POST statuses/update](https://developer.x.com/en/docs/x-api/v1/tweets/post-and-engage/api-reference/post-statuses-update) - - * [POST statuses/retweet/:id](https://developer.x.com/en/docs/x-api/v1/tweets/post-and-engage/api-reference/get-statuses-retweets-id) - - * [POST favorites/create](https://developer.x.com/en/docs/x-api/v1/accounts-and-users/follow-search-get-users/api-reference/post-friendships-create) - - * [POST direct\_messages/events/new](https://developer.x.com/en/docs/x-api/v1/direct-messages/sending-and-receiving/api-reference/new-event) - - * [POST friendships/create](https://developer.x.com/en/docs/x-api/v1/accounts-and-users/follow-search-get-users/api-reference/post-friendships-create) - - You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/new-post-endpoint-rate-limit-enforcement-begins-today/115355).   - - ### October 10th, 2018 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - `X Ads API`     `X Developer Labs `    - - Today we are announcing an update to the [twitter-text](https://github.com/twitter/twitter-text) library to account for the recent changes to the way that X counts emojis. If an emoji previously counted as more than two characters, its count will now be reduced to just two characters to allow for users to make the most out of their 280 characters. - - You can read more about this change in our [forum announcement](https://devcommunity.x.com/t/new-update-to-the-twitter-text-library-emoji-character-count/114607).   - - ### September 17th, 2018 - - `X API: Standard v1.1`     - - We have fully retired the legacy Direct Message endpoints. You can find a list of the retired DM endpoints, as well as their replacements on \[this page]\(https://developer.x.com/content/developer-twitter/en/docs/direct-messages/sending-and-receiving/api-reference. - - You can learn more about this update via our [forum announcement](https://devcommunity.x.com/t/details-and-what-to-expect-from-the-api-deprecations-this-week-on-august-16-2018/110746).   - - ### September 11th, 2018 - - `X API: Standard v1.1`     - - Today we are implementing some changes to the process where you [retreive attached media from Direct Messages](https://developer.x.com/en/docs/x-api/v1/direct-messages/message-attachments/overview). We will no longer support accessing `media_url` or `media_url_https` via an authenticated www.x.com session. The request to fetch `media_url_https` MUST always be signed with the user’s access token using OAuth 1.0A.  - - You can learn more about this update via our [forum announcement](https://devcommunity.x.com/t/direct-message-api-change-to-how-apps-can-access-images-sent-in-direct-messages/112722). - - ### August 23rd, 2018 - - `X API: Enterprise v1.1`     - - We have fully retired [User Streams](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction) and [Site Streams](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction). - - You can learn more about this update via our [forum announcement](https://devcommunity.x.com/t/details-and-what-to-expect-from-the-api-deprecations-this-week-on-august-16-2018/110746).   - - ### August 20th, 2018 - - `X API: Enterprise v1.1`     - - Today we are launching a new version of the Usage API. With this update, we’re making the API more stable by moving to a new system. - - With the system update, users will experience a data "hole" as developers will only be able to pull data back to May 1, 2018. Therefore for the upcoming year, they will be missing out on a few months of historical data (until June 2019). - - A product name is changing within the Usage API from Historical PowerTrack Subscription to Historical PowerTrack 2.0 which will make the product naming consistent with the rest of our user-facing wording. Customers will receive the exact same data in the same format with the update. You will see this change within the products.type JSON object. - - If you have any questions, please reach out to your account manager.   - - ### August 16th, 2018 - - `X API: Standard v1.1`     `X API: Enterprise v1.1`     - - The [Account Activity API DM Beta](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction) product was fully retired today. - - The following services and endpoints will experience degraded service starting today: - - * [User Streams](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction) - - * [Site Streams](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction) - - * [GET direct\_messages](https://developer.x.com/en/docs/x-api/v1/direct-messages/sending-and-receiving/api-reference/list-events) - - * [GET direct\_messages/sent](https://developer.x.com/content/developer-twitter/en/docs/direct-messages/sending-and-receiving/api-reference/get-sent-message) - - * [GET direct\_messages/show](https://developer.x.com/content/developer-twitter/en/docs/direct-messages/sending-and-receiving/api-reference/get-message) - - * [POST direct\_messages/new](https://developer.x.com/content/developer-twitter/en/docs/direct-messages/sending-and-receiving/api-reference/new-message) - - * [POST direct\_messages/destroy](https://developer.x.com/content/developer-twitter/en/docs/direct-messages/sending-and-receiving/api-reference/delete-message) - - User Streams and Site Streams will be fully retired on August 23rd. - - The legacy Direct Messages endpoints will be fully retired on September 17th. - - You can learn more about this update via our [forum announcement](https://devcommunity.x.com/t/details-and-what-to-expect-from-the-api-deprecations-this-week-on-august-16-2018/110746).   - - ### July 24th, 2018 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - `X Ads API`     `X Developer Labs `    - - As of today, you will no longer be able to create new [X apps](/resources/fundamentals/developer-apps) via [apps.x.com](https://apps.x.com/). You will now be redirected to either your [developer portal](/resources/fundamentals/developer-portal) account or, if you don't have a developer portal account yet, to the page where [you can apply](https://developer.x.com/content/developer-twitter/en/apply-for-access). - - We also announced that we will be implementing new app-level rate limits to the following POST endpoints on September 10th, 2018.  - - * [POST statuses/update](https://developer.x.com/en/docs/x-api/v1/tweets/post-and-engage/api-reference/post-statuses-update) - - * [POST statuses/retweet:id](https://developer.x.com/en/docs/x-api/v1/tweets/post-and-engage/api-reference/post-statuses-retweet-id) - - * [POST friendships/create](https://developer.x.com/en/docs/x-api/v1/accounts-and-users/follow-search-get-users/api-reference/post-friendships-create) - - * [POST favorites/create](https://developer.x.com/en/docs/x-api/v1/tweets/post-and-engage/api-reference/post-favorites-create) - - * [POST direct\_messages/events/new](https://developer.x.com/en/docs/x-api/v1/direct-messages/sending-and-receiving/api-reference/new-event) - - Finally, we are introducing a new option for people to report suspected violations of our platform policies to you for review. - - You can learn more about all of these updates via our [blog post](https://cli.re/g32qKr).   - - ### June 21st, 2018 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - `X Ads API`     `X Developer Labs `    - - If you have a [developer portal](/resources/fundamentals/developer-portal) account, you can now create and manage your [X apps](/resources/fundamentals/developer-apps). Please read our [forum post](https://devcommunity.x.com/t/app-creation-and-management-now-available-in-the-developer-portal/107723) for more details.   - - ### June 12th, 2018 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - `X Ads API`     `X Developer Labs `    - - Today, we started requiring that you register the [callback URLs](/resources/fundamentals/developer-apps#callback-urls) that you use with the Sign in with X process. You can read more about this update [here](https://devcommunity.x.com/t/action-required-sign-in-with-twitter-users-must-whitelist-callback-urls/105342). - - We also announced the addition of the tweet\_delete\_events activity to the Account Activity API. This new activity will be sent for those corresponding deleted events to enable developers to more easily provide a compliant experience for their customers and application users. You can read more about this new activity in our [forum post](https://devcommunity.x.com/t/adding-delete-events-to-the-account-activity-api/106783) or on our [documentation](/x-api/enterprise-gnip-2.0/fundamentals/account-activity).   - - ### May 25th, 2018 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - `X Ads API`     `X for Websites`         `X Developer Labs `    - - Today, we made some changes to our [Terms of Service](https://x.com/en/tos), [Privacy Policy](https://x.com/en/privacy), and \[X Developer Agreement]https://developer.x.com/en/developer-terms/agreement-and-policy that include privacy, security, and data protection updates. Please read our [forum post](https://devcommunity.x.com/t/upcoming-changes-to-the-developer-platform/104603) for more details. - - ### May 23rd, 2018 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     `X Ads API`     - - Today, the timezone values in X user objects became private fields. From here on out, all\* time\_zone and utc\_offset data objects will return as null. Please read our [forum post](https://devcommunity.x.com/t/upcoming-changes-to-the-developer-platform/104603) for more details. - \* They will continue to be available on the account/settings endpoint, for authenticated users only. - - ### May 21st, 2018 - - `X API: Enterprise v1.1`     - - Today, we removed all Klout data from post payloads as part of our GDPR updates. - - ### May 14th, 2018 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - Today, we are changing all instances of profile\_background\_image\_url and profile\_background\_image\_url\_https to their default values. Please read our [forum post](https://devcommunity.x.com/t/upcoming-changes-to-the-developer-platform/104603) for more details. - - In addition to the above change, we are adding a new field to the [Account Activity API](/x-api/enterprise-gnip-2.0/fundamentals/account-activity) payloads to reference which subscription the activity was delivered for. This JSON object is called for\_user\_id and will include the subscribed user's ID who produced that activity as its value. You can see some examples of this new JSON object in our [account activity objects](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#account-activity-data-object-structure) page.   - - ### May 10th, 2018 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - Today, we are announcing a change to the way that URLs will be rendered in the quote payload. - - We’re adding a new entity called the "quoted\_status\_permalink" entity to ensure the quoted post can be referenced and we will be removing the t.co link from the quoted post "text" field. - - With the new format, the t.co link is no longer appended to the "text" field of the quoted post in the "quoted\_status" object. - - Further, we will no longer put the quoted post t.co url, expanded\_url, and display\_url in the ‘urls’ entity. Instead, these will be added to a new "quoted\_status\_permalink" object with "url", "expanded", and "display" URL attributes. This means that the "quoted\_status\_permalink" object will be reserved for the t.co link back to the quoted post, whereas the "entities.urls" array can be used to identify any links shared within the original post or quote. - - Please read our [forum post](https://devcommunity.x.com/t/updating-how-urls-are-rendered-in-the-quote-tweet-payload/105473) and [updated documentation](https://devcommunity.x.com/t/upcoming-changes-to-the-developer-platform/104603) for more details.   - - ### April 30th, 2018 - - `X for Websites `        - - The announcement of [X Kit](https://developer.x.com/en/docs/x-for-websites) deprecation, after October 31, 2018 X Kit will no longer be actively maintained.  Please read our [blog post](https://blog.x.com/developer/en_us/topics/tools/2018/discontinuing-support-for-twitter-kit-sdk.html) for more details.   - - ### April 24th, 2018 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - `X Ads API`     `X for Websites`         `X Developer Labs `    - - Today we announced several updates to the platform related to GDPR. Please read our [forum post](https://devcommunity.x.com/t/upcoming-changes-to-the-developer-platform/104603) for more details.   - - ### March 1, 2018 - - `X API: Enterprise v1.1`     - - The addition of a new object to the post payload – additional\_media\_info object – and also restricting some video details (video\_info) for promoted posts where advertisers have requested we limit video playback to X owned clients. You can find additional information about this change at the following link: [Extended Entities Objects > post with native video](https://developer.x.com/en/docs/x-api/v1/data-dictionary/object-model/extended-entities).   - - ### February 1st, 2018 - - `X API: Premium v1.1`     - - Launch of the [premium full-archive search endpoint](https://blog.x.com/developer/en_us/topics/tools/2018/access-the-full-history-of-tweets.html).   - - ### December 19th, 2017 - - `X API: Premium v1.1 `    - - Launched both ([All Activities](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction)) and ([Direct Messages](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction)) Standard beta Account Activity APIs, read more about this launch [on our blog](https://blog.x.com/developer/en_us/topics/tools/2017/announcing-more-functionality-to-improve-customer-engagements-on-twitter.html).  Announced User streams & Site streams deprecation and sunset date of Tuesday June 19, 2018.   - - ### December 15th, 2017 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - `X Ads API`     `X Developer Labs `    - - Version 2.0 of twitter-text is now available [on GitHub](https://github.com/twitter/twitter-text). This update addresses the change in our character limit that was rolled out on November 7th, 2017. To learn more about this update, please [visit our forum](https://devcommunity.x.com/t/shipped-twitter-text-2-0/98577).   - - ### November 14th, 2017 - - `X API: Premium v1.1`     - - Launched the Premium APIs. - - These new APIs build on the quality and stability of our enterprise data platform, and make it available more widely via a tiered pricing model. For the first time, you can start to search across 30 days of posts (instead of the limited 7 days of data on the standard endpoint), and optionally, you can also access our premium enrichments for profile geo, URL expansion, and poll data. Here’s a taste of some of the new features: - - * More posts per request (Sandbox + Premium) - - * A far more rich query language enabling more complex queries (Sandbox + Premium) - - * A counts endpoint that returns time-series counts of posts (Premium) - - * Metadata enrichments, such as expanded URLs and Profile Geo (Premium) - - Read more about this launch [on our blog](https://blog.x.com/developer/en_us/topics/tools/2017/introducing-twitter-premium-apis.html).   - - ### November 7th, 2017 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - `X Ads API`     `X for Websites`         `X Developer Labs `    - - Official launch of 280 character posts in languages where cramming was an issue. Please see our [forum announcement](https://devcommunity.x.com/t/updating-the-character-limit-and-the-twitter-text-library/96425) or official [blog post](https://blog.x.com/official/en_us/topics/product/2017/tweetingmadeeasier.html) for further reference.   - - ### November 1st, 2017 - - `X API: Standard v1.1`     - - The ability to send Direct Messages via the statuses/update API endpoint has been completely removed, and the `enable_dm_commands` and `fail_dm_commands` parameters will no longer have any effect. Read more about this update [on our forum](https://devcommunity.x.com/t/retiring-legacy-dm-commands-on-the-standard-tweet-api/86653 "on our forum").   - - ### October 11th, 2017 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - `X Ads API`     `X Developer Labs `    - - A change was made to X’s backend OAuth API endpoints which altered the behaviour of the /oauth/authenticate endpoint to match that of the /oauth/authorize endpoint. Read more about this update [on our forum](https://devcommunity.x.com/t/recent-changes-to-twitter-s-oauth-login-flow-and-api-endpoints/94943).   - - ### October 10th, 2017 - - `X API: Enterprise v1.1`     - - The Engagement API was updated to use the same metrics aggregation methodology in use by the X analytics dashboard. Read more about this update [on our forum](https://devcommunity.x.com/t/changes-to-the-engagement-api/94523).   - - ### October 1st, 2017 - - `X API: Standard v1.1 `    - - The default value of the `fail_dm_commands` parameter within the DM statuses/update endpoint has been switched to *true*. All status updates intended as Direct Messages will start to return errors (unless `enable_dm_commands` is *false*, in which case the post will be posted). Read more about this update [on our forum](https://devcommunity.x.com/t/retiring-legacy-dm-commands-on-the-standard-tweet-api/86653).   - - ### September 26th, 2017 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - X Ads API     `X Developer Labs `    - - The response payload for 280 character tweets will be treated the same way as long tweets. Read more about this update [on our forum](https://devcommunity.x.com/t/testing-280-characters-for-certain-languages/94126).   - - ### September 11th, 2017 - - `X API: Standard v1.1`     `X API: Premium v1.1`     `X API: Enterprise v1.1`     - - Adding new data to the post payload (`additional_media_info object`) and also restricting some video details (`video_info`) for promoted posts where advertisers have requested we limit video playback to X owned clients. You can find additional information about this change at the following link: [Extended Entities Objects > post with native video](https://developer.x.com/en/docs/x-api/v1/data-dictionary/object-model/extended-entities)   - - ### August 7, 2017 - - `X API: Enterprise v1.1 `    - - 30-Day and Full-Archive Search ended support for url\_contains: operator. Deprecation of this operator was announced as part of the Gnip 2.0 migration in August 2016. Any Search query using the url\_contains: Operator will be rejected as invalid. - - ### July 6, 2017 - - `X API: Enterprise v1.1    ` - - The enterprise Search API (both 30-Day and Full-Archive) will no longer support the url\_contains: operator beginning 30 days from today, or after August 4, 2017 (Support of url\_contains: will actually end with the first deploy after that date). Deprecation of this operator was announced as part of the Gnip 2.0 migration in August 2016. When Operator support is ended, any query using the url\_contains: will be rejected as invalid.   - - ### June 2nd, 2017 - - `X API: Standard v1.1`     `X API: Enterprise v1.1 `    `X Ads API `    - - The xAuth authentication mechanism has been removed from all X APIs  Read more about this update [on our forum](https://devcommunity.x.com/t/retirement-of-xauth/88022).   - - ### May 8th, 2017 - - `X API: Standard v1.1`     `X API: Enterprise v1.1`     `X Ads API`     - - All HTTP headers have been forced into lowercase (`content-type`, `x-rate-limit-remaining`, `x-access-level` etc). Read more about this update [on our forum](https://devcommunity.x.com/t/upcoming-http-header-changes/86715).   - - ### May 5th, 2017 - - `X API: Standard v1.1`     - - The optional `enable_dm_commands` parameter to statuses/update will enable applications to remove DM command support early, before the transition period ends. The default value is *true* (i.e. current legacy behavior), but this may be set to *false* to get the new, post-November 1 behavior. The optional fail\_dm\_commands parameter to statuses/update will make DM commands return HTTP 403 (error code 151) from the API when set to *true*. The default value is *false*. Read more about this update [on our forum](https://devcommunity.x.com/t/retiring-legacy-dm-commands-on-the-standard-tweet-api/86653).   - - ### April 25th, 2017 - - `X API: Enterprise v1.1`     - - Rules with emojis are now available in the enterprise Search APIs   - - ### April 6th, 2017 - - `X API: Standard v1.1`     - - Access to several new Direct Message APIs are now more widely available. Read more about this update [on our blog](https://blog.twitter.com/developer/en_us/topics/tools/2017/new-apis-to-power-the-future-of-customer-engagement-in-direct-me.html).   - - ### March 9th, 2017 - - `X API: Standard v1.1`    `X API: Enterprise v1.1`     `X Ads API`     - - MPEG-DASH URLs (.mpd) has been removed from the payload of a post that contains video. Read more about this update [on our forum](https://devcommunity.x.com/t/retiring-mpeg-dash-video-support-on-march-9th-2017/82761).   - - ### February 22nd, 2017 - - `X API: Enterprise v1.1`     - - New Enrichment! Poll Metadata is now available through our enterprise APIs. See the [documentation](/x-api/enterprise-gnip-2.0/fundamentals/account-activity#migration-introduction) for more details. - - New payload field: Image Alt-Text (decription) field may be present in the entities.media\[] and extended\_entities.media\[] section of the payload if a user chooses chooses the "Add description" option when adding a photo to a post. This is available in enriched native format only. - - Default payload format: Newly created streams on Gnip products will now default to orriginal format JSON.   - - ### January 23rd, 2017 - - `X API: Enterprise v1.1`     - - Historical PowerTrack API & Replay API - - * quote filtering is now supported - - * Quoted posts are now fully rehydrated within HPT and Replay post payloads   - - ### January 17th, 2017 - - `X API: Enterprise v1.1`     - - New payload fields: quote\_count and reply\_count are now available in native enriched format payloads across Realtime and Historical APIs   - - ### December 20th, 2016 - - `X API: Enterprise v1.1`     - - Full-Archive Search API (FAS): - - * Added support for additional geo operators: - - * place: - - * place\_country: - - * has:profile\_geo: - - * profile\_country: - - * profile\_region: - - * profile\_locality:   - - ### December 5th, 2016 - - `X API: Enterprise v1.1`     - - Rule management (GET and DELETE) by Rule ID is now available for PowerTrack 2.0 and PowerTrack Replay 2.0 -   - - ### November 10th, 2016 - - `X API: Enterprise v1.1    ` - - 30-Day Search API: - - * Added support for additional geo operators: - - * place: - - * place\_country: - - * has:profile\_geo: - - * profile\_country: - - * profile\_region: - - * profile\_locality: - - \ No newline at end of file + * profile_locality: + \ No newline at end of file diff --git a/style.css b/style.css index 909d132..47b5b35 100644 --- a/style.css +++ b/style.css @@ -89,4 +89,9 @@ td[data-label="Free Limit"] strong { } .dark .chat-assistant-sheet-header .flex.items-center.gap-2::before { background-image: url("data:image/svg+xml,%3Csvg fill='%23ffffff' fill-rule='evenodd' height='1em' style='flex:none;line-height:1' viewBox='0 0 24 24' width='1em' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3EGrok%3C/title%3E%3Cpath d='M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815'/%3E%3C/svg%3E"); +} + +[data-component-part="update-label"] { + background-color: white; + color: black !important; } \ No newline at end of file From 06141ac05bb71ebe518813659d70efc9e7880862 Mon Sep 17 00:00:00 2001 From: Taylor Caldwell Date: Wed, 23 Jul 2025 17:15:03 -0700 Subject: [PATCH 22/34] Add sidebar --- changelog.mdx | 1 - 1 file changed, 1 deletion(-) diff --git a/changelog.mdx b/changelog.mdx index 0766f75..fea7e14 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -1,7 +1,6 @@ --- title: Changelog description: "The X Developer Platform is updated frequently with new functionality and products to better suit your needs. We will be documenting all changes made to the platform’s products via this resource and the @API X account." -mode: wide sidebarTitle: Overview --- From dc67b9f0e3e16e25d9c46fd6f73bed18b47dc628 Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Thu, 24 Jul 2025 11:40:46 -0700 Subject: [PATCH 23/34] Update docs.json Signed-off-by: tcaldwell-x --- docs.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs.json b/docs.json index 2c5a6b6..da1748f 100644 --- a/docs.json +++ b/docs.json @@ -46,11 +46,11 @@ "destination": "/x-api/media/subtitle-delete" }, { - "source": "/tutorials", + "source": "/resources/tutorials", "destination": "/tutorials" }, { - "source": "/tools-and-libraries", + "source": "/resources/tools-and-libraries", "destination": "/tools-and-libraries" }, { @@ -62,19 +62,19 @@ "destination": "/overview" }, { - "source": "/newsletter", + "source": "/resources/newsletter", "destination": "/newsletter" }, { - "source": "/api-reference-index", + "source": "/resources/api-reference-index", "destination": "/api-reference-index" }, { - "source": "/fundamentals/*", + "source": "/resources/fundamentals/*", "destination": "/fundamentals/*" }, { - "source": "/enterprise/*", + "source": "/resources/enterprise/*", "destination": "/enterprise/*" } ], From 07a6c90193824ae72cf554a3b9bee987f8381501 Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Thu, 24 Jul 2025 11:44:43 -0700 Subject: [PATCH 24/34] Update docs.json Signed-off-by: tcaldwell-x --- docs.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs.json b/docs.json index da1748f..baad857 100644 --- a/docs.json +++ b/docs.json @@ -70,12 +70,12 @@ "destination": "/api-reference-index" }, { - "source": "/resources/fundamentals/*", - "destination": "/fundamentals/*" + "source": "/resources/fundamentals/:slug*", + "destination": "/fundamentals/:slug*" }, { - "source": "/resources/enterprise/*", - "destination": "/enterprise/*" + "source": "/resources/enterprise/:slug*", + "destination": "/enterprise/:slug*" } ], "favicon": "/favicon.png", From 5eaaceb84f050e0f59f2eba2ce7b614a21ddf0ea Mon Sep 17 00:00:00 2001 From: Taylor Caldwell Date: Fri, 25 Jul 2025 17:04:47 -0700 Subject: [PATCH 25/34] Fix layout for widescreens --- style.css | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/style.css b/style.css index 47b5b35..ccb111c 100644 --- a/style.css +++ b/style.css @@ -94,4 +94,18 @@ td[data-label="Free Limit"] strong { [data-component-part="update-label"] { background-color: white; color: black !important; +} + +#navbar > *:nth-child(2) { + max-width: none !important; + margin-left: 0 !important; + margin-right: 0 !important; +} + +#sidebar { + left: 0 !important; +} + +#sidebar-content { + padding-left: 2rem; } \ No newline at end of file From 2942308d5dc86302b159984b1f671afdec207039 Mon Sep 17 00:00:00 2001 From: Shamba Chowdhury <38806897+ShambaC@users.noreply.github.com> Date: Sun, 20 Jul 2025 14:16:41 +0530 Subject: [PATCH 26/34] Update sdks.mdx Fix language title on tab from Javascript to Java Signed-off-by: Shamba Chowdhury <38806897+ShambaC@users.noreply.github.com> --- x-api/tools-and-libraries/sdks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-api/tools-and-libraries/sdks.mdx b/x-api/tools-and-libraries/sdks.mdx index 51e72c6..a640217 100644 --- a/x-api/tools-and-libraries/sdks.mdx +++ b/x-api/tools-and-libraries/sdks.mdx @@ -111,8 +111,8 @@ The methods provided within the library client are clearly named to correspond w Here is an example of Post lookup by ID: - -```js + +```java String id = "1511757922354663425"; // String | A single Tweet ID. Set expansions = new HashSet<>(Arrays.asList("author_id")); // Set | A comma separated list of fields to expand. Set tweetFields = new HashSet<>(Arrays.asList("created_at", "lang", "context_annotations")); // Set | A comma separated list of Tweet fields to display. From 93c0547048aa42e2f349b9845a2b8e34e18a2883 Mon Sep 17 00:00:00 2001 From: Taylor Caldwell Date: Mon, 28 Jul 2025 14:08:47 -0700 Subject: [PATCH 27/34] Update w/ OpenAPI spec changes --- docs.json | 869 ++++++++++--- openapi.json | 1082 ++++++++++------- x-api/account-activity/create-replay-job.mdx | 3 + .../account-activity/create-subscription.mdx | 3 + .../account-activity/delete-subscription.mdx | 3 + .../get-subscription-count.mdx | 3 + x-api/account-activity/get-subscriptions.mdx | 3 + .../validate-subscription.mdx | 3 + x-api/bookmarks/create-bookmark.mdx | 3 + x-api/bookmarks/delete-bookmark.mdx | 3 + x-api/bookmarks/get-bookmark-folders.mdx | 3 + .../bookmarks/get-bookmarks-by-folder-id.mdx | 3 + x-api/bookmarks/get-bookmarks.mdx | 3 + x-api/communities/get-community-by-id.mdx | 3 + x-api/compliance/get-compliance-job-by-id.mdx | 3 + x-api/compliance/get-compliance-jobs.mdx | 3 + .../connection/terminate-all-connections.mdx | 3 + .../create-dm-conversation.mdx | 3 + .../create-dm-message-by-conversation-id.mdx | 3 + .../create-dm-message-by-participant-id.mdx | 3 + x-api/direct-messages/delete-dm-event.mdx | 3 + x-api/direct-messages/get-dm-event-by-id.mdx | 3 + x-api/direct-messages/get-dm-events.mdx | 3 + x-api/general/get-openapi-spec.mdx | 3 + x-api/lists/add-list-member.mdx | 3 + x-api/lists/follow-list.mdx | 3 + x-api/lists/get-followed-lists.mdx | 3 + x-api/lists/get-list-by-id.mdx | 3 + x-api/lists/get-list-memberships.mdx | 3 + x-api/lists/get-owned-lists.mdx | 3 + x-api/lists/get-pinned-lists.mdx | 3 + x-api/lists/pin-list.mdx | 3 + x-api/lists/remove-list-member.mdx | 3 + x-api/lists/unfollow-list.mdx | 3 + x-api/lists/unpin-list.mdx | 3 + x-api/media/append-media-upload.mdx | 3 + x-api/media/create-media-metadata.mdx | 3 + x-api/media/create-media-subtitles.mdx | 3 + x-api/media/delete-media-subtitles.mdx | 3 + x-api/media/finalize-media-upload.mdx | 3 + x-api/media/get-media-by-media-key.mdx | 3 + x-api/media/get-media-by-media-keys.mdx | 3 + x-api/media/get-media-upload-status.mdx | 3 + x-api/media/initialize-media-upload.mdx | 3 + x-api/media/upload-media.mdx | 3 + x-api/posts/create-post.mdx | 3 + x-api/posts/delete-post.mdx | 3 + x-api/posts/get-28-hour-post-insights.mdx | 3 + x-api/posts/get-count-of-all-posts.mdx | 3 + x-api/posts/get-count-of-recent-posts.mdx | 3 + x-api/posts/get-historical-post-insights.mdx | 3 + x-api/posts/get-liked-posts.mdx | 3 + x-api/posts/get-list-posts.mdx | 3 + x-api/posts/get-mentions.mdx | 3 + x-api/posts/get-post-analytics.mdx | 3 + x-api/posts/get-post-by-id.mdx | 3 + x-api/posts/get-posts-by-ids.mdx | 3 + x-api/posts/get-posts.mdx | 3 + x-api/posts/get-quoted-posts.mdx | 3 + x-api/posts/get-reposts.mdx | 3 + x-api/posts/get-timeline.mdx | 3 + x-api/posts/hide-reply.mdx | 3 + x-api/posts/like-post.mdx | 3 + x-api/posts/repost-post.mdx | 3 + x-api/posts/search-all-posts.mdx | 3 + x-api/posts/search-recent-posts.mdx | 3 + x-api/posts/unlike-post.mdx | 3 + x-api/posts/unrepost-post.mdx | 3 + x-api/spaces/get-space-by-id.mdx | 3 + x-api/spaces/get-space-posts.mdx | 3 + x-api/spaces/get-space-ticket-buyers.mdx | 3 + x-api/spaces/get-spaces-by-creator-ids.mdx | 3 + x-api/spaces/get-spaces-by-ids.mdx | 3 + x-api/spaces/search-spaces.mdx | 3 + x-api/stream/get-stream-rule-counts.mdx | 3 + x-api/stream/get-stream-rules.mdx | 3 + x-api/stream/stream-10-sampled-posts.mdx | 3 + x-api/stream/stream-all-likes.mdx | 3 + x-api/stream/stream-all-posts.mdx | 3 + x-api/stream/stream-english-posts.mdx | 3 + x-api/stream/stream-filtered-posts.mdx | 3 + x-api/stream/stream-japanese-posts.mdx | 3 + x-api/stream/stream-korean-posts.mdx | 3 + x-api/stream/stream-likes-compliance-data.mdx | 3 + x-api/stream/stream-portuguese-posts.mdx | 3 + x-api/stream/stream-post-labels.mdx | 3 + x-api/stream/stream-posts-compliance-data.mdx | 3 + x-api/stream/stream-sampled-likes.mdx | 3 + x-api/stream/stream-sampled-posts.mdx | 3 + x-api/stream/stream-users-compliance-data.mdx | 3 + x-api/stream/update-stream-rules.mdx | 3 + x-api/trends/get-trends-by-woeid.mdx | 3 + x-api/usage/get-usage.mdx | 3 + x-api/users/block-dms.mdx | 3 + x-api/users/get-blocking.mdx | 3 + x-api/users/get-followers.mdx | 3 + x-api/users/get-following.mdx | 3 + x-api/users/get-liking-users.mdx | 3 + x-api/users/get-list-followers.mdx | 3 + x-api/users/get-list-members.mdx | 3 + x-api/users/get-muting.mdx | 3 + x-api/users/get-my-user.mdx | 3 + x-api/users/get-reposted-by.mdx | 3 + x-api/users/get-reposts-of-me.mdx | 3 + x-api/users/get-user-by-id.mdx | 3 + x-api/users/get-user-by-username.mdx | 3 + x-api/users/get-users-by-ids.mdx | 3 + x-api/users/get-users-by-usernames.mdx | 3 + x-api/users/mute-user.mdx | 3 + x-api/users/search-users.mdx | 3 + x-api/users/unblock-dms.mdx | 3 + x-api/users/unmute-user.mdx | 3 + x-api/webhooks/create-webhook.mdx | 3 + x-api/webhooks/delete-webhook.mdx | 3 + x-api/webhooks/get-webhook.mdx | 3 + x-api/webhooks/validate-webhook.mdx | 3 + 116 files changed, 1708 insertions(+), 585 deletions(-) create mode 100644 x-api/account-activity/create-replay-job.mdx create mode 100644 x-api/account-activity/create-subscription.mdx create mode 100644 x-api/account-activity/delete-subscription.mdx create mode 100644 x-api/account-activity/get-subscription-count.mdx create mode 100644 x-api/account-activity/get-subscriptions.mdx create mode 100644 x-api/account-activity/validate-subscription.mdx create mode 100644 x-api/bookmarks/create-bookmark.mdx create mode 100644 x-api/bookmarks/delete-bookmark.mdx create mode 100644 x-api/bookmarks/get-bookmark-folders.mdx create mode 100644 x-api/bookmarks/get-bookmarks-by-folder-id.mdx create mode 100644 x-api/bookmarks/get-bookmarks.mdx create mode 100644 x-api/communities/get-community-by-id.mdx create mode 100644 x-api/compliance/get-compliance-job-by-id.mdx create mode 100644 x-api/compliance/get-compliance-jobs.mdx create mode 100644 x-api/connection/terminate-all-connections.mdx create mode 100644 x-api/direct-messages/create-dm-conversation.mdx create mode 100644 x-api/direct-messages/create-dm-message-by-conversation-id.mdx create mode 100644 x-api/direct-messages/create-dm-message-by-participant-id.mdx create mode 100644 x-api/direct-messages/delete-dm-event.mdx create mode 100644 x-api/direct-messages/get-dm-event-by-id.mdx create mode 100644 x-api/direct-messages/get-dm-events.mdx create mode 100644 x-api/general/get-openapi-spec.mdx create mode 100644 x-api/lists/add-list-member.mdx create mode 100644 x-api/lists/follow-list.mdx create mode 100644 x-api/lists/get-followed-lists.mdx create mode 100644 x-api/lists/get-list-by-id.mdx create mode 100644 x-api/lists/get-list-memberships.mdx create mode 100644 x-api/lists/get-owned-lists.mdx create mode 100644 x-api/lists/get-pinned-lists.mdx create mode 100644 x-api/lists/pin-list.mdx create mode 100644 x-api/lists/remove-list-member.mdx create mode 100644 x-api/lists/unfollow-list.mdx create mode 100644 x-api/lists/unpin-list.mdx create mode 100644 x-api/media/append-media-upload.mdx create mode 100644 x-api/media/create-media-metadata.mdx create mode 100644 x-api/media/create-media-subtitles.mdx create mode 100644 x-api/media/delete-media-subtitles.mdx create mode 100644 x-api/media/finalize-media-upload.mdx create mode 100644 x-api/media/get-media-by-media-key.mdx create mode 100644 x-api/media/get-media-by-media-keys.mdx create mode 100644 x-api/media/get-media-upload-status.mdx create mode 100644 x-api/media/initialize-media-upload.mdx create mode 100644 x-api/media/upload-media.mdx create mode 100644 x-api/posts/create-post.mdx create mode 100644 x-api/posts/delete-post.mdx create mode 100644 x-api/posts/get-28-hour-post-insights.mdx create mode 100644 x-api/posts/get-count-of-all-posts.mdx create mode 100644 x-api/posts/get-count-of-recent-posts.mdx create mode 100644 x-api/posts/get-historical-post-insights.mdx create mode 100644 x-api/posts/get-liked-posts.mdx create mode 100644 x-api/posts/get-list-posts.mdx create mode 100644 x-api/posts/get-mentions.mdx create mode 100644 x-api/posts/get-post-analytics.mdx create mode 100644 x-api/posts/get-post-by-id.mdx create mode 100644 x-api/posts/get-posts-by-ids.mdx create mode 100644 x-api/posts/get-posts.mdx create mode 100644 x-api/posts/get-quoted-posts.mdx create mode 100644 x-api/posts/get-reposts.mdx create mode 100644 x-api/posts/get-timeline.mdx create mode 100644 x-api/posts/hide-reply.mdx create mode 100644 x-api/posts/like-post.mdx create mode 100644 x-api/posts/repost-post.mdx create mode 100644 x-api/posts/search-all-posts.mdx create mode 100644 x-api/posts/search-recent-posts.mdx create mode 100644 x-api/posts/unlike-post.mdx create mode 100644 x-api/posts/unrepost-post.mdx create mode 100644 x-api/spaces/get-space-by-id.mdx create mode 100644 x-api/spaces/get-space-posts.mdx create mode 100644 x-api/spaces/get-space-ticket-buyers.mdx create mode 100644 x-api/spaces/get-spaces-by-creator-ids.mdx create mode 100644 x-api/spaces/get-spaces-by-ids.mdx create mode 100644 x-api/spaces/search-spaces.mdx create mode 100644 x-api/stream/get-stream-rule-counts.mdx create mode 100644 x-api/stream/get-stream-rules.mdx create mode 100644 x-api/stream/stream-10-sampled-posts.mdx create mode 100644 x-api/stream/stream-all-likes.mdx create mode 100644 x-api/stream/stream-all-posts.mdx create mode 100644 x-api/stream/stream-english-posts.mdx create mode 100644 x-api/stream/stream-filtered-posts.mdx create mode 100644 x-api/stream/stream-japanese-posts.mdx create mode 100644 x-api/stream/stream-korean-posts.mdx create mode 100644 x-api/stream/stream-likes-compliance-data.mdx create mode 100644 x-api/stream/stream-portuguese-posts.mdx create mode 100644 x-api/stream/stream-post-labels.mdx create mode 100644 x-api/stream/stream-posts-compliance-data.mdx create mode 100644 x-api/stream/stream-sampled-likes.mdx create mode 100644 x-api/stream/stream-sampled-posts.mdx create mode 100644 x-api/stream/stream-users-compliance-data.mdx create mode 100644 x-api/stream/update-stream-rules.mdx create mode 100644 x-api/trends/get-trends-by-woeid.mdx create mode 100644 x-api/usage/get-usage.mdx create mode 100644 x-api/users/block-dms.mdx create mode 100644 x-api/users/get-blocking.mdx create mode 100644 x-api/users/get-followers.mdx create mode 100644 x-api/users/get-following.mdx create mode 100644 x-api/users/get-liking-users.mdx create mode 100644 x-api/users/get-list-followers.mdx create mode 100644 x-api/users/get-list-members.mdx create mode 100644 x-api/users/get-muting.mdx create mode 100644 x-api/users/get-my-user.mdx create mode 100644 x-api/users/get-reposted-by.mdx create mode 100644 x-api/users/get-reposts-of-me.mdx create mode 100644 x-api/users/get-user-by-id.mdx create mode 100644 x-api/users/get-user-by-username.mdx create mode 100644 x-api/users/get-users-by-ids.mdx create mode 100644 x-api/users/get-users-by-usernames.mdx create mode 100644 x-api/users/mute-user.mdx create mode 100644 x-api/users/search-users.mdx create mode 100644 x-api/users/unblock-dms.mdx create mode 100644 x-api/users/unmute-user.mdx create mode 100644 x-api/webhooks/create-webhook.mdx create mode 100644 x-api/webhooks/delete-webhook.mdx create mode 100644 x-api/webhooks/get-webhook.mdx create mode 100644 x-api/webhooks/validate-webhook.mdx diff --git a/docs.json b/docs.json index baad857..f17dbf7 100644 --- a/docs.json +++ b/docs.json @@ -7,77 +7,6 @@ "light": "#B0B0B0", "dark": "#0E0E0E" }, - "redirects": [ - { - "source": "/updates/changelog", - "destination": "/changelog" - }, - { - "source": "/status/status", - "destination": "/status" - }, - { - "source": "/status/incident", - "destination": "/incidents" - }, - { - "source": "/x-api/users/personalized-trends/personalized-trends", - "destination": "/x-api/trends/get-personalized-trends" - }, - { - "source": "/x-api/users/personalized-trends", - "destination": "/x-api/trends/get-personalized-trends" - }, - { - "source": "/x-api/trends/introduction", - "destination": "/x-api/trends/trends-by-woeid/introduction" - }, - - { - "source": "/x-api/media/media-metadata-create", - "destination": "/x-api/media/metadata-create" - }, - { - "source": "/x-api/media/media-subtitles-create", - "destination": "/x-api/media/subtitle-create" - }, - { - "source": "/x-api/media/media-subtitles-delete", - "destination": "/x-api/media/subtitle-delete" - }, - { - "source": "/resources/tutorials", - "destination": "/tutorials" - }, - { - "source": "/resources/tools-and-libraries", - "destination": "/tools-and-libraries" - }, - { - "source": "/platform-overview", - "destination": "/overview" - }, - { - "source": "/home", - "destination": "/overview" - }, - { - "source": "/resources/newsletter", - "destination": "/newsletter" - }, - { - "source": "/resources/api-reference-index", - "destination": "/api-reference-index" - }, - { - "source": "/resources/fundamentals/:slug*", - "destination": "/fundamentals/:slug*" - }, - { - "source": "/resources/enterprise/:slug*", - "destination": "/enterprise/:slug*" - } - ], "favicon": "/favicon.png", "navigation": { "versions": [ @@ -250,8 +179,8 @@ } ] }, - "x-api/posts/full-archive-search", - "x-api/posts/recent-search" + "x-api/posts/search-all-posts", + "x-api/posts/search-recent-posts" ] }, { @@ -277,8 +206,8 @@ } ] }, - "x-api/posts/full-archive-search-counts", - "x-api/posts/recent-search-counts" + "x-api/posts/get-count-of-all-posts", + "x-api/posts/get-count-of-recent-posts" ] }, { @@ -302,10 +231,10 @@ } ] }, - "x-api/posts/filtered-stream", - "x-api/posts/rules-lookup", - "x-api/posts/rules-count", - "x-api/posts/adddelete-rules" + "x-api/stream/stream-filtered-posts", + "x-api/stream/get-stream-rules", + "x-api/stream/get-stream-rule-counts", + "x-api/stream/update-stream-rules" ] }, { @@ -325,9 +254,9 @@ "x-api/posts/timelines/integrate" ] }, - "x-api/posts/user-posts-timeline-by-user-id", - "x-api/posts/user-mention-timeline-by-user-id", - "x-api/posts/user-home-timeline-by-user-id" + "x-api/posts/get-posts", + "x-api/posts/get-mentions", + "x-api/posts/get-timeline" ] }, { @@ -341,8 +270,8 @@ "x-api/posts/lookup/integrate" ] }, - "x-api/posts/post-lookup-by-post-ids", - "x-api/posts/post-lookup-by-post-id" + "x-api/posts/get-posts-by-ids", + "x-api/posts/get-post-by-id" ] }, { @@ -365,13 +294,13 @@ { "group": "Bookmark Folders", "pages": [ - "x-api/bookmarks/bookmark-folders-by-user", - "x-api/bookmarks/bookmark-folder-posts-by-user-and-folder-id" + "x-api/bookmarks/get-bookmark-folders", + "x-api/bookmarks/get-bookmarks-by-folder-id" ] }, - "x-api/bookmarks/bookmarks-by-user", - "x-api/bookmarks/add-post-to-bookmarks", - "x-api/bookmarks/remove-a-bookmarked-post" + "x-api/bookmarks/get-bookmarks", + "x-api/bookmarks/create-bookmark", + "x-api/bookmarks/delete-bookmark" ] }, { @@ -385,8 +314,8 @@ "x-api/posts/manage-tweets/integrate" ] }, - "x-api/posts/creation-of-a-post", - "x-api/posts/post-delete-by-post-id" + "x-api/posts/create-post", + "x-api/posts/delete-post" ] }, { @@ -407,11 +336,11 @@ "x-api/posts/retweets/integrate" ] }, - "x-api/users/returns-user-objects-that-have-retweeted-the-provided-post-id", - "x-api/posts/causes-the-user-in-the-path-to-repost-the-specified-post", - "x-api/posts/causes-the-user-in-the-path-to-unretweet-the-specified-post", - "x-api/posts/retrieve-posts-that-repost-a-post", - "x-api/users/returns-repost-of-user" + "x-api/users/get-reposted-by", + "x-api/posts/repost-post", + "x-api/posts/unrepost-post", + "x-api/posts/get-reposts", + "x-api/users/get-reposts-of-me" ] }, { @@ -424,7 +353,7 @@ "x-api/posts/quote-tweets/quickstart" ] }, - "x-api/posts/retrieve-posts-that-quote-a-post" + "x-api/posts/get-quoted-posts" ] }, { @@ -445,7 +374,7 @@ } ] }, - "x-api/posts/hide-replies" + "x-api/posts/hide-reply" ] } ] @@ -470,18 +399,18 @@ "x-api/users/lookup/integrate" ] }, - "x-api/users/user-lookup-by-id", - "x-api/users/user-lookup-by-ids", - "x-api/users/user-lookup-by-usernames", - "x-api/users/user-lookup-by-username", - "x-api/users/user-lookup-me" + "x-api/users/get-user-by-id", + "x-api/users/get-users-by-ids", + "x-api/users/get-users-by-usernames", + "x-api/users/get-user-by-username", + "x-api/users/get-my-user" ] }, { "group": "Search", "pages": [ "x-api/users/search/introduction", - "x-api/users/user-search" + "x-api/users/search-users" ] }, { @@ -494,8 +423,8 @@ "x-api/users/follows/quickstart" ] }, - "x-api/users/followers-by-user-id", - "x-api/users/following-by-user-id", + "x-api/users/get-followers", + "x-api/users/get-following", "x-api/users/follow-user", "x-api/users/unfollow-user" ] @@ -517,9 +446,9 @@ "x-api/users/mutes/integrate" ] }, - "x-api/users/mute-user-by-user-id", - "x-api/users/unmute-user-by-user-id", - "x-api/users/returns-user-objects-that-are-muted-by-the-provided-user-id" + "x-api/users/mute-user", + "x-api/users/unmute-user", + "x-api/users/get-muting" ] }, { @@ -533,7 +462,7 @@ "x-api/users/blocks/integrate" ] }, - "x-api/users/returns-user-objects-that-are-blocked-by-provided-user-id" + "x-api/users/get-blocking" ] } ] @@ -552,10 +481,10 @@ "x-api/direct-messages/manage/integrate" ] }, - "x-api/direct-messages/create-a-new-dm-conversation", - "x-api/direct-messages/delete-dm", - "x-api/direct-messages/send-a-new-message-to-a-user", - "x-api/direct-messages/send-a-new-message-to-a-dm-conversation" + "x-api/direct-messages/create-dm-conversation", + "x-api/direct-messages/delete-dm-event", + "x-api/direct-messages/create-dm-message-by-participant-id", + "x-api/direct-messages/create-dm-message-by-conversation-id" ] }, { @@ -571,16 +500,16 @@ }, "x-api/direct-messages/get-dm-events-for-a-dm-conversation", "x-api/direct-messages/get-dm-events-for-a-dm-conversation-1", - "x-api/direct-messages/get-recent-dm-events", - "x-api/direct-messages/get-dm-events-by-id" + "x-api/direct-messages/get-dm-events", + "x-api/direct-messages/get-dm-event-by-id" ] }, { "group": "Blocks", "pages": [ "x-api/direct-messages/blocks/introduction", - "x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-blocked-by-the-authenticated-request-user", - "x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-unblocked-by-the-authenticated-request-user" + "x-api/users/block-dms", + "x-api/users/unblock-dms" ] } ] @@ -601,10 +530,10 @@ } ] }, - "x-api/posts/returns-post-objects-liked-by-the-provided-user-id", - "x-api/users/returns-user-objects-that-have-liked-the-provided-post-id", - "x-api/posts/causes-the-user-in-the-path-to-like-the-specified-post", - "x-api/posts/causes-the-user-in-the-path-to-unlike-the-specified-post" + "x-api/posts/get-liked-posts", + "x-api/users/get-liking-users", + "x-api/posts/like-post", + "x-api/posts/unlike-post" ] }, { @@ -621,9 +550,9 @@ "x-api/lists/list-lookup/integrate" ] }, - "x-api/lists/list-lookup-by-list-id", - "x-api/lists/get-users-followed-lists", - "x-api/lists/get-a-users-owned-lists" + "x-api/lists/get-list-by-id", + "x-api/lists/get-followed-lists", + "x-api/lists/get-owned-lists" ] }, { @@ -637,7 +566,7 @@ "x-api/lists/list-tweets/integrate" ] }, - "x-api/posts/list-posts-timeline-by-list-id" + "x-api/posts/get-list-posts" ] }, { @@ -654,8 +583,8 @@ "x-api/lists/create-list", "x-api/lists/update-list", "x-api/lists/delete-list", - "x-api/lists/follow-a-list", - "x-api/lists/unfollow-a-list" + "x-api/lists/follow-list", + "x-api/lists/unfollow-list" ] }, { @@ -679,16 +608,16 @@ { "group": "Manage", "pages": [ - "x-api/lists/add-a-list-member", - "x-api/lists/remove-a-list-member" + "x-api/lists/add-list-member", + "x-api/lists/remove-list-member" ] }, { "group": "Lookup", "pages": [ - "x-api/lists/get-a-users-list-memberships", - "x-api/users/returns-user-objects-that-follow-a-list-by-the-provided-list-id", - "x-api/users/returns-user-objects-that-are-members-of-a-list-by-the-provided-list-id" + "x-api/lists/get-list-memberships", + "x-api/users/get-list-followers", + "x-api/users/get-list-members" ] } ] @@ -711,9 +640,9 @@ "x-api/lists/pinned-lists/integrate" ] }, - "x-api/lists/get-a-users-pinned-lists", - "x-api/lists/pin-a-list", - "x-api/lists/unpin-a-list" + "x-api/lists/get-pinned-lists", + "x-api/lists/pin-list", + "x-api/lists/unpin-list" ] } ] @@ -732,11 +661,11 @@ "x-api/spaces/lookup/quickstart" ] }, - "x-api/spaces/space-lookup-up-space-ids", - "x-api/spaces/space-lookup-by-their-creators", - "x-api/spaces/space-lookup-by-space-id", - "x-api/spaces/retrieve-posts-from-a-space", - "x-api/spaces/retrieve-the-list-of-users-who-purchased-a-ticket-to-the-given-space" + "x-api/spaces/get-spaces-by-ids", + "x-api/spaces/get-spaces-by-creator-ids", + "x-api/spaces/get-space-by-id", + "x-api/spaces/get-space-posts", + "x-api/spaces/get-space-ticket-buyers" ] }, { @@ -749,7 +678,7 @@ "x-api/spaces/search/quickstart" ] }, - "x-api/spaces/search-for-spaces" + "x-api/spaces/search-spaces" ] } ] @@ -761,7 +690,7 @@ "group": "Communities Lookup", "pages": [ "x-api/communities/lookup/introduction", - "x-api/communities/communities-lookup-by-community-id" + "x-api/communities/get-community-by-id" ] }, { @@ -790,7 +719,7 @@ "group": "Trends", "pages": [ "x-api/trends/trends-by-woeid/introduction", - "x-api/trends/trends" + "x-api/trends/get-trends-by-woeid" ] }, { @@ -816,19 +745,19 @@ "x-api/media/quickstart/media-upload-chunked" ] }, - "x-api/media/image-or-subtitle-media-upload", - "x-api/media/media-upload-initialize", - "x-api/media/media-upload-append", - "x-api/media/media-upload-finalize", - "x-api/media/media-upload-status" + "x-api/media/upload-media", + "x-api/media/initialize-media-upload", + "x-api/media/append-media-upload", + "x-api/media/finalize-media-upload", + "x-api/media/get-media-upload-status" ] }, { "group": "Metadata", "pages": [ - "x-api/media/metadata-create", - "x-api/media/subtitle-create", - "x-api/media/subtitle-delete" + "x-api/media/create-media-metadata", + "x-api/media/create-media-subtitles", + "x-api/media/delete-media-subtitles" ] } ] @@ -837,7 +766,7 @@ "group": "Usage", "pages": [ "x-api/usage/introduction", - "x-api/usage/post-usage" + "x-api/usage/get-usage" ] }, { @@ -854,18 +783,18 @@ "x-api/compliance/batch-compliance/integrate" ] }, - "x-api/compliance/list-compliance-jobs", + "x-api/compliance/get-compliance-jobs", "x-api/compliance/create-compliance-job", - "x-api/compliance/get-compliance-job" + "x-api/compliance/get-compliance-job-by-id" ] }, { "group": "Compliance streams", "pages": [ "x-api/compliance/streams/introduction", - "x-api/compliance/likes-compliance-stream", - "x-api/compliance/posts-compliance-stream", - "x-api/compliance/users-compliance-stream" + "x-api/stream/stream-likes-compliance-data", + "x-api/stream/stream-posts-compliance-data", + "x-api/stream/stream-users-compliance-data" ] } @@ -877,7 +806,7 @@ { "group": "Engagement Metrics", "pages": [ - "x-api/posts/get-engagement-analytics", + "x-api/posts/get-post-analytics", "x-api/media/get-media-analytics" ] }, @@ -891,35 +820,35 @@ "x-api/account-activity/migrate/overview" ] }, - "x-api/account-activity/check-if-a-subscription-exists-for-a-given-webhook-and-user", - "x-api/account-activity/deactivates-a-subscription-for-the-specified-webhook-and-user-id", - "x-api/account-activity/get-a-count-of-subscriptions-that-are-currently-active-on-your-account", - "x-api/account-activity/get-a-list-of-the-current-all-activity-type-subscriptions-for-the-specified-webhook", - "x-api/account-activity/request-activity-replay", - "x-api/account-activity/subscribes-the-provided-application-to-all-events-for-the-provided-user-context-for-all-message-types" + "x-api/account-activity/validate-subscription", + "x-api/account-activity/delete-subscription", + "x-api/account-activity/get-subscription-count", + "x-api/account-activity/get-subscriptions", + "x-api/account-activity/create-replay-job", + "x-api/account-activity/create-subscription" ] }, { "group": "Webhooks", "pages": [ "x-api/webhooks/introduction", - "x-api/webhooks/create-webhook-config", - "x-api/webhooks/delete-webhook-config", - "x-api/webhooks/get-a-list-of-webhook-configs-associated-with-a-client-app", - "x-api/webhooks/webhook-crc-check" + "x-api/webhooks/create-webhook", + "x-api/webhooks/delete-webhook", + "x-api/webhooks/get-webhook", + "x-api/webhooks/validate-webhook" ] }, { "group": "Volume Streams", "pages": [ "x-api/posts/volume-streams/introduction", - "x-api/posts/firehose-stream", - "x-api/posts/english-language-firehose-stream", - "x-api/posts/japanese-language-firehose-stream", - "x-api/posts/korean-language-firehose-stream", - "x-api/posts/portuguese-language-firehose-stream", - "x-api/posts/sample-stream", - "x-api/posts/sample-10-stream" + "x-api/stream/stream-all-posts", + "x-api/stream/stream-english-posts", + "x-api/stream/stream-japanese-posts", + "x-api/stream/stream-korean-posts", + "x-api/stream/stream-portuguese-posts", + "x-api/stream/stream-sampled-posts", + "x-api/stream/stream-10-sampled-posts" ] } ] @@ -927,8 +856,8 @@ { "group": "Likes Streams", "pages": [ - "x-api/likes/likes-firehose-stream", - "x-api/likes/likes-sample-10-stream" + "x-api/stream/stream-all-likes", + "x-api/stream/stream-sampled-likes" ] }, { @@ -1127,5 +1056,587 @@ "x": "https://x.com/xdevelopers", "github": "https://github.com/xdevplatform" } - } + }, + "redirects": [ + { + "source": "/updates/changelog", + "destination": "/changelog" + }, + { + "source": "/status/status", + "destination": "/status" + }, + { + "source": "/status/incident", + "destination": "/incidents" + }, + { + "source": "/x-api/users/personalized-trends/personalized-trends", + "destination": "/x-api/trends/get-personalized-trends" + }, + { + "source": "/x-api/users/personalized-trends", + "destination": "/x-api/trends/get-personalized-trends" + }, + { + "source": "/x-api/trends/introduction", + "destination": "/x-api/trends/trends-by-woeid/introduction" + }, + { + "source": "/x-api/media/media-metadata-create", + "destination": "/x-api/media/metadata-create" + }, + { + "source": "/x-api/media/media-subtitles-create", + "destination": "/x-api/media/subtitle-create" + }, + { + "source": "/x-api/media/media-subtitles-delete", + "destination": "/x-api/media/subtitle-delete" + }, + { + "source": "/resources/tutorials", + "destination": "/tutorials" + }, + { + "source": "/resources/tools-and-libraries", + "destination": "/tools-and-libraries" + }, + { + "source": "/platform-overview", + "destination": "/overview" + }, + { + "source": "/home", + "destination": "/overview" + }, + { + "source": "/resources/newsletter", + "destination": "/newsletter" + }, + { + "source": "/resources/api-reference-index", + "destination": "/api-reference-index" + }, + { + "source": "/resources/fundamentals/:slug*", + "destination": "/fundamentals/:slug*" + }, + { + "source": "/resources/enterprise/:slug*", + "destination": "/enterprise/:slug*" + }, + { + "source": "/x-api/account-activity/check-if-a-subscription-exists-for-a-given-webhook-and-user", + "destination": "/x-api/account-activity/validate-subscription" + }, + { + "source": "/x-api/account-activity/deactivates-a-subscription-for-the-specified-webhook-and-user-id", + "destination": "/x-api/account-activity/delete-subscription" + }, + { + "source": "/x-api/account-activity/get-a-count-of-subscriptions-that-are-currently-active-on-your-account", + "destination": "/x-api/account-activity/get-subscription-count" + }, + { + "source": "/x-api/account-activity/get-a-list-of-the-current-all-activity-type-subscriptions-for-the-specified-webhook", + "destination": "/x-api/account-activity/get-subscriptions" + }, + { + "source": "/x-api/account-activity/request-activity-replay", + "destination": "/x-api/account-activity/create-replay-job" + }, + { + "source": "/x-api/account-activity/subscribes-the-provided-application-to-all-events-for-the-provided-user-context-for-all-message-types", + "destination": "/x-api/account-activity/create-subscription" + }, + { + "source": "/x-api/bookmarks/add-post-to-bookmarks", + "destination": "/x-api/bookmarks/create-bookmark" + }, + { + "source": "/x-api/bookmarks/bookmark-folder-posts-by-user-and-folder-id", + "destination": "/x-api/bookmarks/get-bookmarks-by-folder-id" + }, + { + "source": "/x-api/bookmarks/bookmark-folders-by-user", + "destination": "/x-api/bookmarks/get-bookmark-folders" + }, + { + "source": "/x-api/bookmarks/bookmarks-by-user", + "destination": "/x-api/bookmarks/get-bookmarks" + }, + { + "source": "/x-api/bookmarks/remove-a-bookmarked-post", + "destination": "/x-api/bookmarks/delete-bookmark" + }, + { + "source": "/x-api/communities/communities-lookup-by-community-id", + "destination": "/x-api/communities/get-community-by-id" + }, + { + "source": "/x-api/communities/search-communities", + "destination": "/x-api/communities/search-communities" + }, + { + "source": "/x-api/community-notes/create-a-community-note", + "destination": "/x-api/community-notes/create-a-community-note" + }, + { + "source": "/x-api/community-notes/delete-a-community-note", + "destination": "/x-api/community-notes/delete-a-community-note" + }, + { + "source": "/x-api/community-notes/search-for-community-notes-written", + "destination": "/x-api/community-notes/search-for-community-notes-written" + }, + { + "source": "/x-api/community-notes/search-for-posts-eligible-for-community-notes", + "destination": "/x-api/community-notes/search-for-posts-eligible-for-community-notes" + }, + { + "source": "/x-api/compliance/create-compliance-job", + "destination": "/x-api/compliance/create-compliance-job" + }, + { + "source": "/x-api/compliance/get-compliance-job", + "destination": "/x-api/compliance/get-compliance-job-by-id" + }, + { + "source": "/x-api/compliance/likes-compliance-stream", + "destination": "/x-api/compliance/stream-likes-compliance-data" + }, + { + "source": "/x-api/compliance/list-compliance-jobs", + "destination": "/x-api/compliance/get-compliance-jobs" + }, + { + "source": "/x-api/compliance/posts-compliance-stream", + "destination": "/x-api/compliance/stream-posts-compliance-data" + }, + { + "source": "/x-api/compliance/users-compliance-stream", + "destination": "/x-api/compliance/stream-users-compliance-data" + }, + { + "source": "/x-api/connection/force-kills-all-streaming-connections-of-the-authenticated-application", + "destination": "/x-api/connection/terminate-all-connections" + }, + { + "source": "/x-api/direct-messages/create-a-new-dm-conversation", + "destination": "/x-api/direct-messages/create-dm-conversation" + }, + { + "source": "/x-api/direct-messages/delete-dm", + "destination": "/x-api/direct-messages/delete-dm-event" + }, + { + "source": "/x-api/direct-messages/get-dm-events-by-id", + "destination": "/x-api/direct-messages/get-dm-event-by-id" + }, + { + "source": "/x-api/direct-messages/get-dm-events-for-a-dm-conversation-1", + "destination": "/x-api/direct-messages/get-dm-events-for-a-dm-conversation-1" + }, + { + "source": "/x-api/direct-messages/get-dm-events-for-a-dm-conversation", + "destination": "/x-api/direct-messages/get-dm-events-for-a-dm-conversation" + }, + { + "source": "/x-api/direct-messages/get-recent-dm-events", + "destination": "/x-api/direct-messages/get-dm-events" + }, + { + "source": "/x-api/direct-messages/send-a-new-message-to-a-dm-conversation", + "destination": "/x-api/direct-messages/create-dm-message-by-conversation-id" + }, + { + "source": "/x-api/direct-messages/send-a-new-message-to-a-user", + "destination": "/x-api/direct-messages/create-dm-message-by-participant-id" + }, + { + "source": "/x-api/likes/likes-firehose-stream", + "destination": "/x-api/likes/stream-all-likes" + }, + { + "source": "/x-api/likes/likes-sample-10-stream", + "destination": "/x-api/likes/stream-sampled-likes" + }, + { + "source": "/x-api/lists/add-a-list-member", + "destination": "/x-api/lists/add-list-member" + }, + { + "source": "/x-api/lists/create-list", + "destination": "/x-api/lists/create-list" + }, + { + "source": "/x-api/lists/delete-list", + "destination": "/x-api/lists/delete-list" + }, + { + "source": "/x-api/lists/follow-a-list", + "destination": "/x-api/lists/follow-list" + }, + { + "source": "/x-api/lists/get-a-users-list-memberships", + "destination": "/x-api/lists/get-list-memberships" + }, + { + "source": "/x-api/lists/get-a-users-owned-lists", + "destination": "/x-api/lists/get-owned-lists" + }, + { + "source": "/x-api/lists/get-a-users-pinned-lists", + "destination": "/x-api/lists/get-pinned-lists" + }, + { + "source": "/x-api/lists/get-users-followed-lists", + "destination": "/x-api/lists/get-followed-lists" + }, + { + "source": "/x-api/lists/list-lookup-by-list-id", + "destination": "/x-api/lists/get-list-by-id" + }, + { + "source": "/x-api/lists/pin-a-list", + "destination": "/x-api/lists/pin-list" + }, + { + "source": "/x-api/lists/remove-a-list-member", + "destination": "/x-api/lists/remove-list-member" + }, + { + "source": "/x-api/lists/unfollow-a-list", + "destination": "/x-api/lists/unfollow-list" + }, + { + "source": "/x-api/lists/unpin-a-list", + "destination": "/x-api/lists/unpin-list" + }, + { + "source": "/x-api/lists/update-list", + "destination": "/x-api/lists/update-list" + }, + { + "source": "/x-api/media/get-media-analytics", + "destination": "/x-api/media/get-media-analytics" + }, + { + "source": "/x-api/media/media-lookup-by-media-key-1", + "destination": "/x-api/media/get-media-by-media-key" + }, + { + "source": "/x-api/media/media-lookup-by-media-key", + "destination": "/x-api/media/get-media-by-media-keys" + }, + { + "source": "/x-api/media/media-upload-finalize", + "destination": "/x-api/media/finalize-media-upload" + }, + { + "source": "/x-api/media/image-or-subtitle-media-upload", + "destination": "/x-api/media/upload-media" + }, + { + "source": "/x-api/media/media-upload-initialize", + "destination": "/x-api/media/initialize-media-upload" + }, + { + "source": "/x-api/media/media-upload-append", + "destination": "/x-api/media/append-media-upload" + }, + { + "source": "/x-api/media/media-upload-status", + "destination": "/x-api/media/get-media-upload-status" + }, + { + "source": "/x-api/media/metadata-create", + "destination": "/x-api/media/create-media-metadata" + }, + { + "source": "/x-api/media/subtitle-create", + "destination": "/x-api/media/create-media-subtitles" + }, + { + "source": "/x-api/media/subtitle-delete", + "destination": "/x-api/media/delete-media-subtitles" + }, + { + "source": "/x-api/openapi/returns-the-openapi-specification-document", + "destination": "/x-api/openapi/get-openapi-spec" + }, + { + "source": "/x-api/spaces/retrieve-posts-from-a-space", + "destination": "/x-api/spaces/get-space-posts" + }, + { + "source": "/x-api/spaces/retrieve-the-list-of-users-who-purchased-a-ticket-to-the-given-space", + "destination": "/x-api/spaces/get-space-ticket-buyers" + }, + { + "source": "/x-api/spaces/search-for-spaces", + "destination": "/x-api/spaces/search-spaces" + }, + { + "source": "/x-api/spaces/space-lookup-by-space-id", + "destination": "/x-api/spaces/get-space-by-id" + }, + { + "source": "/x-api/spaces/space-lookup-by-their-creators", + "destination": "/x-api/spaces/get-spaces-by-creator-ids" + }, + { + "source": "/x-api/spaces/space-lookup-up-space-ids", + "destination": "/x-api/spaces/get-spaces-by-ids" + }, + { + "source": "/x-api/trends/get-personalized-trends", + "destination": "/x-api/trends/get-personalized-trends" + }, + { + "source": "/x-api/trends/trends", + "destination": "/x-api/trends/get-trends-by-woeid" + }, + { + "source": "/x-api/posts/adddelete-rules", + "destination": "/x-api/posts/update-stream-rules" + }, + { + "source": "/x-api/posts/get-engagement-analytics", + "destination": "/x-api/posts/get-post-analytics" + }, + { + "source": "/x-api/posts/causes-the-user-in-the-path-to-like-the-specified-post", + "destination": "/x-api/posts/like-post" + }, + { + "source": "/x-api/posts/causes-the-user-in-the-path-to-repost-the-specified-post", + "destination": "/x-api/posts/repost-post" + }, + { + "source": "/x-api/posts/causes-the-user-in-the-path-to-unlike-the-specified-post", + "destination": "/x-api/posts/unlike-post" + }, + { + "source": "/x-api/posts/causes-the-user-in-the-path-to-unretweet-the-specified-post", + "destination": "/x-api/posts/unrepost-post" + }, + { + "source": "/x-api/posts/creation-of-a-post", + "destination": "/x-api/posts/create-post" + }, + { + "source": "/x-api/posts/english-language-firehose-stream", + "destination": "/x-api/posts/stream-english-posts" + }, + { + "source": "/x-api/posts/filtered-stream", + "destination": "/x-api/posts/stream-filtered-posts" + }, + { + "source": "/x-api/posts/firehose-stream", + "destination": "/x-api/posts/stream-all-posts" + }, + { + "source": "/x-api/posts/full-archive-search-counts", + "destination": "/x-api/posts/get-count-of-all-posts" + }, + { + "source": "/x-api/posts/full-archive-search", + "destination": "/x-api/posts/search-all-posts" + }, + { + "source": "/x-api/posts/get-historical-metrics-for-posts", + "destination": "/x-api/posts/get-historical-post-insights" + }, + { + "source": "/x-api/posts/get-last-28hr-metrics-for-posts", + "destination": "/x-api/posts/get-28-hour-post-insights" + }, + { + "source": "/x-api/posts/hide-replies", + "destination": "/x-api/posts/hide-reply" + }, + { + "source": "/x-api/posts/japanese-language-firehose-stream", + "destination": "/x-api/posts/stream-japanese-posts" + }, + { + "source": "/x-api/posts/korean-language-firehose-stream", + "destination": "/x-api/posts/stream-korean-posts" + }, + { + "source": "/x-api/posts/list-posts-timeline-by-list-id", + "destination": "/x-api/posts/get-list-posts" + }, + { + "source": "/x-api/posts/portuguese-language-firehose-stream", + "destination": "/x-api/posts/stream-portuguese-posts" + }, + { + "source": "/x-api/posts/post-delete-by-post-id", + "destination": "/x-api/posts/delete-post" + }, + { + "source": "/x-api/posts/post-lookup-by-post-id", + "destination": "/x-api/posts/get-post-by-id" + }, + { + "source": "/x-api/posts/post-lookup-by-post-ids", + "destination": "/x-api/posts/get-posts-by-ids" + }, + { + "source": "/x-api/posts/recent-search-counts", + "destination": "/x-api/posts/get-count-of-recent-posts" + }, + { + "source": "/x-api/posts/recent-search", + "destination": "/x-api/posts/search-recent-posts" + }, + { + "source": "/x-api/posts/retrieve-posts-that-quote-a-post", + "destination": "/x-api/posts/get-quoted-posts" + }, + { + "source": "/x-api/posts/retrieve-posts-that-repost-a-post", + "destination": "/x-api/posts/get-reposts" + }, + { + "source": "/x-api/posts/returns-post-objects-liked-by-the-provided-user-id", + "destination": "/x-api/posts/get-liked-posts" + }, + { + "source": "/x-api/posts/rules-lookup", + "destination": "/x-api/posts/get-stream-rules" + }, + { + "source": "/x-api/posts/sample-10-stream", + "destination": "/x-api/posts/stream-10-sampled-posts" + }, + { + "source": "/x-api/posts/sample-stream", + "destination": "/x-api/posts/stream-sampled-posts" + }, + { + "source": "/x-api/posts/user-home-timeline-by-user-id", + "destination": "/x-api/posts/get-timeline" + }, + { + "source": "/x-api/posts/user-mention-timeline-by-user-id", + "destination": "/x-api/posts/get-mentions" + }, + { + "source": "/x-api/posts/user-posts-timeline-by-user-id", + "destination": "/x-api/posts/get-posts" + }, + { + "source": "/x-api/posts/rules-count", + "destination": "/x-api/posts/get-stream-rule-counts" + }, + { + "source": "/x-api/usage/post-usage", + "destination": "/x-api/usage/get-usage" + }, + { + "source": "/x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-blocked-by-the-authenticated-request-user", + "destination": "/x-api/users/block-dms" + }, + { + "source": "/x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-unblocked-by-the-authenticated-request-user", + "destination": "/x-api/users/unblock-dms" + }, + { + "source": "/x-api/users/follow-user", + "destination": "/x-api/users/follow-user" + }, + { + "source": "/x-api/users/followers-by-user-id", + "destination": "/x-api/users/get-followers" + }, + { + "source": "/x-api/users/following-by-user-id", + "destination": "/x-api/users/get-following" + }, + { + "source": "/x-api/users/mute-user-by-user-id", + "destination": "/x-api/users/mute-user" + }, + { + "source": "/x-api/users/returns-repost-of-user", + "destination": "/x-api/users/get-reposts-of-me" + }, + { + "source": "/x-api/users/returns-user-objects-that-are-blocked-by-provided-user-id", + "destination": "/x-api/users/get-blocking" + }, + { + "source": "/x-api/users/returns-user-objects-that-are-members-of-a-list-by-the-provided-list-id", + "destination": "/x-api/users/get-list-members" + }, + { + "source": "/x-api/users/returns-user-objects-that-are-muted-by-the-provided-user-id", + "destination": "/x-api/users/get-muting" + }, + { + "source": "/x-api/users/returns-user-objects-that-follow-a-list-by-the-provided-list-id", + "destination": "/x-api/users/get-list-followers" + }, + { + "source": "/x-api/users/returns-user-objects-that-have-liked-the-provided-post-id", + "destination": "/x-api/users/get-liking-users" + }, + { + "source": "/x-api/users/returns-user-objects-that-have-retweeted-the-provided-post-id", + "destination": "/x-api/users/get-reposted-by" + }, + { + "source": "/x-api/users/unfollow-user", + "destination": "/x-api/users/unfollow-user" + }, + { + "source": "/x-api/users/unmute-user-by-user-id", + "destination": "/x-api/users/unmute-user" + }, + { + "source": "/x-api/users/user-lookup-by-id", + "destination": "/x-api/users/get-user-by-id" + }, + { + "source": "/x-api/users/user-lookup-by-ids", + "destination": "/x-api/users/get-users-by-ids" + }, + { + "source": "/x-api/users/user-lookup-by-username", + "destination": "/x-api/users/get-user-by-username" + }, + { + "source": "/x-api/users/user-lookup-by-usernames", + "destination": "/x-api/users/get-users-by-usernames" + }, + { + "source": "/x-api/users/user-lookup-me", + "destination": "/x-api/users/get-my-user" + }, + { + "source": "/x-api/users/user-search", + "destination": "/x-api/users/search-users" + }, + { + "source": "/x-api/webhooks/create-webhook-config", + "destination": "/x-api/webhooks/create-webhook" + }, + { + "source": "/x-api/webhooks/delete-webhook-config", + "destination": "/x-api/webhooks/delete-webhook" + }, + { + "source": "/x-api/webhooks/get-a-list-of-webhook-configs-associated-with-a-client-app", + "destination": "/x-api/webhooks/get-webhook" + }, + { + "source": "/x-api/webhooks/webhook-crc-check", + "destination": "/x-api/webhooks/validate-webhook" + } + ] } diff --git a/openapi.json b/openapi.json index f8a001e..43f50af 100644 --- a/openapi.json +++ b/openapi.json @@ -1,17 +1,17 @@ { "openapi" : "3.0.0", "info" : { - "description" : "Twitter API v2 available endpoints", - "version" : "2.144", - "title" : "Twitter API v2", - "termsOfService" : "https://developer.twitter.com/en/developer-terms/agreement-and-policy.html", + "description" : "X API v2 available endpoints", + "version" : "2.145", + "title" : "X API v2", + "termsOfService" : "https://developer.x.com/en/developer-terms/agreement-and-policy.html", "contact" : { - "name" : "Twitter Developers", - "url" : "https://developer.twitter.com/" + "name" : "X Developers", + "url" : "https://developer.x.com/" }, "license" : { - "name" : "Twitter Developer Agreement and Policy", - "url" : "https://developer.twitter.com/en/developer-terms/agreement-and-policy.html" + "name" : "X Developer Agreement and Policy", + "url" : "https://developer.x.com/en/developer-terms/agreement-and-policy.html" } }, "paths" : { @@ -23,14 +23,14 @@ } ], "tags" : [ - "AAASubscriptions" + "Account Activity" ], - "summary" : "Request Activity Replay", - "description" : "Submits a request to retrieve activities from up to the past five days for all subscriptions associated with the specified webhook during the date and time windows provided.", + "summary" : "Create replay job", + "description" : "Creates a replay job to retrieve activities from up to the past 5 days for all subscriptions associated with a given webhook.", "externalDocs" : { "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "operationId" : "postAccountActivityReplay", + "operationId" : "createAccountActivityReplayJob", "parameters" : [ { "name" : "webhook_id", @@ -104,14 +104,14 @@ } ], "tags" : [ - "AAASubscriptions" + "Account Activity" ], - "summary" : "Get a count of subscriptions that are currently active on your account", - "description" : "Get a count of subscriptions that are currently active on your account.", + "summary" : "Get subscription count", + "description" : "Retrieves a count of currently active Account Activity subscriptions.", "externalDocs" : { "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "operationId" : "getSubscriptionCount", + "operationId" : "getAccountActivitySubscriptionCount", "parameters" : [ ], "responses" : { "200" : { @@ -158,14 +158,14 @@ } ], "tags" : [ - "AAASubscriptions" + "Account Activity" ], - "summary" : "Check if a subscription exists for a given webhook and user", - "description" : "Check if a subscription exists for a given webhook and user.", + "summary" : "Validate subscription", + "description" : "Checks a user’s Account Activity subscription for a given webhook.", "externalDocs" : { "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "operationId" : "getSubscription", + "operationId" : "validateAccountActivitySubscription", "parameters" : [ { "name" : "webhook_id", @@ -223,12 +223,12 @@ "tags" : [ "AAASubscriptions" ], - "summary" : "Subscribes the provided application to all events for the provided user context for all message types", - "description" : "Subscribes the provided application to all events for the provided user context for all message types.", + "summary" : "Create subscription", + "description" : "Creates an Account Activity subscription for the user and the given webhook.", "externalDocs" : { "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "operationId" : "postSubscription", + "operationId" : "createAccountActivitySubscription", "parameters" : [ { "name" : "webhook_id", @@ -287,14 +287,14 @@ } ], "tags" : [ - "AAASubscriptions" + "Account Activity" ], - "summary" : "Get a list of the current All Activity type subscriptions for the specified webhook", - "description" : "Get a list of the current All Activity type subscriptions for the specified webhook.", + "summary" : "Get subscriptions", + "description" : "Retrieves a list of all active subscriptions for a given webhook.", "externalDocs" : { "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "operationId" : "getSubscriptionList", + "operationId" : "getAccountActivitySubscriptions", "parameters" : [ { "name" : "webhook_id", @@ -344,14 +344,14 @@ } ], "tags" : [ - "AAASubscriptions" + "Account Activity" ], - "summary" : "Deactivates a subscription for the specified webhook and user id", - "description" : "Deactivates a subscription for the specified webhook and user id.", + "summary" : "Delete subscription", + "description" : "Deletes an Account Activity subscription for the given webhook and user ID.", "externalDocs" : { "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "operationId" : "deleteSubscription", + "operationId" : "deleteAccountActivitySubscription", "parameters" : [ { "name" : "webhook_id", @@ -420,11 +420,11 @@ "Communities" ], "summary" : "Search Communities", - "description" : "Returns Communities that match search query", + "description" : "Retrieves a list of Communities matching the specified search query.", "externalDocs" : { "url" : "https://developer.x.com" }, - "operationId" : "communitiesSearch", + "operationId" : "searchCommunities", "parameters" : [ { "name" : "query", @@ -526,12 +526,12 @@ "tags" : [ "Communities" ], - "summary" : "Communities lookup by Community ID.", - "description" : "Returns a Community.", + "summary" : "Get Community by ID", + "description" : "Retrieves details of a specific Community by its ID.", "externalDocs" : { "url" : "https://developer.x.com/en/docs/x-api/communities/api-reference/get-communities-id" }, - "operationId" : "communityIdGet", + "operationId" : "getCommunitiesById", "parameters" : [ { "name" : "id", @@ -586,12 +586,12 @@ "tags" : [ "Compliance" ], - "summary" : "List Compliance Jobs", - "description" : "Returns recent Compliance Jobs for a given job type and optional job status", + "summary" : "Get Compliance Jobs", + "description" : "Retrieves a list of Compliance Jobs filtered by job type and optional status.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs" }, - "operationId" : "listBatchComplianceJobs", + "operationId" : "getComplianceJobs", "parameters" : [ { "name" : "type", @@ -664,12 +664,12 @@ "tags" : [ "Compliance" ], - "summary" : "Create compliance job", - "description" : "Creates a compliance for the given job type", + "summary" : "Create Compliance Job", + "description" : "Creates a new Compliance Job for the specified job type.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs" }, - "operationId" : "createBatchComplianceJob", + "operationId" : "createComplianceJobs", "parameters" : [ ], "requestBody" : { "content" : { @@ -720,12 +720,12 @@ "tags" : [ "Compliance" ], - "summary" : "Get Compliance Job", - "description" : "Returns a single Compliance Job by ID", + "summary" : "Get Compliance Job by ID", + "description" : "Retrieves details of a specific Compliance Job by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id" }, - "operationId" : "getBatchComplianceJob", + "operationId" : "getComplianceJobsById", "parameters" : [ { "name" : "id", @@ -780,12 +780,12 @@ "tags" : [ "Connection" ], - "summary" : "Force kills all streaming connections of the authenticated application.", - "description" : "Force kills all streaming connections of the authenticated application.", + "summary" : "Terminate all connections", + "description" : "Terminates all active streaming connections for the authenticated application.", "externalDocs" : { "url" : "https://developer.x.com" }, - "operationId" : "killAllAppConnections", + "operationId" : "deleteAllConnections", "parameters" : [ ], "responses" : { "200" : { @@ -833,9 +833,9 @@ "tags" : [ "Direct Messages" ], - "summary" : "Create a new DM Conversation", - "description" : "Creates a new DM Conversation.", - "operationId" : "dmConversationIdCreate", + "summary" : "Create DM conversation", + "description" : "Initiates a new direct message conversation with specified participants.", + "operationId" : "createDmConversations", "parameters" : [ ], "requestBody" : { "content" : { @@ -892,8 +892,8 @@ "tags" : [ "Direct Messages" ], - "summary" : "Get DM Events for a DM Conversation", - "description" : "Returns DM Events for a DM Conversation", + "summary" : "Get DM events for a DM conversation", + "description" : "Retrieves direct message events for a specific conversation.", "operationId" : "getDmEventsByParticipantId", "parameters" : [ { @@ -1022,9 +1022,9 @@ "tags" : [ "Direct Messages" ], - "summary" : "Send a new message to a user", - "description" : "Creates a new message for a DM Conversation with a participant user by ID", - "operationId" : "dmConversationWithUserEventIdCreate", + "summary" : "Create DM message by participant ID", + "description" : "Sends a new direct message to a specific participant by their ID.", + "operationId" : "createDmByParticipantId", "parameters" : [ { "name" : "participant_id", @@ -1092,9 +1092,9 @@ "tags" : [ "Direct Messages" ], - "summary" : "Send a new message to a DM Conversation", - "description" : "Creates a new message for a DM Conversation specified by DM Conversation ID", - "operationId" : "dmConversationByIdEventIdCreate", + "summary" : "Create DM message by conversation ID", + "description" : "Sends a new direct message to a specific conversation by its ID.", + "operationId" : "createDmByConversationId", "parameters" : [ { "name" : "dm_conversation_id", @@ -1162,14 +1162,14 @@ "tags" : [ "Direct Messages" ], - "summary" : "Get DM Events for a DM Conversation", - "description" : "Returns DM Events for a DM Conversation", + "summary" : "Get DM events for a DM conversation", + "description" : "Retrieves direct message events for a specific conversation.", "operationId" : "getDmConversationsIdDmEvents", "parameters" : [ { "name" : "id", "in" : "path", - "description" : "The DM Conversation ID.", + "description" : "The DM conversation ID.", "required" : true, "schema" : { "$ref" : "#/components/schemas/DmConversationId" @@ -1292,8 +1292,8 @@ "tags" : [ "Direct Messages" ], - "summary" : "Get recent DM Events", - "description" : "Returns recent DM Events across DM conversations", + "summary" : "Get DM events", + "description" : "Retrieves a list of recent direct message events across all conversations.", "operationId" : "getDmEvents", "parameters" : [ { @@ -1411,9 +1411,9 @@ "tags" : [ "Direct Messages" ], - "summary" : "Delete Dm", - "description" : "Delete a Dm Event that you own.", - "operationId" : "dmEventDelete", + "summary" : "Delete DM event", + "description" : "Deletes a specific direct message event by its ID, if owned by the authenticated user.", + "operationId" : "deleteDmEvents", "parameters" : [ { "name" : "event_id", @@ -1470,8 +1470,8 @@ "tags" : [ "Direct Messages" ], - "summary" : "Get DM Events by id", - "description" : "Returns DM Events by event id.", + "summary" : "Get DM event by ID", + "description" : "Retrieves details of a specific direct message event by its ID.", "operationId" : "getDmEventsById", "parameters" : [ { @@ -1544,9 +1544,9 @@ "tags" : [ "Tweets" ], - "summary" : "Get Last 28hr Metrics for Posts", - "description" : "Get 28hr Metrics for Posts.", - "operationId" : "TwentyEightHoursEngagementApi", + "summary" : "Get 28-hour Post insights", + "description" : "Retrieves engagement metrics for specified Posts over the last 28 hours.", + "operationId" : "getInsights28Hr", "parameters" : [ { "name" : "tweet_ids", @@ -1675,9 +1675,9 @@ "tags" : [ "Tweets" ], - "summary" : "Get Historical Metrics for Posts", - "description" : "Get Historical Metrics for Posts.", - "operationId" : "HistoricalEngagementApi", + "summary" : "Get historical Post insights", + "description" : "Retrieves historical engagement metrics for specified Posts within a defined time range.", + "operationId" : "getInsightsHistorical", "parameters" : [ { "name" : "tweet_ids", @@ -1823,11 +1823,12 @@ } ], "tags" : [ + "Stream", "Compliance" ], - "summary" : "Likes Compliance stream", - "description" : "Streams 100% of compliance data for Users", - "operationId" : "getLikesComplianceStream", + "summary" : "Stream Likes compliance data", + "description" : "Streams all compliance data related to Likes for Users.", + "operationId" : "streamLikesCompliance", "parameters" : [ { "name" : "backfill_minutes", @@ -1905,14 +1906,15 @@ } ], "tags" : [ + "Stream", "Likes" ], - "summary" : "Likes Firehose stream", - "description" : "Streams 100% of public Likes.", + "summary" : "Stream all Likes", + "description" : "Streams all public Likes in real-time.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-likes-firehose-stream" }, - "operationId" : "likesFirehoseStream", + "operationId" : "streamLikesFirehose", "parameters" : [ { "name" : "backfill_minutes", @@ -2015,14 +2017,15 @@ } ], "tags" : [ + "Stream", "Likes" ], - "summary" : "Likes Sample 10 stream", - "description" : "Streams 10% of public Likes.", + "summary" : "Stream sampled Likes", + "description" : "Streams a 10% sample of public Likes in real-time.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/likes/firehose/api-reference/get-likes-sample10-stream" }, - "operationId" : "likesSample10Stream", + "operationId" : "streamLikesSample10", "parameters" : [ { "name" : "backfill_minutes", @@ -2136,11 +2139,11 @@ "Lists" ], "summary" : "Create List", - "description" : "Creates a new List.", + "description" : "Creates a new List for the authenticated user.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists" }, - "operationId" : "listIdCreate", + "operationId" : "createLists", "parameters" : [ ], "requestBody" : { "content" : { @@ -2198,11 +2201,11 @@ "Lists" ], "summary" : "Delete List", - "description" : "Delete a List that you own.", + "description" : "Deletes a specific List owned by the authenticated user by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id" }, - "operationId" : "listIdDelete", + "operationId" : "deleteLists", "parameters" : [ { "name" : "id", @@ -2262,12 +2265,12 @@ "tags" : [ "Lists" ], - "summary" : "List lookup by List ID.", - "description" : "Returns a List.", + "summary" : "Get List by ID", + "description" : "Retrieves details of a specific List by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id" }, - "operationId" : "listIdGet", + "operationId" : "getListsById", "parameters" : [ { "name" : "id", @@ -2333,12 +2336,12 @@ "tags" : [ "Lists" ], - "summary" : "Update List.", - "description" : "Update a List that you own.", + "summary" : "Update List", + "description" : "Updates the details of a specific List owned by the authenticated user by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id" }, - "operationId" : "listIdUpdate", + "operationId" : "updateLists", "parameters" : [ { "name" : "id", @@ -2409,12 +2412,12 @@ "tags" : [ "Users" ], - "summary" : "Returns User objects that follow a List by the provided List ID", - "description" : "Returns a list of Users that follow a List by the provided List ID", + "summary" : "Get List followers", + "description" : "Retrieves a list of Users who follow a specific List by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" }, - "operationId" : "listGetFollowers", + "operationId" : "getListsFollowers", "parameters" : [ { "name" : "id", @@ -2509,12 +2512,12 @@ "tags" : [ "Users" ], - "summary" : "Returns User objects that are members of a List by the provided List ID.", - "description" : "Returns a list of Users that are members of a List by the provided List ID.", + "summary" : "Get List members", + "description" : "Retrieves a list of Users who are members of a specific List by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" }, - "operationId" : "listGetMembers", + "operationId" : "getListsMembers", "parameters" : [ { "name" : "id", @@ -2604,12 +2607,12 @@ "tags" : [ "Lists" ], - "summary" : "Add a List member", - "description" : "Causes a User to become a member of a List.", + "summary" : "Add List member", + "description" : "Adds a User to a specific List by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members" }, - "operationId" : "listAddMember", + "operationId" : "addListsMember", "parameters" : [ { "name" : "id", @@ -2677,12 +2680,12 @@ "tags" : [ "Lists" ], - "summary" : "Remove a List member", - "description" : "Causes a User to be removed from the members of a List.", + "summary" : "Remove List member", + "description" : "Removes a User from a specific List by its ID and the User’s ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id" }, - "operationId" : "listRemoveMember", + "operationId" : "removeListsMemberByUserId", "parameters" : [ { "name" : "id", @@ -2754,12 +2757,12 @@ "tags" : [ "Tweets" ], - "summary" : "List Posts timeline by List ID.", - "description" : "Returns a list of Posts associated with the provided List ID.", + "summary" : "Get List Posts", + "description" : "Retrieves a list of Posts associated with a specific List by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets" }, - "operationId" : "listsIdTweets", + "operationId" : "getListsPosts", "parameters" : [ { "name" : "id", @@ -2861,12 +2864,12 @@ "tags" : [ "Media" ], - "summary" : "Media lookup by Media Key", - "description" : "Returns a variety of information about the Media specified by the requested Media Key.", + "summary" : "Get Media by media keys", + "description" : "Retrieves details of Media files by their media keys.", "externalDocs" : { "url" : "https://developer.x.com" }, - "operationId" : "findMediaByMediaKeys", + "operationId" : "getMediaByMediaKeys", "parameters" : [ { "name" : "media_keys", @@ -2932,9 +2935,9 @@ "tags" : [ "Media" ], - "summary" : "Analytics of Media", - "description" : "Returns analytics of Media.", - "operationId" : "MediaAnalytics", + "summary" : "Get Media analytics", + "description" : "Retrieves analytics data for media.", + "operationId" : "getMediaAnalytics", "parameters" : [ { "name" : "media_keys", @@ -3038,14 +3041,14 @@ } ], "tags" : [ - "MediaUpload" + "Media" ], - "summary" : "Metadata Create", - "description" : "MetadataCreate", + "summary" : "Create Media metadata", + "description" : "Creates metadata for a Media file.", "externalDocs" : { "url" : "https://docs.x.com/x-api/media/media-metadata-create#metadata-create" }, - "operationId" : "metadataCreate", + "operationId" : "createMediaMetadata", "parameters" : [ ], "requestBody" : { "content" : { @@ -3098,14 +3101,14 @@ } ], "tags" : [ - "MediaUpload" + "Media" ], - "summary" : "Subtitle Delete", - "description" : "SubtitleDelete", + "summary" : "Delete Media subtitles", + "description" : "Deletes subtitles for a specific Media file.", "externalDocs" : { "url" : "https://docs.x.com/x-api/media/media-subtitles-delete" }, - "operationId" : "deleteSubtitles", + "operationId" : "deleteMediaSubtitles", "parameters" : [ ], "requestBody" : { "content" : { @@ -3156,14 +3159,14 @@ } ], "tags" : [ - "MediaUpload" + "Media" ], - "summary" : "Subtitle Create", - "description" : "SubtitleCreate", + "summary" : "Create Media subtitles", + "description" : "Creates subtitles for a specific Media file.", "externalDocs" : { "url" : "https://docs.x.com/x-api/media/media-subtitles-create" }, - "operationId" : "createSubtitles", + "operationId" : "createMediaSubtitles", "parameters" : [ ], "requestBody" : { "content" : { @@ -3216,14 +3219,14 @@ } ], "tags" : [ - "MediaUpload" + "Media" ], - "summary" : "Media Upload Status", - "description" : "Get MediaUpload Status", + "summary" : "Get Media upload status", + "description" : "Retrieves the status of a Media upload by its ID.", "externalDocs" : { "url" : "https://docs.x.com/x-api/media/media-upload-status#media-upload-status" }, - "operationId" : "uploadMediaStatus", + "operationId" : "getMediaUploadStatus", "parameters" : [ { "name" : "media_id", @@ -3289,14 +3292,14 @@ } ], "tags" : [ - "MediaUpload" + "Media" ], - "summary" : "Image or subtitle media upload", - "description" : "Uploads an image or a subtitle using a single API call.", + "summary" : "Upload media", + "description" : "Uploads a media file for use in posts or other content.", "externalDocs" : { "url" : "https://docs.x.com/x-api/media/media-upload" }, - "operationId" : "uploadMedia", + "operationId" : "mediaUpload", "parameters" : [ ], "requestBody" : { "content" : { @@ -3354,10 +3357,10 @@ } ], "tags" : [ - "MediaUpload" + "Media" ], - "summary" : "Initialize a media upload request.", - "description" : "Initialize a media upload request.", + "summary" : "Initialize media upload", + "description" : "Initializes a media upload.", "externalDocs" : { "url" : "https://docs.x.com/x-api/media/media-upload" }, @@ -3414,10 +3417,10 @@ } ], "tags" : [ - "MediaUpload" + "Media" ], - "summary" : "Media upload resumable upload append endpoint.", - "description" : "MediaUpload", + "summary" : "Append Media upload", + "description" : "Appends data to a Media upload request.", "externalDocs" : { "url" : "https://docs.x.com/x-api/media/media-upload" }, @@ -3490,10 +3493,10 @@ } ], "tags" : [ - "MediaUpload" + "Media" ], - "summary" : "Finalize a media upload request.", - "description" : "Finalize a media upload request.", + "summary" : "Finalize Media upload", + "description" : "Finalizes a Media upload request.", "externalDocs" : { "url" : "https://docs.x.com/x-api/media/media-upload" }, @@ -3557,12 +3560,12 @@ "tags" : [ "Media" ], - "summary" : "Media lookup by Media Key", - "description" : "Returns a variety of information about the Media specified by the requested Media Key.", + "summary" : "Get Media by media key", + "description" : "Retrieves details of a specific Media file by its media key.", "externalDocs" : { "url" : "https://developer.x.com" }, - "operationId" : "findMediaByMediaKey", + "operationId" : "getMediaByMediaKey", "parameters" : [ { "name" : "media_key", @@ -3627,7 +3630,7 @@ "externalDocs" : { "url" : "https://communitynotes.x.com/guide/api/overview" }, - "operationId" : "createNote", + "operationId" : "createNotes", "parameters" : [ ], "requestBody" : { "content" : { @@ -3776,7 +3779,7 @@ "externalDocs" : { "url" : "https://docs.x.com/x-api/community-notes/search-for-posts-eligible-for-community-notes" }, - "operationId" : "searchPostsEligibleForNotes", + "operationId" : "searchForEligiblePosts", "parameters" : [ { "name" : "test_mode", @@ -3880,7 +3883,7 @@ "externalDocs" : { "url" : "https://communitynotes.x.com/guide/api/overview" }, - "operationId" : "deleteNote", + "operationId" : "deleteNotes", "parameters" : [ { "name" : "id", @@ -3927,8 +3930,8 @@ "tags" : [ "General" ], - "summary" : "Returns the OpenAPI Specification document.", - "description" : "Full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", + "summary" : "Get OpenAPI Spec.", + "description" : "Retrieves the full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", "operationId" : "getOpenApiSpec", "parameters" : [ ], "responses" : { @@ -3962,12 +3965,12 @@ "tags" : [ "Spaces" ], - "summary" : "Space lookup up Space IDs", - "description" : "Returns a variety of information about the Spaces specified by the requested IDs", + "summary" : "Get Spaces by IDs", + "description" : "Retrieves details of multiple Spaces by their IDs.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces" }, - "operationId" : "findSpacesByIds", + "operationId" : "getSpacesByIds", "parameters" : [ { "name" : "ids", @@ -4046,12 +4049,12 @@ "tags" : [ "Spaces" ], - "summary" : "Space lookup by their creators", - "description" : "Returns a variety of information about the Spaces created by the provided User IDs", + "summary" : "Get Spaces by creator IDs", + "description" : "Retrieves details of Spaces created by specified User IDs.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids" }, - "operationId" : "findSpacesByCreatorIds", + "operationId" : "getSpacesByCreatorIds", "parameters" : [ { "name" : "user_ids", @@ -4127,8 +4130,8 @@ "tags" : [ "Spaces" ], - "summary" : "Search for Spaces", - "description" : "Returns Spaces that match the provided query.", + "summary" : "Search Spaces", + "description" : "Retrieves a list of Spaces matching the specified search query.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search" }, @@ -4237,12 +4240,12 @@ "tags" : [ "Spaces" ], - "summary" : "Space lookup by Space ID", - "description" : "Returns a variety of information about the Space specified by the requested ID", + "summary" : "Get space by ID", + "description" : "Retrieves details of a specific space by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id" }, - "operationId" : "findSpaceById", + "operationId" : "getSpacesById", "parameters" : [ { "name" : "id", @@ -4315,12 +4318,12 @@ "Spaces", "Tweets" ], - "summary" : "Retrieve the list of Users who purchased a ticket to the given space", - "description" : "Retrieves the list of Users who purchased a ticket to the given space", + "summary" : "Get Space ticket buyers", + "description" : "Retrieves a list of Users who purchased tickets to a specific Space by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers" }, - "operationId" : "spaceBuyers", + "operationId" : "getSpacesBuyers", "parameters" : [ { "name" : "id", @@ -4417,12 +4420,12 @@ "Spaces", "Tweets" ], - "summary" : "Retrieve Posts from a Space.", - "description" : "Retrieves Posts shared in the specified Space.", + "summary" : "Get Space Posts", + "description" : "Retrieves a list of Posts shared in a specific Space by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets" }, - "operationId" : "spaceTweets", + "operationId" : "getSpacesPosts", "parameters" : [ { "name" : "id", @@ -4511,12 +4514,12 @@ "tags" : [ "Trends" ], - "summary" : "Trends", - "description" : "Returns the Trend associated with the supplied WoeId.", + "summary" : "Get Trends by WOEID", + "description" : "Retrieves trending topics for a specific location identified by its WOEID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/trends/api-reference/get-trends-by-woeid" }, - "operationId" : "getTrends", + "operationId" : "getTrendsByWoeid", "parameters" : [ { "name" : "woeid", @@ -4596,12 +4599,12 @@ "tags" : [ "Tweets" ], - "summary" : "Post lookup by Post IDs", - "description" : "Returns a variety of information about the Post specified by the requested ID.", + "summary" : "Get Posts by IDs", + "description" : "Retrieves details of multiple Posts by their IDs.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets" }, - "operationId" : "findTweetsById", + "operationId" : "getPostsByIds", "parameters" : [ { "name" : "ids", @@ -4682,12 +4685,12 @@ "tags" : [ "Tweets" ], - "summary" : "Creation of a Post", - "description" : "Causes the User to create a Post under the authorized account.", + "summary" : "Create Post", + "description" : "Creates a new Post for the authenticated user.", "externalDocs" : { "url" : "https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets" }, - "operationId" : "createTweet", + "operationId" : "createPosts", "parameters" : [ ], "requestBody" : { "content" : { @@ -4744,9 +4747,9 @@ "tags" : [ "Tweets" ], - "summary" : "Analytics of posts", - "description" : "Returns analytics of posts.", - "operationId" : "postAnalytics2", + "summary" : "Get Post analytics", + "description" : "Retrieves analytics data for specified Posts within a defined time range.", + "operationId" : "getPostsAnalytics", "parameters" : [ { "name" : "ids", @@ -4846,11 +4849,12 @@ } ], "tags" : [ + "Stream", "Compliance" ], - "summary" : "Posts Compliance stream", - "description" : "Streams 100% of compliance data for Posts", - "operationId" : "getTweetsComplianceStream", + "summary" : "Stream Posts compliance data", + "description" : "Streams all compliance data related to Posts.", + "operationId" : "streamPostsCompliance", "parameters" : [ { "name" : "backfill_minutes", @@ -4943,12 +4947,12 @@ "tags" : [ "Tweets" ], - "summary" : "Full archive search counts", - "description" : "Returns Post Counts that match a search query.", + "summary" : "Get count of all Posts", + "description" : "Retrieves the count of Posts matching a search query from the full archive.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" }, - "operationId" : "tweetCountsFullArchiveSearch", + "operationId" : "getPostsCountsAll", "parameters" : [ { "name" : "query", @@ -5084,12 +5088,12 @@ "tags" : [ "Tweets" ], - "summary" : "Recent search counts", - "description" : "Returns Post Counts from the last 7 days that match a search query.", + "summary" : "Get count of recent Posts", + "description" : "Retrieves the count of Posts from the last 7 days matching a search query.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent" }, - "operationId" : "tweetCountsRecentSearch", + "operationId" : "getPostsCountsRecent", "parameters" : [ { "name" : "query", @@ -5223,11 +5227,12 @@ } ], "tags" : [ + "Stream", "Tweets" ], - "summary" : "Firehose stream", - "description" : "Streams 100% of public Posts.", - "operationId" : "getTweetsFirehoseStream", + "summary" : "Stream all Posts", + "description" : "Streams all public Posts in real-time.", + "operationId" : "streamPostsFirehose", "parameters" : [ { "name" : "backfill_minutes", @@ -5336,11 +5341,12 @@ } ], "tags" : [ + "Stream", "Tweets" ], - "summary" : "English Language Firehose stream", - "description" : "Streams 100% of English Language public Posts.", - "operationId" : "getTweetsFirehoseStreamLangEn", + "summary" : "Stream English Posts", + "description" : "Streams all public English-language Posts in real-time.", + "operationId" : "streamPostsFirehoseEn", "parameters" : [ { "name" : "backfill_minutes", @@ -5449,11 +5455,12 @@ } ], "tags" : [ + "Stream", "Tweets" ], - "summary" : "Japanese Language Firehose stream", - "description" : "Streams 100% of Japanese Language public Posts.", - "operationId" : "getTweetsFirehoseStreamLangJa", + "summary" : "Stream Japanese Posts", + "description" : "Streams all public Japanese-language Posts in real-time.", + "operationId" : "streamPostsFirehoseJa", "parameters" : [ { "name" : "backfill_minutes", @@ -5562,11 +5569,12 @@ } ], "tags" : [ + "Stream", "Tweets" ], - "summary" : "Korean Language Firehose stream", - "description" : "Streams 100% of Korean Language public Posts.", - "operationId" : "getTweetsFirehoseStreamLangKo", + "summary" : "Stream Korean Posts", + "description" : "Streams all public Korean-language Posts in real-time.", + "operationId" : "streamPostsFirehoseKo", "parameters" : [ { "name" : "backfill_minutes", @@ -5675,11 +5683,12 @@ } ], "tags" : [ + "Stream", "Tweets" ], - "summary" : "Portuguese Language Firehose stream", - "description" : "Streams 100% of Portuguese Language public Posts.", - "operationId" : "getTweetsFirehoseStreamLangPt", + "summary" : "Stream Portuguese Posts", + "description" : "Streams all public Portuguese-language Posts in real-time.", + "operationId" : "streamPostsFirehosePt", "parameters" : [ { "name" : "backfill_minutes", @@ -5780,6 +5789,89 @@ "x-twitter-streaming" : true } }, + "/2/tweets/label/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Compliance" + ], + "summary" : "Stream Post labels", + "description" : "Streams all labeling events applied to Posts.", + "operationId" : "streamLabelsCompliance", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post labels will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Post labels will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetLabelStreamResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming" : true + } + }, "/2/tweets/sample/stream" : { "get" : { "security" : [ @@ -5788,14 +5880,15 @@ } ], "tags" : [ + "Stream", "Tweets" ], - "summary" : "Sample stream", - "description" : "Streams a deterministic 1% of public Posts.", + "summary" : "Stream sampled Posts", + "description" : "Streams a 1% sample of public Posts in real-time.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/api-reference/get-tweets-sample-stream" }, - "operationId" : "sampleStream", + "operationId" : "streamPostsSample", "parameters" : [ { "name" : "backfill_minutes", @@ -5867,11 +5960,12 @@ } ], "tags" : [ + "Stream", "Tweets" ], - "summary" : "Sample 10% stream", - "description" : "Streams a deterministic 10% of public Posts.", - "operationId" : "getTweetsSample10Stream", + "summary" : "Stream 10% sampled Posts", + "description" : "Streams a 10% sample of public Posts in real-time.", + "operationId" : "streamPostsSample10", "parameters" : [ { "name" : "backfill_minutes", @@ -5982,12 +6076,12 @@ "tags" : [ "Tweets" ], - "summary" : "Full-archive search", - "description" : "Returns Posts that match a search query.", + "summary" : "Search all Posts", + "description" : "Retrieves Posts from the full archive matching a search query.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" }, - "operationId" : "tweetsFullarchiveSearch", + "operationId" : "searchPostsAll", "parameters" : [ { "name" : "query", @@ -6159,12 +6253,12 @@ "tags" : [ "Tweets" ], - "summary" : "Recent search", - "description" : "Returns Posts from the last 7 days that match a search query.", + "summary" : "Search recent Posts", + "description" : "Retrieves Posts from the last 7 days matching a search query.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent" }, - "operationId" : "tweetsRecentSearch", + "operationId" : "searchPostsRecent", "parameters" : [ { "name" : "query", @@ -6325,14 +6419,15 @@ } ], "tags" : [ + "Stream", "Tweets" ], - "summary" : "Filtered stream", - "description" : "Streams Posts matching the stream's active rule set.", + "summary" : "Stream filtered Posts", + "description" : "Streams Posts in real-time matching the active rule set.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream" }, - "operationId" : "searchStream", + "operationId" : "streamPosts", "parameters" : [ { "name" : "backfill_minutes", @@ -6428,10 +6523,11 @@ } ], "tags" : [ + "Stream", "Tweets" ], - "summary" : "Rules lookup", - "description" : "Returns rules from a User's active rule set. Users can fetch all of their rules or a subset, specified by the provided rule ids.", + "summary" : "Get stream rules", + "description" : "Retrieves the active rule set or a subset of rules for the filtered stream.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules" }, @@ -6512,14 +6608,15 @@ } ], "tags" : [ + "Stream", "Tweets" ], - "summary" : "Add/Delete rules", - "description" : "Add or delete rules from a User's active rule set. Users can provide unique, optionally tagged rules to add. Users can delete their entire rule set or a subset specified by rule ids or values.", + "summary" : "Update stream rules", + "description" : "Adds or deletes rules from the active rule set for the filtered stream.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/post-tweets-search-stream-rules" }, - "operationId" : "addOrDeleteRules", + "operationId" : "updateRules", "parameters" : [ { "name" : "dry_run", @@ -6589,14 +6686,15 @@ } ], "tags" : [ - "General" + "Stream", + "Tweets" ], - "summary" : "Rules Count", - "description" : "Returns the counts of rules from a User's active rule set, to reflect usage by project and application.", + "summary" : "Get stream rule counts", + "description" : "Retrieves the count of rules in the active rule set for the filtered stream.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules-counts" }, - "operationId" : "getRuleCount", + "operationId" : "getRuleCounts", "parameters" : [ { "$ref" : "#/components/parameters/RulesCountFieldsParameter" @@ -6648,12 +6746,12 @@ "tags" : [ "Tweets" ], - "summary" : "Post delete by Post ID", - "description" : "Delete specified Post (in the path) by ID.", + "summary" : "Delete Post", + "description" : "Deletes a specific Post by its ID, if owned by the authenticated user.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id" }, - "operationId" : "deleteTweetById", + "operationId" : "deletePosts", "parameters" : [ { "name" : "id", @@ -6712,12 +6810,12 @@ "tags" : [ "Tweets" ], - "summary" : "Post lookup by Post ID", - "description" : "Returns a variety of information about the Post specified by the requested ID.", + "summary" : "Get Post by ID", + "description" : "Retrieves details of a specific Post by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id" }, - "operationId" : "findTweetById", + "operationId" : "getPostsById", "parameters" : [ { "name" : "id", @@ -6794,12 +6892,12 @@ "tags" : [ "Users" ], - "summary" : "Returns User objects that have liked the provided Post ID", - "description" : "Returns a list of Users that have liked the provided Post ID", + "summary" : "Get Liking Users", + "description" : "Retrieves a list of Users who liked a specific Post by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-tweets-id-liking_users" }, - "operationId" : "tweetsIdLikingUsers", + "operationId" : "getPostsLikingUsers", "parameters" : [ { "name" : "id", @@ -6893,12 +6991,12 @@ "tags" : [ "Tweets" ], - "summary" : "Retrieve Posts that quote a Post.", - "description" : "Returns a variety of information about each Post that quotes the Post specified by the requested ID.", + "summary" : "Get Quoted Posts", + "description" : "Retrieves a list of Posts that quote a specific Post by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets" }, - "operationId" : "findTweetsThatQuoteATweet", + "operationId" : "getPostsQuotedPosts", "parameters" : [ { "name" : "id", @@ -7025,12 +7123,12 @@ "tags" : [ "Users" ], - "summary" : "Returns User objects that have retweeted the provided Post ID", - "description" : "Returns a list of Users that have retweeted the provided Post ID", + "summary" : "Get Reposted by", + "description" : "Retrieves a list of Users who reposted a specific Post by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweeted_by" }, - "operationId" : "tweetsIdRetweetingUsers", + "operationId" : "getPostsRepostedBy", "parameters" : [ { "name" : "id", @@ -7124,12 +7222,12 @@ "tags" : [ "Tweets" ], - "summary" : "Retrieve Posts that repost a Post.", - "description" : "Returns a variety of information about each Post that has retweeted the Post specified by the requested ID.", + "summary" : "Get Reposts", + "description" : "Retrieves a list of Posts that repost a specific Post by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets" }, - "operationId" : "findTweetsThatRetweetATweet", + "operationId" : "getPostsReposts", "parameters" : [ { "name" : "id", @@ -7230,12 +7328,12 @@ "tags" : [ "Tweets" ], - "summary" : "Hide replies", - "description" : "Hides or unhides a reply to an owned conversation.", + "summary" : "Hide reply", + "description" : "Hides or unhides a reply to a conversation owned by the authenticated user.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden" }, - "operationId" : "hideReplyById", + "operationId" : "hidePostsReply", "parameters" : [ { "name" : "tweet_id", @@ -7296,12 +7394,12 @@ "tags" : [ "Usage" ], - "summary" : "Post Usage", - "description" : "Returns the Post Usage.", + "summary" : "Get usage", + "description" : "Retrieves usage statistics for Posts over a specified number of days.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets" }, - "operationId" : "getUsageTweets", + "operationId" : "getUsage", "parameters" : [ { "name" : "days", @@ -7369,12 +7467,12 @@ "tags" : [ "Users" ], - "summary" : "User lookup by IDs", - "description" : "This endpoint returns information about Users. Specify Users by their ID.", + "summary" : "Get Users by IDs", + "description" : "Retrieves details of multiple Users by their IDs.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users" }, - "operationId" : "findUsersById", + "operationId" : "getUsersByIds", "parameters" : [ { "name" : "ids", @@ -7451,12 +7549,12 @@ "tags" : [ "Users" ], - "summary" : "User lookup by usernames", - "description" : "This endpoint returns information about Users. Specify Users by their username.", + "summary" : "Get Users by usernames", + "description" : "Retrieves details of multiple Users by their usernames.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by" }, - "operationId" : "findUsersByUsername", + "operationId" : "getUsersByUsernames", "parameters" : [ { "name" : "usernames", @@ -7535,12 +7633,12 @@ "tags" : [ "Users" ], - "summary" : "User lookup by username", - "description" : "This endpoint returns information about a User. Specify User by username.", + "summary" : "Get User by username", + "description" : "Retrieves details of a specific User by their username.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username" }, - "operationId" : "findUserByUsername", + "operationId" : "getUsersByUsername", "parameters" : [ { "name" : "username", @@ -7601,11 +7699,12 @@ } ], "tags" : [ + "Stream", "Compliance" ], - "summary" : "Users Compliance stream", - "description" : "Streams 100% of compliance data for Users", - "operationId" : "getUsersComplianceStream", + "summary" : "Stream Users compliance data", + "description" : "Streams all compliance data related to Users.", + "operationId" : "streamUsersCompliance", "parameters" : [ { "name" : "backfill_minutes", @@ -7704,12 +7803,12 @@ "tags" : [ "Users" ], - "summary" : "User lookup me", - "description" : "This endpoint returns information about the requesting User.", + "summary" : "Get my User", + "description" : "Retrieves details of the authenticated user.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me" }, - "operationId" : "findMyUser", + "operationId" : "getMyUser", "parameters" : [ { "$ref" : "#/components/parameters/UserFieldsParameter" @@ -7767,11 +7866,11 @@ "Trends" ], "summary" : "Get personalized Trends", - "description" : "Returns Personalized trends for the authenticated user", + "description" : "Retrieves personalized trending topics for the authenticated user.", "externalDocs" : { "url" : "https://developer.x.com/" }, - "operationId" : "personalizedTrends", + "operationId" : "getUsersPersonalizedTrends", "parameters" : [ { "$ref" : "#/components/parameters/PersonalizedTrendFieldsParameter" @@ -7822,9 +7921,9 @@ "tags" : [ "Users" ], - "summary" : "Returns repost of user", - "description" : "This endpoint returns reposts of the requesting User.", - "operationId" : "listOfRepostOfUser", + "summary" : "Get Reposts of me", + "description" : "Retrieves a list of Posts that repost content from the authenticated user.", + "operationId" : "getUsersRepostsOfMe", "parameters" : [ { "name" : "max_results", @@ -7914,12 +8013,12 @@ "tags" : [ "Users" ], - "summary" : "User search", - "description" : "Returns Users that match a search query.", + "summary" : "Search Users", + "description" : "Retrieves a list of Users matching a search query.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-search" }, - "operationId" : "searchUserByQuery", + "operationId" : "searchUsers", "parameters" : [ { "name" : "query", @@ -8014,12 +8113,12 @@ "tags" : [ "Users" ], - "summary" : "User lookup by ID", - "description" : "This endpoint returns information about a User. Specify User by ID.", + "summary" : "Get User by ID", + "description" : "Retrieves details of a specific User by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id" }, - "operationId" : "findUserById", + "operationId" : "getUsersById", "parameters" : [ { "name" : "id", @@ -8088,12 +8187,12 @@ "tags" : [ "Users" ], - "summary" : "Returns User objects that are blocked by provided User ID", - "description" : "Returns a list of Users that are blocked by the provided User ID", + "summary" : "Get blocking", + "description" : "Retrieves a list of Users blocked by the specified User ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking" }, - "operationId" : "usersIdBlocking", + "operationId" : "getUsersBlocking", "parameters" : [ { "name" : "id", @@ -8181,12 +8280,12 @@ "tags" : [ "Bookmarks" ], - "summary" : "Bookmarks by User", - "description" : "Returns Post objects that have been bookmarked by the requesting User", + "summary" : "Get Bookmarks", + "description" : "Retrieves a list of Posts bookmarked by the authenticated user.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks" }, - "operationId" : "getUsersIdBookmarks", + "operationId" : "getUsersBookmarks", "parameters" : [ { "name" : "id", @@ -8281,12 +8380,12 @@ "tags" : [ "Bookmarks" ], - "summary" : "Add Post to Bookmarks", - "description" : "Adds a Post (ID in the body) to the requesting User's (in the path) bookmarks", + "summary" : "Create Bookmark", + "description" : "Adds a post to the authenticated user’s bookmarks.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks" }, - "operationId" : "postUsersIdBookmarks", + "operationId" : "createUsersBookmark", "parameters" : [ { "name" : "id", @@ -8351,12 +8450,12 @@ "tags" : [ "Bookmarks" ], - "summary" : "Bookmark folders by User", - "description" : "Returns metadata about Bookmark folders that have been created by the requesting User", + "summary" : "Get Bookmark folders", + "description" : "Retrieves a list of Bookmark folders created by the authenticated user.", "externalDocs" : { "url" : "https://developer.x.com" }, - "operationId" : "getUsersIdBookmarkFolders", + "operationId" : "getUsersBookmarkFolders", "parameters" : [ { "name" : "id", @@ -8435,12 +8534,12 @@ "tags" : [ "Bookmarks" ], - "summary" : "Bookmark Folder Posts by User and Folder id", - "description" : "Returns posts belonging to input bookmarks folder id that have been created by the requesting User", + "summary" : "Get Bookmarks by folder ID", + "description" : "Retrieves Posts in a specific Bookmark folder by its ID for the authenticated user.", "externalDocs" : { "url" : "https://developer.x.com" }, - "operationId" : "getUsersIdBookmarkFolderPosts", + "operationId" : "getUsersBookmarksByFolderId", "parameters" : [ { "name" : "id", @@ -8506,12 +8605,12 @@ "tags" : [ "Bookmarks" ], - "summary" : "Remove a bookmarked Post", - "description" : "Removes a Post from the requesting User's bookmarked Posts.", + "summary" : "Delete Bookmark", + "description" : "Removes a Post from the authenticated user’s Bookmarks by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id" }, - "operationId" : "usersIdBookmarksDelete", + "operationId" : "deleteUsersBookmark", "parameters" : [ { "name" : "id", @@ -8580,12 +8679,12 @@ "tags" : [ "Users" ], - "summary" : "Causes DMs to/from the target User (in the path) to be blocked by the authenticated request user", - "description" : "Causes DMs to/from the target User (in the path) to be blocked by the authenticated request user", + "summary" : "Block DMs", + "description" : "Blocks direct messages to or from a specific User by their ID for the authenticated user.", "externalDocs" : { "url" : "https://developer.x.com/" }, - "operationId" : "usersIdDMBlock", + "operationId" : "blockUsersDms", "parameters" : [ { "name" : "id", @@ -8644,12 +8743,12 @@ "tags" : [ "Users" ], - "summary" : "Causes DMs to/from the target User (in the path) to be unblocked by the authenticated request user", - "description" : "Causes DMs to/from the target User (in the path) to be unblocked by the authenticated request user", + "summary" : "Unblock DMs", + "description" : "Unblocks direct messages to or from a specific User by their ID for the authenticated user.", "externalDocs" : { "url" : "https://developer.x.com/" }, - "operationId" : "usersIdDMUnBlock", + "operationId" : "unblockUsersDms", "parameters" : [ { "name" : "id", @@ -8711,12 +8810,12 @@ "tags" : [ "Lists" ], - "summary" : "Get User's Followed Lists", - "description" : "Returns a User's followed Lists.", + "summary" : "Get followed Lists", + "description" : "Retrieves a list of Lists followed by a specific User by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists" }, - "operationId" : "userFollowedLists", + "operationId" : "getUsersFollowedLists", "parameters" : [ { "name" : "id", @@ -8807,12 +8906,12 @@ "tags" : [ "Lists" ], - "summary" : "Follow a List", - "description" : "Causes a User to follow a List.", + "summary" : "Follow List", + "description" : "Causes the authenticated user to follow a specific List by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/post-users-id-followed-lists" }, - "operationId" : "listUserFollow", + "operationId" : "followList", "parameters" : [ { "name" : "id", @@ -8880,12 +8979,12 @@ "tags" : [ "Lists" ], - "summary" : "Unfollow a List", - "description" : "Causes a User to unfollow a List.", + "summary" : "Unfollow List", + "description" : "Causes the authenticated user to unfollow a specific List by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/delete-users-id-followed-lists-list_id" }, - "operationId" : "listUserUnfollow", + "operationId" : "unfollowList", "parameters" : [ { "name" : "id", @@ -8957,12 +9056,12 @@ "tags" : [ "Users" ], - "summary" : "Followers by User ID", - "description" : "Returns a list of Users who are followers of the specified User ID.", + "summary" : "Get followers", + "description" : "Retrieves a list of Users who follow a specific User by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" }, - "operationId" : "usersIdFollowers", + "operationId" : "getUsersFollowers", "parameters" : [ { "name" : "id", @@ -9057,12 +9156,12 @@ "tags" : [ "Users" ], - "summary" : "Following by User ID", - "description" : "Returns a list of Users that are being followed by the provided User ID", + "summary" : "Get following", + "description" : "Retrieves a list of Users followed by a specific User by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following" }, - "operationId" : "usersIdFollowing", + "operationId" : "getUsersFollowing", "parameters" : [ { "name" : "id", @@ -9153,11 +9252,11 @@ "Users" ], "summary" : "Follow User", - "description" : "Causes the User(in the path) to follow, or “request to follow” for protected Users, the target User. The User(in the path) must match the User context authorizing the request", + "description" : "Causes the authenticated user to follow a specific user by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following" }, - "operationId" : "usersIdFollow", + "operationId" : "followUser", "parameters" : [ { "name" : "id", @@ -9225,12 +9324,12 @@ "tags" : [ "Tweets" ], - "summary" : "Returns Post objects liked by the provided User ID", - "description" : "Returns a list of Posts liked by the provided User ID", + "summary" : "Get liked Posts", + "description" : "Retrieves a list of Posts liked by a specific User by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets" }, - "operationId" : "usersIdLikedTweets", + "operationId" : "getUsersLikedPosts", "parameters" : [ { "name" : "id", @@ -9331,12 +9430,12 @@ "tags" : [ "Tweets" ], - "summary" : "Causes the User (in the path) to like the specified Post", - "description" : "Causes the User (in the path) to like the specified Post. The User in the path must match the User context authorizing the request.", + "summary" : "Like Post", + "description" : "Causes the authenticated user to Like a specific Post by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-id-likes" }, - "operationId" : "usersIdLike", + "operationId" : "likePost", "parameters" : [ { "name" : "id", @@ -9404,12 +9503,12 @@ "tags" : [ "Tweets" ], - "summary" : "Causes the User (in the path) to unlike the specified Post", - "description" : "Causes the User (in the path) to unlike the specified Post. The User must match the User context authorizing the request", + "summary" : "Unlike Post", + "description" : "Causes the authenticated user to Unlike a specific Post by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id" }, - "operationId" : "usersIdUnlike", + "operationId" : "unlikePost", "parameters" : [ { "name" : "id", @@ -9481,12 +9580,12 @@ "tags" : [ "Lists" ], - "summary" : "Get a User's List Memberships", - "description" : "Get a User's List Memberships.", + "summary" : "Get List memberships", + "description" : "Retrieves a list of Lists that a specific User is a member of by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" }, - "operationId" : "getUserListMemberships", + "operationId" : "getUsersListMemberships", "parameters" : [ { "name" : "id", @@ -9581,12 +9680,12 @@ "tags" : [ "Tweets" ], - "summary" : "User mention timeline by User ID", - "description" : "Returns Post objects that mention username associated to the provided User ID", + "summary" : "Get mentions", + "description" : "Retrieves a list of Posts that mention a specific User by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions" }, - "operationId" : "usersIdMentions", + "operationId" : "getUsersMentions", "parameters" : [ { "name" : "id", @@ -9732,12 +9831,12 @@ "tags" : [ "Users" ], - "summary" : "Returns User objects that are muted by the provided User ID", - "description" : "Returns a list of Users that are muted by the provided User ID", + "summary" : "Get muting", + "description" : "Retrieves a list of Users muted by the authenticated user.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting" }, - "operationId" : "usersIdMuting", + "operationId" : "getUsersMuting", "parameters" : [ { "name" : "id", @@ -9827,12 +9926,12 @@ "tags" : [ "Users" ], - "summary" : "Mute User by User ID.", - "description" : "Causes the User (in the path) to mute the target User. The User (in the path) must match the User context authorizing the request.", + "summary" : "Mute User", + "description" : "Causes the authenticated user to mute a specific User by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting" }, - "operationId" : "usersIdMute", + "operationId" : "muteUser", "parameters" : [ { "name" : "id", @@ -9903,12 +10002,12 @@ "tags" : [ "Lists" ], - "summary" : "Get a User's Owned Lists.", - "description" : "Get a User's Owned Lists.", + "summary" : "Get owned Lists", + "description" : "Retrieves a list of Lists owned by a specific User by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists" }, - "operationId" : "listUserOwnedLists", + "operationId" : "getUsersOwnedLists", "parameters" : [ { "name" : "id", @@ -10001,12 +10100,12 @@ "tags" : [ "Lists" ], - "summary" : "Get a User's Pinned Lists", - "description" : "Get a User's Pinned Lists.", + "summary" : "Get pinned Lists", + "description" : "Retrieves a list of Lists pinned by the authenticated user.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/get-users-id-pinned_lists" }, - "operationId" : "listUserPinnedLists", + "operationId" : "getUsersPinnedLists", "parameters" : [ { "name" : "id", @@ -10072,12 +10171,12 @@ "tags" : [ "Lists" ], - "summary" : "Pin a List", - "description" : "Causes a User to pin a List.", + "summary" : "Pin List", + "description" : "Causes the authenticated user to pin a specific List by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/post-users-id-pinned-lists" }, - "operationId" : "listUserPin", + "operationId" : "pinList", "parameters" : [ { "name" : "id", @@ -10146,12 +10245,12 @@ "tags" : [ "Lists" ], - "summary" : "Unpin a List", - "description" : "Causes a User to remove a pinned List.", + "summary" : "Unpin List", + "description" : "Causes the authenticated user to unpin a specific List by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/delete-users-id-pinned-lists-list_id" }, - "operationId" : "listUserUnpin", + "operationId" : "unpinList", "parameters" : [ { "name" : "id", @@ -10220,12 +10319,12 @@ "tags" : [ "Tweets" ], - "summary" : "Causes the User (in the path) to repost the specified Post.", - "description" : "Causes the User (in the path) to repost the specified Post. The User in the path must match the User context authorizing the request.", + "summary" : "Repost Post", + "description" : "Causes the authenticated user to repost a specific Post by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets" }, - "operationId" : "usersIdRetweets", + "operationId" : "repostPost", "parameters" : [ { "name" : "id", @@ -10293,12 +10392,12 @@ "tags" : [ "Tweets" ], - "summary" : "Causes the User (in the path) to unretweet the specified Post", - "description" : "Causes the User (in the path) to unretweet the specified Post. The User must match the User context authorizing the request", + "summary" : "Unrepost Post", + "description" : "Causes the authenticated user to unrepost a specific Post by its ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id" }, - "operationId" : "usersIdUnretweets", + "operationId" : "unrepostPost", "parameters" : [ { "name" : "id", @@ -10366,12 +10465,12 @@ "tags" : [ "Tweets" ], - "summary" : "User home timeline by User ID", - "description" : "Returns Post objects that appears in the provided User ID's home timeline", + "summary" : "Get Timeline", + "description" : "Retrieves a reverse chronological list of Posts in the authenticated User’s Timeline.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological" }, - "operationId" : "usersIdTimeline", + "operationId" : "getUsersTimeline", "parameters" : [ { "name" : "id", @@ -10542,12 +10641,12 @@ "tags" : [ "Tweets" ], - "summary" : "User Posts timeline by User ID", - "description" : "Returns a list of Posts authored by the provided User ID", + "summary" : "Get Posts", + "description" : "Retrieves a list of posts authored by a specific User by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets" }, - "operationId" : "usersIdTweets", + "operationId" : "getUsersPosts", "parameters" : [ { "name" : "id", @@ -10719,11 +10818,11 @@ "Users" ], "summary" : "Unfollow User", - "description" : "Causes the source User to unfollow the target User. The source User must match the User context authorizing the request", + "description" : "Causes the authenticated user to unfollow a specific user by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following" }, - "operationId" : "usersIdUnfollow", + "operationId" : "unfollowUser", "parameters" : [ { "name" : "source_user_id", @@ -10792,12 +10891,12 @@ "tags" : [ "Users" ], - "summary" : "Unmute User by User ID", - "description" : "Causes the source User to unmute the target User. The source User must match the User context authorizing the request", + "summary" : "Unmute User", + "description" : "Causes the authenticated user to unmute a specific user by their ID.", "externalDocs" : { "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting" }, - "operationId" : "usersIdUnmute", + "operationId" : "unmuteUser", "parameters" : [ { "name" : "source_user_id", @@ -10859,12 +10958,12 @@ "tags" : [ "Webhooks" ], - "summary" : "Get a list of webhook configs associated with a client app", + "summary" : "Get webhook", "description" : "Get a list of webhook configs associated with a client app.", "externalDocs" : { "url" : "https://docs.x.com/x-api/webhooks/introduction" }, - "operationId" : "getWebhooksConfig", + "operationId" : "getWebhooks", "parameters" : [ { "$ref" : "#/components/parameters/WebhookConfigFieldsParameter" @@ -10910,12 +11009,12 @@ "tags" : [ "Webhooks" ], - "summary" : "Create Webhook Config", - "description" : "Creates a new webhook config.", + "summary" : "Create webhook", + "description" : "Creates a new webhook configuration.", "externalDocs" : { "url" : "https://docs.x.com/x-api/webhooks/introduction" }, - "operationId" : "createWebhooksConfig", + "operationId" : "createWebhooks", "parameters" : [ ], "requestBody" : { "content" : { @@ -10968,12 +11067,12 @@ "tags" : [ "Webhooks" ], - "summary" : "Delete Webhook Config", - "description" : "Deletes a webhook config.", + "summary" : "Delete webhook", + "description" : "Deletes an existing webhook configuration.", "externalDocs" : { "url" : "https://docs.x.com/x-api/webhooks/introduction" }, - "operationId" : "deleteWebhooksConfig", + "operationId" : "deleteWebhooks", "parameters" : [ { "name" : "webhook_id", @@ -11026,12 +11125,12 @@ "tags" : [ "Webhooks" ], - "summary" : "Webhook CRC Check", - "description" : "Manually trigger a CRC check for a webhook.", + "summary" : "Validate webhook", + "description" : "Triggers a CRC check for a given webhook.", "externalDocs" : { "url" : "https://docs.x.com/x-api/webhooks/introduction" }, - "operationId" : "putWebhooksConfig", + "operationId" : "validateWebhooks", "parameters" : [ { "name" : "webhook_id", @@ -11076,11 +11175,19 @@ }, "servers" : [ { - "description" : "Twitter API", - "url" : "https://api.twitter.com" + "description" : "X API", + "url" : "https://api.x.com" } ], "tags" : [ + { + "name" : "Account Activity", + "description" : "Endpoints relating to retrieving, managing AAA subscriptions", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://docs.x.com/x-api/enterprise-gnip-2.0/fundamentals/account-activity" + } + }, { "name" : "Bookmarks", "description" : "Endpoints related to retrieving, managing bookmarks of a user", @@ -11145,6 +11252,14 @@ "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces" } }, + { + "name" : "Stream", + "description" : "Endpoints related to streaming", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.x.com" + } + }, { "name" : "Tweets", "description" : "Endpoints related to retrieving, searching, and modifying Tweets", @@ -11172,30 +11287,30 @@ "type" : "oauth2", "flows" : { "authorizationCode" : { - "authorizationUrl" : "https://api.twitter.com/2/oauth2/authorize", - "tokenUrl" : "https://api.twitter.com/2/oauth2/token", + "authorizationUrl" : "https://api.x.com/2/oauth2/authorize", + "tokenUrl" : "https://api.x.com/2/oauth2/token", "scopes" : { - "block.read" : "Accounts you’ve blocked.", - "bookmark.read" : "Allows an app to read bookmarked Tweets", - "bookmark.write" : "Allows an app to create and delete bookmarks", - "dm.read" : "All your Direct Messages", - "dm.write" : "Send and manage Direct Messages for you", - "follows.read" : "People who follow you and people who you follow.", - "follows.write" : "Follow and unfollow people for you.", - "like.read" : "Tweets you’ve liked and likes you can view.", - "like.write" : "Like and un-like Tweets for you.", - "list.read" : "Lists, list members, and list followers of lists you’ve created or are a member of, including private lists.", - "list.write" : "Create and manage Lists for you.", - "media.write" : "Upload media like photos and videos for you.", - "mute.read" : "Accounts you’ve muted.", - "mute.write" : "Mute and unmute accounts for you.", - "offline.access" : "App can request refresh token.", - "space.read" : "Access all of the Spaces you can see.", - "timeline.read" : "All the Custom Timelines you can see, including public Custom Timelines from other developers.", - "tweet.moderate.write" : "Hide and unhide replies to your Tweets.", - "tweet.read" : "All the Tweets you can see, including Tweets from protected accounts.", - "tweet.write" : "Tweet and retweet for you.", - "users.read" : "Any account you can see, including protected accounts. Any account you can see, including protected accounts." + "block.read" : "View accounts you have blocked.", + "bookmark.read" : "Read your bookmarked Posts.", + "bookmark.write" : "Create and delete your bookmarks.", + "dm.read" : "Read all your Direct Messages.", + "dm.write" : "Send and manage your Direct Messages.", + "follows.read" : "View accounts you follow and accounts following you.", + "follows.write" : "Follow and unfollow accounts on your behalf.", + "like.read" : "View Posts you have liked and likes you can see.", + "like.write" : "Like and unlike Posts on your behalf.", + "list.read" : "View Lists, members, and followers of Lists you created or are a member of, including private Lists.", + "list.write" : "Create and manage Lists on your behalf.", + "media.write" : "Upload media, such as photos and videos, on your behalf.", + "mute.read" : "View accounts you have muted.", + "mute.write" : "Mute and unmute accounts on your behalf.", + "offline.access" : "Request a refresh token for the app.", + "space.read" : "View all Spaces you have access to.", + "timeline.read" : "View all Custom Timelines you can see, including public Custom Timelines from other developers.", + "tweet.moderate.write" : "Hide and unhide replies to your Posts.", + "tweet.read" : "View all Posts you can see, including those from protected accounts.", + "tweet.write" : "Post and repost on your behalf.", + "users.read" : "View any account you can see, including protected accounts." } } } @@ -18279,6 +18394,114 @@ "pattern" : "^[0-9]{1,19}$", "example" : "1346889436626259968" }, + "TweetLabelData" : { + "description" : "Tweet label data.", + "oneOf" : [ + { + "$ref" : "#/components/schemas/TweetNoticeSchema" + }, + { + "$ref" : "#/components/schemas/TweetUnviewableSchema" + } + ] + }, + "TweetLabelStreamResponse" : { + "description" : "Tweet label stream events.", + "oneOf" : [ + { + "type" : "object", + "description" : "Tweet Label event.", + "required" : [ + "data" + ], + "properties" : { + "data" : { + "$ref" : "#/components/schemas/TweetLabelData" + } + } + }, + { + "type" : "object", + "required" : [ + "errors" + ], + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + ] + }, + "TweetNotice" : { + "type" : "object", + "required" : [ + "tweet", + "event_type", + "event_at", + "application" + ], + "properties" : { + "application" : { + "type" : "string", + "description" : "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", + "example" : "apply" + }, + "details" : { + "type" : "string", + "description" : "Information shown on the Tweet label" + }, + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "event_type" : { + "type" : "string", + "description" : "The type of label on the Tweet", + "example" : "misleading" + }, + "extended_details_url" : { + "type" : "string", + "description" : "Link to more information about this kind of label" + }, + "label_title" : { + "type" : "string", + "description" : "Title/header of the Tweet label" + }, + "tweet" : { + "type" : "object", + "required" : [ + "id", + "author_id" + ], + "properties" : { + "author_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetNoticeSchema" : { + "type" : "object", + "required" : [ + "public_tweet_notice" + ], + "properties" : { + "public_tweet_notice" : { + "$ref" : "#/components/schemas/TweetNotice" + } + } + }, "TweetTakedownComplianceSchema" : { "type" : "object", "required" : [ @@ -18336,6 +18559,53 @@ } } }, + "TweetUnviewable" : { + "type" : "object", + "required" : [ + "tweet", + "event_at", + "application" + ], + "properties" : { + "application" : { + "type" : "string", + "description" : "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", + "example" : "apply" + }, + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "tweet" : { + "type" : "object", + "required" : [ + "id", + "author_id" + ], + "properties" : { + "author_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetUnviewableSchema" : { + "type" : "object", + "required" : [ + "public_tweet_unviewable" + ], + "properties" : { + "public_tweet_unviewable" : { + "$ref" : "#/components/schemas/TweetUnviewable" + } + } + }, "TweetWithheld" : { "type" : "object", "description" : "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", diff --git a/x-api/account-activity/create-replay-job.mdx b/x-api/account-activity/create-replay-job.mdx new file mode 100644 index 0000000..5ea81d6 --- /dev/null +++ b/x-api/account-activity/create-replay-job.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all +--- \ No newline at end of file diff --git a/x-api/account-activity/create-subscription.mdx b/x-api/account-activity/create-subscription.mdx new file mode 100644 index 0000000..b9c8294 --- /dev/null +++ b/x-api/account-activity/create-subscription.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/account_activity/webhooks/{webhook_id}/subscriptions/all +--- \ No newline at end of file diff --git a/x-api/account-activity/delete-subscription.mdx b/x-api/account-activity/delete-subscription.mdx new file mode 100644 index 0000000..9a35c11 --- /dev/null +++ b/x-api/account-activity/delete-subscription.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all +--- \ No newline at end of file diff --git a/x-api/account-activity/get-subscription-count.mdx b/x-api/account-activity/get-subscription-count.mdx new file mode 100644 index 0000000..a4969e5 --- /dev/null +++ b/x-api/account-activity/get-subscription-count.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/account_activity/subscriptions/count +--- \ No newline at end of file diff --git a/x-api/account-activity/get-subscriptions.mdx b/x-api/account-activity/get-subscriptions.mdx new file mode 100644 index 0000000..de6879c --- /dev/null +++ b/x-api/account-activity/get-subscriptions.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/account_activity/webhooks/{webhook_id}/subscriptions/all/list +--- \ No newline at end of file diff --git a/x-api/account-activity/validate-subscription.mdx b/x-api/account-activity/validate-subscription.mdx new file mode 100644 index 0000000..5075d8c --- /dev/null +++ b/x-api/account-activity/validate-subscription.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/account_activity/webhooks/{webhook_id}/subscriptions/all +--- \ No newline at end of file diff --git a/x-api/bookmarks/create-bookmark.mdx b/x-api/bookmarks/create-bookmark.mdx new file mode 100644 index 0000000..7474d20 --- /dev/null +++ b/x-api/bookmarks/create-bookmark.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/users/{id}/bookmarks +--- \ No newline at end of file diff --git a/x-api/bookmarks/delete-bookmark.mdx b/x-api/bookmarks/delete-bookmark.mdx new file mode 100644 index 0000000..78d0e40 --- /dev/null +++ b/x-api/bookmarks/delete-bookmark.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/users/{id}/bookmarks/{tweet_id} +--- \ No newline at end of file diff --git a/x-api/bookmarks/get-bookmark-folders.mdx b/x-api/bookmarks/get-bookmark-folders.mdx new file mode 100644 index 0000000..dfdfbee --- /dev/null +++ b/x-api/bookmarks/get-bookmark-folders.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/bookmarks/folders +--- \ No newline at end of file diff --git a/x-api/bookmarks/get-bookmarks-by-folder-id.mdx b/x-api/bookmarks/get-bookmarks-by-folder-id.mdx new file mode 100644 index 0000000..98c7e3b --- /dev/null +++ b/x-api/bookmarks/get-bookmarks-by-folder-id.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/bookmarks/folders/{folder_id} +--- \ No newline at end of file diff --git a/x-api/bookmarks/get-bookmarks.mdx b/x-api/bookmarks/get-bookmarks.mdx new file mode 100644 index 0000000..fc38942 --- /dev/null +++ b/x-api/bookmarks/get-bookmarks.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/bookmarks +--- \ No newline at end of file diff --git a/x-api/communities/get-community-by-id.mdx b/x-api/communities/get-community-by-id.mdx new file mode 100644 index 0000000..2670fff --- /dev/null +++ b/x-api/communities/get-community-by-id.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/communities/{id} +--- \ No newline at end of file diff --git a/x-api/compliance/get-compliance-job-by-id.mdx b/x-api/compliance/get-compliance-job-by-id.mdx new file mode 100644 index 0000000..57cc5c3 --- /dev/null +++ b/x-api/compliance/get-compliance-job-by-id.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/compliance/jobs/{id} +--- \ No newline at end of file diff --git a/x-api/compliance/get-compliance-jobs.mdx b/x-api/compliance/get-compliance-jobs.mdx new file mode 100644 index 0000000..95c296b --- /dev/null +++ b/x-api/compliance/get-compliance-jobs.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/compliance/jobs +--- \ No newline at end of file diff --git a/x-api/connection/terminate-all-connections.mdx b/x-api/connection/terminate-all-connections.mdx new file mode 100644 index 0000000..6f44993 --- /dev/null +++ b/x-api/connection/terminate-all-connections.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/connections/all +--- \ No newline at end of file diff --git a/x-api/direct-messages/create-dm-conversation.mdx b/x-api/direct-messages/create-dm-conversation.mdx new file mode 100644 index 0000000..d6c7dbf --- /dev/null +++ b/x-api/direct-messages/create-dm-conversation.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/dm_conversations +--- \ No newline at end of file diff --git a/x-api/direct-messages/create-dm-message-by-conversation-id.mdx b/x-api/direct-messages/create-dm-message-by-conversation-id.mdx new file mode 100644 index 0000000..956387e --- /dev/null +++ b/x-api/direct-messages/create-dm-message-by-conversation-id.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/dm_conversations/{dm_conversation_id}/messages +--- \ No newline at end of file diff --git a/x-api/direct-messages/create-dm-message-by-participant-id.mdx b/x-api/direct-messages/create-dm-message-by-participant-id.mdx new file mode 100644 index 0000000..4e9eb0f --- /dev/null +++ b/x-api/direct-messages/create-dm-message-by-participant-id.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/dm_conversations/with/{participant_id}/messages +--- \ No newline at end of file diff --git a/x-api/direct-messages/delete-dm-event.mdx b/x-api/direct-messages/delete-dm-event.mdx new file mode 100644 index 0000000..14a4269 --- /dev/null +++ b/x-api/direct-messages/delete-dm-event.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/dm_events/{event_id} +--- \ No newline at end of file diff --git a/x-api/direct-messages/get-dm-event-by-id.mdx b/x-api/direct-messages/get-dm-event-by-id.mdx new file mode 100644 index 0000000..03b648c --- /dev/null +++ b/x-api/direct-messages/get-dm-event-by-id.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/dm_events/{event_id} +--- \ No newline at end of file diff --git a/x-api/direct-messages/get-dm-events.mdx b/x-api/direct-messages/get-dm-events.mdx new file mode 100644 index 0000000..89969dc --- /dev/null +++ b/x-api/direct-messages/get-dm-events.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/dm_events +--- \ No newline at end of file diff --git a/x-api/general/get-openapi-spec.mdx b/x-api/general/get-openapi-spec.mdx new file mode 100644 index 0000000..4396504 --- /dev/null +++ b/x-api/general/get-openapi-spec.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/openapi.json +--- \ No newline at end of file diff --git a/x-api/lists/add-list-member.mdx b/x-api/lists/add-list-member.mdx new file mode 100644 index 0000000..f15a298 --- /dev/null +++ b/x-api/lists/add-list-member.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/lists/{id}/members +--- \ No newline at end of file diff --git a/x-api/lists/follow-list.mdx b/x-api/lists/follow-list.mdx new file mode 100644 index 0000000..e1220a1 --- /dev/null +++ b/x-api/lists/follow-list.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/users/{id}/followed_lists +--- \ No newline at end of file diff --git a/x-api/lists/get-followed-lists.mdx b/x-api/lists/get-followed-lists.mdx new file mode 100644 index 0000000..98d9c4a --- /dev/null +++ b/x-api/lists/get-followed-lists.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/followed_lists +--- \ No newline at end of file diff --git a/x-api/lists/get-list-by-id.mdx b/x-api/lists/get-list-by-id.mdx new file mode 100644 index 0000000..9680010 --- /dev/null +++ b/x-api/lists/get-list-by-id.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/lists/{id} +--- \ No newline at end of file diff --git a/x-api/lists/get-list-memberships.mdx b/x-api/lists/get-list-memberships.mdx new file mode 100644 index 0000000..1935f6b --- /dev/null +++ b/x-api/lists/get-list-memberships.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/list_memberships +--- \ No newline at end of file diff --git a/x-api/lists/get-owned-lists.mdx b/x-api/lists/get-owned-lists.mdx new file mode 100644 index 0000000..b3f4c75 --- /dev/null +++ b/x-api/lists/get-owned-lists.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/owned_lists +--- \ No newline at end of file diff --git a/x-api/lists/get-pinned-lists.mdx b/x-api/lists/get-pinned-lists.mdx new file mode 100644 index 0000000..1d70e95 --- /dev/null +++ b/x-api/lists/get-pinned-lists.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/pinned_lists +--- \ No newline at end of file diff --git a/x-api/lists/pin-list.mdx b/x-api/lists/pin-list.mdx new file mode 100644 index 0000000..06b0530 --- /dev/null +++ b/x-api/lists/pin-list.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/users/{id}/pinned_lists +--- \ No newline at end of file diff --git a/x-api/lists/remove-list-member.mdx b/x-api/lists/remove-list-member.mdx new file mode 100644 index 0000000..6fb0112 --- /dev/null +++ b/x-api/lists/remove-list-member.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/lists/{id}/members/{user_id} +--- \ No newline at end of file diff --git a/x-api/lists/unfollow-list.mdx b/x-api/lists/unfollow-list.mdx new file mode 100644 index 0000000..f9a9dd5 --- /dev/null +++ b/x-api/lists/unfollow-list.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/users/{id}/followed_lists/{list_id} +--- \ No newline at end of file diff --git a/x-api/lists/unpin-list.mdx b/x-api/lists/unpin-list.mdx new file mode 100644 index 0000000..fc06898 --- /dev/null +++ b/x-api/lists/unpin-list.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/users/{id}/pinned_lists/{list_id} +--- \ No newline at end of file diff --git a/x-api/media/append-media-upload.mdx b/x-api/media/append-media-upload.mdx new file mode 100644 index 0000000..42dcb11 --- /dev/null +++ b/x-api/media/append-media-upload.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/media/upload/{id}/append +--- \ No newline at end of file diff --git a/x-api/media/create-media-metadata.mdx b/x-api/media/create-media-metadata.mdx new file mode 100644 index 0000000..f8b4bdc --- /dev/null +++ b/x-api/media/create-media-metadata.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/media/metadata +--- \ No newline at end of file diff --git a/x-api/media/create-media-subtitles.mdx b/x-api/media/create-media-subtitles.mdx new file mode 100644 index 0000000..dbb9f3f --- /dev/null +++ b/x-api/media/create-media-subtitles.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/media/subtitles +--- \ No newline at end of file diff --git a/x-api/media/delete-media-subtitles.mdx b/x-api/media/delete-media-subtitles.mdx new file mode 100644 index 0000000..4a61666 --- /dev/null +++ b/x-api/media/delete-media-subtitles.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/media/subtitles +--- \ No newline at end of file diff --git a/x-api/media/finalize-media-upload.mdx b/x-api/media/finalize-media-upload.mdx new file mode 100644 index 0000000..4f9c0e4 --- /dev/null +++ b/x-api/media/finalize-media-upload.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/media/upload/{id}/finalize +--- \ No newline at end of file diff --git a/x-api/media/get-media-by-media-key.mdx b/x-api/media/get-media-by-media-key.mdx new file mode 100644 index 0000000..416c1dc --- /dev/null +++ b/x-api/media/get-media-by-media-key.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/media/{media_key} +--- \ No newline at end of file diff --git a/x-api/media/get-media-by-media-keys.mdx b/x-api/media/get-media-by-media-keys.mdx new file mode 100644 index 0000000..0e8b121 --- /dev/null +++ b/x-api/media/get-media-by-media-keys.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/media +--- \ No newline at end of file diff --git a/x-api/media/get-media-upload-status.mdx b/x-api/media/get-media-upload-status.mdx new file mode 100644 index 0000000..be28f5a --- /dev/null +++ b/x-api/media/get-media-upload-status.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/media/upload +--- \ No newline at end of file diff --git a/x-api/media/initialize-media-upload.mdx b/x-api/media/initialize-media-upload.mdx new file mode 100644 index 0000000..150143a --- /dev/null +++ b/x-api/media/initialize-media-upload.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/media/upload/initialize +--- \ No newline at end of file diff --git a/x-api/media/upload-media.mdx b/x-api/media/upload-media.mdx new file mode 100644 index 0000000..e6aa3e6 --- /dev/null +++ b/x-api/media/upload-media.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/media/upload +--- \ No newline at end of file diff --git a/x-api/posts/create-post.mdx b/x-api/posts/create-post.mdx new file mode 100644 index 0000000..7c8307b --- /dev/null +++ b/x-api/posts/create-post.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/tweets +--- \ No newline at end of file diff --git a/x-api/posts/delete-post.mdx b/x-api/posts/delete-post.mdx new file mode 100644 index 0000000..0adba30 --- /dev/null +++ b/x-api/posts/delete-post.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/tweets/{id} +--- \ No newline at end of file diff --git a/x-api/posts/get-28-hour-post-insights.mdx b/x-api/posts/get-28-hour-post-insights.mdx new file mode 100644 index 0000000..a623f27 --- /dev/null +++ b/x-api/posts/get-28-hour-post-insights.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/insights/28hr +--- \ No newline at end of file diff --git a/x-api/posts/get-count-of-all-posts.mdx b/x-api/posts/get-count-of-all-posts.mdx new file mode 100644 index 0000000..42cd08f --- /dev/null +++ b/x-api/posts/get-count-of-all-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/counts/all +--- \ No newline at end of file diff --git a/x-api/posts/get-count-of-recent-posts.mdx b/x-api/posts/get-count-of-recent-posts.mdx new file mode 100644 index 0000000..464df2b --- /dev/null +++ b/x-api/posts/get-count-of-recent-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/counts/recent +--- \ No newline at end of file diff --git a/x-api/posts/get-historical-post-insights.mdx b/x-api/posts/get-historical-post-insights.mdx new file mode 100644 index 0000000..7cc69f9 --- /dev/null +++ b/x-api/posts/get-historical-post-insights.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/insights/historical +--- \ No newline at end of file diff --git a/x-api/posts/get-liked-posts.mdx b/x-api/posts/get-liked-posts.mdx new file mode 100644 index 0000000..a56f559 --- /dev/null +++ b/x-api/posts/get-liked-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/liked_tweets +--- \ No newline at end of file diff --git a/x-api/posts/get-list-posts.mdx b/x-api/posts/get-list-posts.mdx new file mode 100644 index 0000000..bca06c2 --- /dev/null +++ b/x-api/posts/get-list-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/lists/{id}/tweets +--- \ No newline at end of file diff --git a/x-api/posts/get-mentions.mdx b/x-api/posts/get-mentions.mdx new file mode 100644 index 0000000..4d08989 --- /dev/null +++ b/x-api/posts/get-mentions.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/mentions +--- \ No newline at end of file diff --git a/x-api/posts/get-post-analytics.mdx b/x-api/posts/get-post-analytics.mdx new file mode 100644 index 0000000..961c610 --- /dev/null +++ b/x-api/posts/get-post-analytics.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/analytics +--- \ No newline at end of file diff --git a/x-api/posts/get-post-by-id.mdx b/x-api/posts/get-post-by-id.mdx new file mode 100644 index 0000000..00c223a --- /dev/null +++ b/x-api/posts/get-post-by-id.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/{id} +--- \ No newline at end of file diff --git a/x-api/posts/get-posts-by-ids.mdx b/x-api/posts/get-posts-by-ids.mdx new file mode 100644 index 0000000..8743691 --- /dev/null +++ b/x-api/posts/get-posts-by-ids.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets +--- \ No newline at end of file diff --git a/x-api/posts/get-posts.mdx b/x-api/posts/get-posts.mdx new file mode 100644 index 0000000..7b9b6cf --- /dev/null +++ b/x-api/posts/get-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/tweets +--- \ No newline at end of file diff --git a/x-api/posts/get-quoted-posts.mdx b/x-api/posts/get-quoted-posts.mdx new file mode 100644 index 0000000..57df7fd --- /dev/null +++ b/x-api/posts/get-quoted-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/{id}/quote_tweets +--- \ No newline at end of file diff --git a/x-api/posts/get-reposts.mdx b/x-api/posts/get-reposts.mdx new file mode 100644 index 0000000..71026dc --- /dev/null +++ b/x-api/posts/get-reposts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/{id}/retweets +--- \ No newline at end of file diff --git a/x-api/posts/get-timeline.mdx b/x-api/posts/get-timeline.mdx new file mode 100644 index 0000000..1705bcb --- /dev/null +++ b/x-api/posts/get-timeline.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/timelines/reverse_chronological +--- \ No newline at end of file diff --git a/x-api/posts/hide-reply.mdx b/x-api/posts/hide-reply.mdx new file mode 100644 index 0000000..bcb0c86 --- /dev/null +++ b/x-api/posts/hide-reply.mdx @@ -0,0 +1,3 @@ +--- +openapi: put /2/tweets/{tweet_id}/hidden +--- \ No newline at end of file diff --git a/x-api/posts/like-post.mdx b/x-api/posts/like-post.mdx new file mode 100644 index 0000000..e6197dc --- /dev/null +++ b/x-api/posts/like-post.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/users/{id}/likes +--- \ No newline at end of file diff --git a/x-api/posts/repost-post.mdx b/x-api/posts/repost-post.mdx new file mode 100644 index 0000000..8d6c6be --- /dev/null +++ b/x-api/posts/repost-post.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/users/{id}/retweets +--- \ No newline at end of file diff --git a/x-api/posts/search-all-posts.mdx b/x-api/posts/search-all-posts.mdx new file mode 100644 index 0000000..5b3db39 --- /dev/null +++ b/x-api/posts/search-all-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/search/all +--- \ No newline at end of file diff --git a/x-api/posts/search-recent-posts.mdx b/x-api/posts/search-recent-posts.mdx new file mode 100644 index 0000000..8559b17 --- /dev/null +++ b/x-api/posts/search-recent-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/search/recent +--- \ No newline at end of file diff --git a/x-api/posts/unlike-post.mdx b/x-api/posts/unlike-post.mdx new file mode 100644 index 0000000..41a1df7 --- /dev/null +++ b/x-api/posts/unlike-post.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/users/{id}/likes/{tweet_id} +--- \ No newline at end of file diff --git a/x-api/posts/unrepost-post.mdx b/x-api/posts/unrepost-post.mdx new file mode 100644 index 0000000..04622dc --- /dev/null +++ b/x-api/posts/unrepost-post.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/users/{id}/retweets/{source_tweet_id} +--- \ No newline at end of file diff --git a/x-api/spaces/get-space-by-id.mdx b/x-api/spaces/get-space-by-id.mdx new file mode 100644 index 0000000..6c70950 --- /dev/null +++ b/x-api/spaces/get-space-by-id.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/spaces/{id} +--- \ No newline at end of file diff --git a/x-api/spaces/get-space-posts.mdx b/x-api/spaces/get-space-posts.mdx new file mode 100644 index 0000000..7efff44 --- /dev/null +++ b/x-api/spaces/get-space-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/spaces/{id}/tweets +--- \ No newline at end of file diff --git a/x-api/spaces/get-space-ticket-buyers.mdx b/x-api/spaces/get-space-ticket-buyers.mdx new file mode 100644 index 0000000..56e2253 --- /dev/null +++ b/x-api/spaces/get-space-ticket-buyers.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/spaces/{id}/buyers +--- \ No newline at end of file diff --git a/x-api/spaces/get-spaces-by-creator-ids.mdx b/x-api/spaces/get-spaces-by-creator-ids.mdx new file mode 100644 index 0000000..dce7f72 --- /dev/null +++ b/x-api/spaces/get-spaces-by-creator-ids.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/spaces/by/creator_ids +--- \ No newline at end of file diff --git a/x-api/spaces/get-spaces-by-ids.mdx b/x-api/spaces/get-spaces-by-ids.mdx new file mode 100644 index 0000000..309f357 --- /dev/null +++ b/x-api/spaces/get-spaces-by-ids.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/spaces +--- \ No newline at end of file diff --git a/x-api/spaces/search-spaces.mdx b/x-api/spaces/search-spaces.mdx new file mode 100644 index 0000000..eb3ee21 --- /dev/null +++ b/x-api/spaces/search-spaces.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/spaces/search +--- \ No newline at end of file diff --git a/x-api/stream/get-stream-rule-counts.mdx b/x-api/stream/get-stream-rule-counts.mdx new file mode 100644 index 0000000..e4708bd --- /dev/null +++ b/x-api/stream/get-stream-rule-counts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/search/stream/rules/counts +--- \ No newline at end of file diff --git a/x-api/stream/get-stream-rules.mdx b/x-api/stream/get-stream-rules.mdx new file mode 100644 index 0000000..33f6bcc --- /dev/null +++ b/x-api/stream/get-stream-rules.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/search/stream/rules +--- \ No newline at end of file diff --git a/x-api/stream/stream-10-sampled-posts.mdx b/x-api/stream/stream-10-sampled-posts.mdx new file mode 100644 index 0000000..eb757f9 --- /dev/null +++ b/x-api/stream/stream-10-sampled-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/sample10/stream +--- \ No newline at end of file diff --git a/x-api/stream/stream-all-likes.mdx b/x-api/stream/stream-all-likes.mdx new file mode 100644 index 0000000..396ea3b --- /dev/null +++ b/x-api/stream/stream-all-likes.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/likes/firehose/stream +--- \ No newline at end of file diff --git a/x-api/stream/stream-all-posts.mdx b/x-api/stream/stream-all-posts.mdx new file mode 100644 index 0000000..0176b63 --- /dev/null +++ b/x-api/stream/stream-all-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/firehose/stream +--- \ No newline at end of file diff --git a/x-api/stream/stream-english-posts.mdx b/x-api/stream/stream-english-posts.mdx new file mode 100644 index 0000000..05f99f6 --- /dev/null +++ b/x-api/stream/stream-english-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/firehose/stream/lang/en +--- \ No newline at end of file diff --git a/x-api/stream/stream-filtered-posts.mdx b/x-api/stream/stream-filtered-posts.mdx new file mode 100644 index 0000000..67ae7d5 --- /dev/null +++ b/x-api/stream/stream-filtered-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/search/stream +--- \ No newline at end of file diff --git a/x-api/stream/stream-japanese-posts.mdx b/x-api/stream/stream-japanese-posts.mdx new file mode 100644 index 0000000..2611391 --- /dev/null +++ b/x-api/stream/stream-japanese-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/firehose/stream/lang/ja +--- \ No newline at end of file diff --git a/x-api/stream/stream-korean-posts.mdx b/x-api/stream/stream-korean-posts.mdx new file mode 100644 index 0000000..53b7799 --- /dev/null +++ b/x-api/stream/stream-korean-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/firehose/stream/lang/ko +--- \ No newline at end of file diff --git a/x-api/stream/stream-likes-compliance-data.mdx b/x-api/stream/stream-likes-compliance-data.mdx new file mode 100644 index 0000000..ab366b9 --- /dev/null +++ b/x-api/stream/stream-likes-compliance-data.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/likes/compliance/stream +--- \ No newline at end of file diff --git a/x-api/stream/stream-portuguese-posts.mdx b/x-api/stream/stream-portuguese-posts.mdx new file mode 100644 index 0000000..f1da8cd --- /dev/null +++ b/x-api/stream/stream-portuguese-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/firehose/stream/lang/pt +--- \ No newline at end of file diff --git a/x-api/stream/stream-post-labels.mdx b/x-api/stream/stream-post-labels.mdx new file mode 100644 index 0000000..48a7820 --- /dev/null +++ b/x-api/stream/stream-post-labels.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/label/stream +--- \ No newline at end of file diff --git a/x-api/stream/stream-posts-compliance-data.mdx b/x-api/stream/stream-posts-compliance-data.mdx new file mode 100644 index 0000000..dc834d1 --- /dev/null +++ b/x-api/stream/stream-posts-compliance-data.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/compliance/stream +--- \ No newline at end of file diff --git a/x-api/stream/stream-sampled-likes.mdx b/x-api/stream/stream-sampled-likes.mdx new file mode 100644 index 0000000..f073bb2 --- /dev/null +++ b/x-api/stream/stream-sampled-likes.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/likes/sample10/stream +--- \ No newline at end of file diff --git a/x-api/stream/stream-sampled-posts.mdx b/x-api/stream/stream-sampled-posts.mdx new file mode 100644 index 0000000..140cea9 --- /dev/null +++ b/x-api/stream/stream-sampled-posts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/sample/stream +--- \ No newline at end of file diff --git a/x-api/stream/stream-users-compliance-data.mdx b/x-api/stream/stream-users-compliance-data.mdx new file mode 100644 index 0000000..a789375 --- /dev/null +++ b/x-api/stream/stream-users-compliance-data.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/compliance/stream +--- \ No newline at end of file diff --git a/x-api/stream/update-stream-rules.mdx b/x-api/stream/update-stream-rules.mdx new file mode 100644 index 0000000..e69e135 --- /dev/null +++ b/x-api/stream/update-stream-rules.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/tweets/search/stream/rules +--- \ No newline at end of file diff --git a/x-api/trends/get-trends-by-woeid.mdx b/x-api/trends/get-trends-by-woeid.mdx new file mode 100644 index 0000000..c591cdf --- /dev/null +++ b/x-api/trends/get-trends-by-woeid.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/trends/by/woeid/{woeid} +--- \ No newline at end of file diff --git a/x-api/usage/get-usage.mdx b/x-api/usage/get-usage.mdx new file mode 100644 index 0000000..fe62411 --- /dev/null +++ b/x-api/usage/get-usage.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/usage/tweets +--- \ No newline at end of file diff --git a/x-api/users/block-dms.mdx b/x-api/users/block-dms.mdx new file mode 100644 index 0000000..6b9e9b8 --- /dev/null +++ b/x-api/users/block-dms.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/users/{id}/dm/block +--- \ No newline at end of file diff --git a/x-api/users/get-blocking.mdx b/x-api/users/get-blocking.mdx new file mode 100644 index 0000000..8ca0ad3 --- /dev/null +++ b/x-api/users/get-blocking.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/blocking +--- \ No newline at end of file diff --git a/x-api/users/get-followers.mdx b/x-api/users/get-followers.mdx new file mode 100644 index 0000000..adb2d22 --- /dev/null +++ b/x-api/users/get-followers.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/followers +--- \ No newline at end of file diff --git a/x-api/users/get-following.mdx b/x-api/users/get-following.mdx new file mode 100644 index 0000000..2995b7a --- /dev/null +++ b/x-api/users/get-following.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/following +--- \ No newline at end of file diff --git a/x-api/users/get-liking-users.mdx b/x-api/users/get-liking-users.mdx new file mode 100644 index 0000000..2c577cb --- /dev/null +++ b/x-api/users/get-liking-users.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/{id}/liking_users +--- \ No newline at end of file diff --git a/x-api/users/get-list-followers.mdx b/x-api/users/get-list-followers.mdx new file mode 100644 index 0000000..d066094 --- /dev/null +++ b/x-api/users/get-list-followers.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/lists/{id}/followers +--- \ No newline at end of file diff --git a/x-api/users/get-list-members.mdx b/x-api/users/get-list-members.mdx new file mode 100644 index 0000000..fed3c12 --- /dev/null +++ b/x-api/users/get-list-members.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/lists/{id}/members +--- \ No newline at end of file diff --git a/x-api/users/get-muting.mdx b/x-api/users/get-muting.mdx new file mode 100644 index 0000000..dbe6684 --- /dev/null +++ b/x-api/users/get-muting.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id}/muting +--- \ No newline at end of file diff --git a/x-api/users/get-my-user.mdx b/x-api/users/get-my-user.mdx new file mode 100644 index 0000000..bad7698 --- /dev/null +++ b/x-api/users/get-my-user.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/me +--- \ No newline at end of file diff --git a/x-api/users/get-reposted-by.mdx b/x-api/users/get-reposted-by.mdx new file mode 100644 index 0000000..a50f659 --- /dev/null +++ b/x-api/users/get-reposted-by.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/tweets/{id}/retweeted_by +--- \ No newline at end of file diff --git a/x-api/users/get-reposts-of-me.mdx b/x-api/users/get-reposts-of-me.mdx new file mode 100644 index 0000000..7a00370 --- /dev/null +++ b/x-api/users/get-reposts-of-me.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/reposts_of_me +--- \ No newline at end of file diff --git a/x-api/users/get-user-by-id.mdx b/x-api/users/get-user-by-id.mdx new file mode 100644 index 0000000..6ff1b13 --- /dev/null +++ b/x-api/users/get-user-by-id.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/{id} +--- \ No newline at end of file diff --git a/x-api/users/get-user-by-username.mdx b/x-api/users/get-user-by-username.mdx new file mode 100644 index 0000000..bcd6659 --- /dev/null +++ b/x-api/users/get-user-by-username.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/by/username/{username} +--- \ No newline at end of file diff --git a/x-api/users/get-users-by-ids.mdx b/x-api/users/get-users-by-ids.mdx new file mode 100644 index 0000000..cbbbf5c --- /dev/null +++ b/x-api/users/get-users-by-ids.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users +--- \ No newline at end of file diff --git a/x-api/users/get-users-by-usernames.mdx b/x-api/users/get-users-by-usernames.mdx new file mode 100644 index 0000000..13887ad --- /dev/null +++ b/x-api/users/get-users-by-usernames.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/by +--- \ No newline at end of file diff --git a/x-api/users/mute-user.mdx b/x-api/users/mute-user.mdx new file mode 100644 index 0000000..2700f5d --- /dev/null +++ b/x-api/users/mute-user.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/users/{id}/muting +--- \ No newline at end of file diff --git a/x-api/users/search-users.mdx b/x-api/users/search-users.mdx new file mode 100644 index 0000000..04ae035 --- /dev/null +++ b/x-api/users/search-users.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/users/search +--- \ No newline at end of file diff --git a/x-api/users/unblock-dms.mdx b/x-api/users/unblock-dms.mdx new file mode 100644 index 0000000..93fa390 --- /dev/null +++ b/x-api/users/unblock-dms.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/users/{id}/dm/unblock +--- \ No newline at end of file diff --git a/x-api/users/unmute-user.mdx b/x-api/users/unmute-user.mdx new file mode 100644 index 0000000..1dca169 --- /dev/null +++ b/x-api/users/unmute-user.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/users/{source_user_id}/muting/{target_user_id} +--- \ No newline at end of file diff --git a/x-api/webhooks/create-webhook.mdx b/x-api/webhooks/create-webhook.mdx new file mode 100644 index 0000000..c170a7f --- /dev/null +++ b/x-api/webhooks/create-webhook.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /2/webhooks +--- \ No newline at end of file diff --git a/x-api/webhooks/delete-webhook.mdx b/x-api/webhooks/delete-webhook.mdx new file mode 100644 index 0000000..32abbe0 --- /dev/null +++ b/x-api/webhooks/delete-webhook.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /2/webhooks/{webhook_id} +--- \ No newline at end of file diff --git a/x-api/webhooks/get-webhook.mdx b/x-api/webhooks/get-webhook.mdx new file mode 100644 index 0000000..51cec55 --- /dev/null +++ b/x-api/webhooks/get-webhook.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /2/webhooks +--- \ No newline at end of file diff --git a/x-api/webhooks/validate-webhook.mdx b/x-api/webhooks/validate-webhook.mdx new file mode 100644 index 0000000..952c5b6 --- /dev/null +++ b/x-api/webhooks/validate-webhook.mdx @@ -0,0 +1,3 @@ +--- +openapi: put /2/webhooks/{webhook_id} +--- \ No newline at end of file From dae34c4ce76b857d8a174ecc12c9fca74d16aa5d Mon Sep 17 00:00:00 2001 From: Taylor Caldwell Date: Mon, 28 Jul 2025 14:30:56 -0700 Subject: [PATCH 28/34] fix redirects --- docs.json | 60 ------------------------------------------------------- 1 file changed, 60 deletions(-) diff --git a/docs.json b/docs.json index f17dbf7..3aca24e 100644 --- a/docs.json +++ b/docs.json @@ -1174,30 +1174,6 @@ "source": "/x-api/communities/communities-lookup-by-community-id", "destination": "/x-api/communities/get-community-by-id" }, - { - "source": "/x-api/communities/search-communities", - "destination": "/x-api/communities/search-communities" - }, - { - "source": "/x-api/community-notes/create-a-community-note", - "destination": "/x-api/community-notes/create-a-community-note" - }, - { - "source": "/x-api/community-notes/delete-a-community-note", - "destination": "/x-api/community-notes/delete-a-community-note" - }, - { - "source": "/x-api/community-notes/search-for-community-notes-written", - "destination": "/x-api/community-notes/search-for-community-notes-written" - }, - { - "source": "/x-api/community-notes/search-for-posts-eligible-for-community-notes", - "destination": "/x-api/community-notes/search-for-posts-eligible-for-community-notes" - }, - { - "source": "/x-api/compliance/create-compliance-job", - "destination": "/x-api/compliance/create-compliance-job" - }, { "source": "/x-api/compliance/get-compliance-job", "destination": "/x-api/compliance/get-compliance-job-by-id" @@ -1234,14 +1210,6 @@ "source": "/x-api/direct-messages/get-dm-events-by-id", "destination": "/x-api/direct-messages/get-dm-event-by-id" }, - { - "source": "/x-api/direct-messages/get-dm-events-for-a-dm-conversation-1", - "destination": "/x-api/direct-messages/get-dm-events-for-a-dm-conversation-1" - }, - { - "source": "/x-api/direct-messages/get-dm-events-for-a-dm-conversation", - "destination": "/x-api/direct-messages/get-dm-events-for-a-dm-conversation" - }, { "source": "/x-api/direct-messages/get-recent-dm-events", "destination": "/x-api/direct-messages/get-dm-events" @@ -1266,14 +1234,6 @@ "source": "/x-api/lists/add-a-list-member", "destination": "/x-api/lists/add-list-member" }, - { - "source": "/x-api/lists/create-list", - "destination": "/x-api/lists/create-list" - }, - { - "source": "/x-api/lists/delete-list", - "destination": "/x-api/lists/delete-list" - }, { "source": "/x-api/lists/follow-a-list", "destination": "/x-api/lists/follow-list" @@ -1314,14 +1274,6 @@ "source": "/x-api/lists/unpin-a-list", "destination": "/x-api/lists/unpin-list" }, - { - "source": "/x-api/lists/update-list", - "destination": "/x-api/lists/update-list" - }, - { - "source": "/x-api/media/get-media-analytics", - "destination": "/x-api/media/get-media-analytics" - }, { "source": "/x-api/media/media-lookup-by-media-key-1", "destination": "/x-api/media/get-media-by-media-key" @@ -1390,10 +1342,6 @@ "source": "/x-api/spaces/space-lookup-up-space-ids", "destination": "/x-api/spaces/get-spaces-by-ids" }, - { - "source": "/x-api/trends/get-personalized-trends", - "destination": "/x-api/trends/get-personalized-trends" - }, { "source": "/x-api/trends/trends", "destination": "/x-api/trends/get-trends-by-woeid" @@ -1546,10 +1494,6 @@ "source": "/x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-unblocked-by-the-authenticated-request-user", "destination": "/x-api/users/unblock-dms" }, - { - "source": "/x-api/users/follow-user", - "destination": "/x-api/users/follow-user" - }, { "source": "/x-api/users/followers-by-user-id", "destination": "/x-api/users/get-followers" @@ -1590,10 +1534,6 @@ "source": "/x-api/users/returns-user-objects-that-have-retweeted-the-provided-post-id", "destination": "/x-api/users/get-reposted-by" }, - { - "source": "/x-api/users/unfollow-user", - "destination": "/x-api/users/unfollow-user" - }, { "source": "/x-api/users/unmute-user-by-user-id", "destination": "/x-api/users/unmute-user" From 72b5a96de950ee1bc54ba2065cf7ffdc187c6053 Mon Sep 17 00:00:00 2001 From: Taylor Caldwell Date: Tue, 29 Jul 2025 10:47:51 -0700 Subject: [PATCH 29/34] Update OpenAPI spec --- openapi.json | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/openapi.json b/openapi.json index 43f50af..efece87 100644 --- a/openapi.json +++ b/openapi.json @@ -2,7 +2,7 @@ "openapi" : "3.0.0", "info" : { "description" : "X API v2 available endpoints", - "version" : "2.145", + "version" : "2.146", "title" : "X API v2", "termsOfService" : "https://developer.x.com/en/developer-terms/agreement-and-policy.html", "contact" : { @@ -11395,6 +11395,9 @@ }, "AltText" : { "type" : "object", + "required" : [ + "text" + ], "properties" : { "text" : { "type" : "string", @@ -11765,6 +11768,9 @@ }, "ContentExpiration" : { "type" : "object", + "required" : [ + "timestamp_sec" + ], "properties" : { "timestamp_sec" : { "type" : "number", @@ -12284,6 +12290,9 @@ }, "DomainRestrictions" : { "type" : "object", + "required" : [ + "whitelist" + ], "properties" : { "whitelist" : { "type" : "array", @@ -12608,6 +12617,10 @@ }, "FoundMediaOrigin" : { "type" : "object", + "required" : [ + "provider", + "id" + ], "properties" : { "id" : { "type" : "string", @@ -15252,6 +15265,9 @@ }, "ManagementInfo" : { "type" : "object", + "required" : [ + "managed" + ], "properties" : { "managed" : { "type" : "boolean", @@ -16610,6 +16626,9 @@ }, "PreviewImage" : { "type" : "object", + "required" : [ + "media_key" + ], "properties" : { "media_key" : { "type" : "object", @@ -17103,6 +17122,9 @@ }, "SharedInfo" : { "type" : "object", + "required" : [ + "shared" + ], "properties" : { "shared" : { "type" : "boolean", @@ -17323,6 +17345,9 @@ }, "StickerInfo" : { "type" : "object", + "required" : [ + "stickers" + ], "properties" : { "stickers" : { "type" : "array", @@ -18237,6 +18262,11 @@ "verified" ] }, + "share_with_followers" : { + "type" : "boolean", + "description" : "Share community post with followers too.", + "default" : false + }, "text" : { "$ref" : "#/components/schemas/TweetText" } @@ -18694,6 +18724,9 @@ }, "UploadSource" : { "type" : "object", + "required" : [ + "upload_source" + ], "properties" : { "upload_source" : { "type" : "string", From d7324192891abfae4b9e580d8d7e6c77d4e30427 Mon Sep 17 00:00:00 2001 From: Taylor Caldwell Date: Tue, 29 Jul 2025 10:56:07 -0700 Subject: [PATCH 30/34] revert --- openapi.json | 42401 ++++++++++++++++++++++++------------------------- 1 file changed, 21184 insertions(+), 21217 deletions(-) diff --git a/openapi.json b/openapi.json index efece87..4699317 100644 --- a/openapi.json +++ b/openapi.json @@ -1,21218 +1,21185 @@ { - "openapi" : "3.0.0", - "info" : { - "description" : "X API v2 available endpoints", - "version" : "2.146", - "title" : "X API v2", - "termsOfService" : "https://developer.x.com/en/developer-terms/agreement-and-policy.html", - "contact" : { - "name" : "X Developers", - "url" : "https://developer.x.com/" - }, - "license" : { - "name" : "X Developer Agreement and Policy", - "url" : "https://developer.x.com/en/developer-terms/agreement-and-policy.html" - } - }, - "paths" : { - "/2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all" : { - "post" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Account Activity" - ], - "summary" : "Create replay job", - "description" : "Creates a replay job to retrieve activities from up to the past 5 days for all subscriptions associated with a given webhook.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId" : "createAccountActivityReplayJob", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The unique identifier for the webhook configuration.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - }, - { - "name" : "from_date", - "in" : "query", - "description" : "The oldest (starting) UTC timestamp (inclusive) from which events will be provided, in `yyyymmddhhmm` format.", - "required" : true, - "schema" : { - "type" : "string", - "pattern" : "^\\d{12}$", - "example" : "202504242000" - }, - "style" : "form" - }, - { - "name" : "to_date", - "in" : "query", - "description" : "The latest (ending) UTC timestamp (exclusive) up to which events will be provided, in `yyyymmddhhmm` format.", - "required" : true, - "schema" : { - "type" : "string", - "pattern" : "^\\d{12}$", - "example" : "202504242200" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ReplayJobCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/account_activity/subscriptions/count" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Account Activity" - ], - "summary" : "Get subscription count", - "description" : "Retrieves a count of currently active Account Activity subscriptions.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId" : "getAccountActivitySubscriptionCount", - "parameters" : [ ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsCountGetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/all" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Account Activity" - ], - "summary" : "Validate subscription", - "description" : "Checks a user’s Account Activity subscription for a given webhook.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId" : "validateAccountActivitySubscription", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The webhook ID to check subscription against.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsGetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "AAASubscriptions" - ], - "summary" : "Create subscription", - "description" : "Creates an Account Activity subscription for the user and the given webhook.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId" : "createAccountActivitySubscription", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The webhook ID to check subscription against.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsCreateRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/all/list" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Account Activity" - ], - "summary" : "Get subscriptions", - "description" : "Retrieves a list of all active subscriptions for a given webhook.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId" : "getAccountActivitySubscriptions", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The webhook ID to pull subscriptions for.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsListGetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all" : { - "delete" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Account Activity" - ], - "summary" : "Delete subscription", - "description" : "Deletes an Account Activity subscription for the given webhook and user ID.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId" : "deleteAccountActivitySubscription", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The webhook ID to check subscription against.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - }, - { - "name" : "user_id", - "in" : "path", - "description" : "User ID to unsubscribe from.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubscriptionsDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/communities/search" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Communities" - ], - "summary" : "Search Communities", - "description" : "Retrieves a list of Communities matching the specified search query.", - "externalDocs" : { - "url" : "https://developer.x.com" - }, - "operationId" : "searchCommunities", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "Query to search communities.", - "required" : true, - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 4096, - "example" : "Love" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of search results to be returned by a request.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 10, - "maximum" : 100, - "format" : "int32", - "default" : 10 - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/NextToken" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/NextToken" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/CommunityFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2CommunitiesSearchResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/communities/{id}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Communities" - ], - "summary" : "Get Community by ID", - "description" : "Retrieves details of a specific Community by its ID.", - "externalDocs" : { - "url" : "https://developer.x.com/en/docs/x-api/communities/api-reference/get-communities-id" - }, - "operationId" : "getCommunitiesById", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Community.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/CommunityId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/CommunityFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2CommunitiesIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/compliance/jobs" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Compliance" - ], - "summary" : "Get Compliance Jobs", - "description" : "Retrieves a list of Compliance Jobs filtered by job type and optional status.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs" - }, - "operationId" : "getComplianceJobs", - "parameters" : [ - { - "name" : "type", - "in" : "query", - "description" : "Type of Compliance Job to list.", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ - "tweets", - "users" - ] - }, - "style" : "form" - }, - { - "name" : "status", - "in" : "query", - "description" : "Status of Compliance Job to list.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "created", - "in_progress", - "failed", - "complete" - ] - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/ComplianceJobFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ComplianceJobsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Compliance" - ], - "summary" : "Create Compliance Job", - "description" : "Creates a new Compliance Job for the specified job type.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs" - }, - "operationId" : "createComplianceJobs", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateComplianceJobRequest" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateComplianceJobResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/compliance/jobs/{id}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Compliance" - ], - "summary" : "Get Compliance Job by ID", - "description" : "Retrieves details of a specific Compliance Job by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id" - }, - "operationId" : "getComplianceJobsById", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Compliance Job to retrieve.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/JobId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/ComplianceJobFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ComplianceJobsIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/connections/all" : { - "delete" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Connection" - ], - "summary" : "Terminate all connections", - "description" : "Terminates all active streaming connections for the authenticated application.", - "externalDocs" : { - "url" : "https://developer.x.com" - }, - "operationId" : "deleteAllConnections", - "parameters" : [ ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/KillAllConnectionsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_conversations" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Create DM conversation", - "description" : "Initiates a new direct message conversation with specified participants.", - "operationId" : "createDmConversations", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateDmConversationRequest" - } - } - } - }, - "responses" : { - "201" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_conversations/with/{participant_id}/dm_events" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Get DM events for a DM conversation", - "description" : "Retrieves direct message events for a specific conversation.", - "operationId" : "getDmEventsByParticipantId", - "parameters" : [ - { - "name" : "participant_id", - "in" : "path", - "description" : "The ID of the participant user for the One to One DM conversation.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "name" : "event_types", - "in" : "query", - "description" : "The set of event_types to include in the results.", - "required" : false, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default" : [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example" : [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref" : "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2DmConversationsWithParticipantIdDmEventsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_conversations/with/{participant_id}/messages" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Create DM message by participant ID", - "description" : "Sends a new direct message to a specific participant by their ID.", - "operationId" : "createDmByParticipantId", - "parameters" : [ - { - "name" : "participant_id", - "in" : "path", - "description" : "The ID of the recipient user that will receive the DM.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateMessageRequest" - } - } - } - }, - "responses" : { - "201" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_conversations/{dm_conversation_id}/messages" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Create DM message by conversation ID", - "description" : "Sends a new direct message to a specific conversation by its ID.", - "operationId" : "createDmByConversationId", - "parameters" : [ - { - "name" : "dm_conversation_id", - "in" : "path", - "description" : "The DM Conversation ID.", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateMessageRequest" - } - } - } - }, - "responses" : { - "201" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_conversations/{id}/dm_events" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Get DM events for a DM conversation", - "description" : "Retrieves direct message events for a specific conversation.", - "operationId" : "getDmConversationsIdDmEvents", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The DM conversation ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/DmConversationId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "name" : "event_types", - "in" : "query", - "description" : "The set of event_types to include in the results.", - "required" : false, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default" : [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example" : [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref" : "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2DmConversationsIdDmEventsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_events" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Get DM events", - "description" : "Retrieves a list of recent direct message events across all conversations.", - "operationId" : "getDmEvents", - "parameters" : [ - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "name" : "event_types", - "in" : "query", - "description" : "The set of event_types to include in the results.", - "required" : false, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default" : [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example" : [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref" : "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2DmEventsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/dm_events/{event_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "dm.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Delete DM event", - "description" : "Deletes a specific direct message event by its ID, if owned by the authenticated user.", - "operationId" : "deleteDmEvents", - "parameters" : [ - { - "name" : "event_id", - "in" : "path", - "description" : "The ID of the direct-message event to delete.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/DmEventId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/DeleteDmResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Direct Messages" - ], - "summary" : "Get DM event by ID", - "description" : "Retrieves details of a specific direct message event by its ID.", - "operationId" : "getDmEventsById", - "parameters" : [ - { - "name" : "event_id", - "in" : "path", - "description" : "dm event id.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/DmEventId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref" : "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2DmEventsEventIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/insights/28hr" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get 28-hour Post insights", - "description" : "Retrieves engagement metrics for specified Posts over the last 28 hours.", - "operationId" : "getInsights28Hr", - "parameters" : [ - { - "name" : "tweet_ids", - "in" : "query", - "description" : "List of PostIds for 28hr metrics.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 25, - "uniqueItems" : true, - "items" : { - "$ref" : "#/components/schemas/TweetId" - }, - "example" : [ - "20" - ] - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "granularity of metrics response.", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ - "Daily", - "Hourly", - "Weekly", - "Total" - ], - "example" : "Total" - }, - "style" : "form" - }, - { - "name" : "requested_metrics", - "in" : "query", - "description" : "request metrics for historical request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "AppInstallAttempts", - "AppOpens", - "DetailExpands", - "EmailTweet", - "Engagements", - "Follows", - "HashtagClicks", - "Impressions", - "Likes", - "LinkClicks", - "MediaEngagements", - "MediaViews", - "PermalinkClicks", - "ProfileVisits", - "QuoteTweets", - "Replies", - "Retweets", - "UniqueVideoViews", - "UrlClicks", - "UserProfileClicks", - "VideoCompletions", - "VideoPlayed25Percent", - "VideoPlayed50Percent", - "VideoPlayed75Percent", - "VideoStarts", - "VideoViews" - ] - } - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/EngagementFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2Insights28hrResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/insights/historical" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get historical Post insights", - "description" : "Retrieves historical engagement metrics for specified Posts within a defined time range.", - "operationId" : "getInsightsHistorical", - "parameters" : [ - { - "name" : "tweet_ids", - "in" : "query", - "description" : "List of PostIds for historical metrics.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 25, - "uniqueItems" : true, - "items" : { - "$ref" : "#/components/schemas/TweetId" - }, - "example" : [ - "20" - ] - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "granularity of metrics response.", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ - "Daily", - "Hourly", - "Weekly", - "Total" - ], - "example" : "Total" - }, - "style" : "form" - }, - { - "name" : "requested_metrics", - "in" : "query", - "description" : "request metrics for historical request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "AppInstallAttempts", - "AppOpens", - "DetailExpands", - "EmailTweet", - "Engagements", - "Follows", - "HashtagClicks", - "Impressions", - "Likes", - "LinkClicks", - "MediaEngagements", - "MediaViews", - "PermalinkClicks", - "ProfileVisits", - "QuoteTweets", - "Replies", - "Retweets", - "UniqueVideoViews", - "UrlClicks", - "UserProfileClicks", - "VideoCompletions", - "VideoPlayed25Percent", - "VideoPlayed50Percent", - "VideoPlayed75Percent", - "VideoStarts", - "VideoViews" - ] - } - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/EngagementFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2InsightsHistoricalResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/likes/compliance/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Compliance" - ], - "summary" : "Stream Likes compliance data", - "description" : "Streams all compliance data related to Likes for Users.", - "operationId" : "streamLikesCompliance", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Likes Compliance events will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Likes Compliance events will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/LikesComplianceStreamResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/likes/firehose/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Likes" - ], - "summary" : "Stream all Likes", - "description" : "Streams all public Likes in real-time.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-likes-firehose-stream" - }, - "operationId" : "streamLikesFirehose", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 20, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/LikeWithTweetAuthorFieldsParameter" - }, - { - "$ref" : "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingLikeResponseV2" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/likes/sample10/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Likes" - ], - "summary" : "Stream sampled Likes", - "description" : "Streams a 10% sample of public Likes in real-time.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/likes/firehose/api-reference/get-likes-sample10-stream" - }, - "operationId" : "streamLikesSample10", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 2, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/LikeWithTweetAuthorFieldsParameter" - }, - { - "$ref" : "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingLikeResponseV2" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/lists" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.read", - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Create List", - "description" : "Creates a new List for the authenticated user.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists" - }, - "operationId" : "createLists", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListCreateRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/lists/{id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Delete List", - "description" : "Deletes a specific List owned by the authenticated user by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id" - }, - "operationId" : "deleteLists", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List to delete.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Get List by ID", - "description" : "Retrieves details of a specific List by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id" - }, - "operationId" : "getListsById", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/ListFieldsParameter" - }, - { - "$ref" : "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ListsIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "put" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Update List", - "description" : "Updates the details of a specific List owned by the authenticated user by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id" - }, - "operationId" : "updateLists", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List to modify.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListUpdateRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListUpdateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/lists/{id}/followers" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get List followers", - "description" : "Retrieves a list of Users who follow a specific List by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" - }, - "operationId" : "getListsFollowers", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ListsIdFollowersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/lists/{id}/members" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get List members", - "description" : "Retrieves a list of Users who are members of a specific List by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" - }, - "operationId" : "getListsMembers", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ListsIdMembersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Add List member", - "description" : "Adds a User to a specific List by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members" - }, - "operationId" : "addListsMember", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List for which to add a member.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListAddUserRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListMutateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/lists/{id}/members/{user_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Remove List member", - "description" : "Removes a User from a specific List by its ID and the User’s ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id" - }, - "operationId" : "removeListsMemberByUserId", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List to remove a member.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - }, - { - "name" : "user_id", - "in" : "path", - "description" : "The ID of User that will be removed from the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListMutateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/lists/{id}/tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get List Posts", - "description" : "Retrieves a list of Posts associated with a specific List by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets" - }, - "operationId" : "getListsPosts", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2ListsIdTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/media" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Get Media by media keys", - "description" : "Retrieves details of Media files by their media keys.", - "externalDocs" : { - "url" : "https://developer.x.com" - }, - "operationId" : "getMediaByMediaKeys", - "parameters" : [ - { - "name" : "media_keys", - "in" : "query", - "description" : "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/MediaKey" - } - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2MediaResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/media/analytics" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Get Media analytics", - "description" : "Retrieves analytics data for media.", - "operationId" : "getMediaAnalytics", - "parameters" : [ - { - "name" : "media_keys", - "in" : "query", - "description" : "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/MediaKey" - } - }, - "explode" : false, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "The granularity for the search counts results.", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ - "hourly", - "daily", - "total" - ], - "default" : "daily" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/MediaAnalyticsFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaAnalytics" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/media/metadata" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Create Media metadata", - "description" : "Creates metadata for a Media file.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-metadata-create#metadata-create" - }, - "operationId" : "createMediaMetadata", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MetadataCreateRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MetadataCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/media/subtitles" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Delete Media subtitles", - "description" : "Deletes subtitles for a specific Media file.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-subtitles-delete" - }, - "operationId" : "deleteMediaSubtitles", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubtitlesDeleteRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubtitlesDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Create Media subtitles", - "description" : "Creates subtitles for a specific Media file.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-subtitles-create" - }, - "operationId" : "createMediaSubtitles", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubtitlesCreateRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SubtitlesCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/media/upload" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Get Media upload status", - "description" : "Retrieves the status of a Media upload by its ID.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-upload-status#media-upload-status" - }, - "operationId" : "getMediaUploadStatus", - "parameters" : [ - { - "name" : "media_id", - "in" : "query", - "description" : "Media id for the requested media upload status.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/MediaId" - }, - "style" : "form" - }, - { - "name" : "command", - "in" : "query", - "description" : "The command for the media upload request.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "STATUS" - ] - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Upload media", - "description" : "Uploads a media file for use in posts or other content.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-upload" - }, - "operationId" : "mediaUpload", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadRequestOneShot" - } - }, - "multipart/form-data" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadRequestOneShot" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/media/upload/initialize" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Initialize media upload", - "description" : "Initializes a media upload.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-upload" - }, - "operationId" : "initializeMediaUpload", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadConfigRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/media/upload/{id}/append" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Append Media upload", - "description" : "Appends data to a Media upload request.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-upload" - }, - "operationId" : "appendMediaUpload", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The media identifier for the media to perform the append operation.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/MediaId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadAppendRequest" - } - }, - "multipart/form-data" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadAppendRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadAppendResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/media/upload/{id}/finalize" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "media.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Finalize Media upload", - "description" : "Finalizes a Media upload request.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/media/media-upload" - }, - "operationId" : "finalizeMediaUpload", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The media id of the targeted media to finalize.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/MediaId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/media/{media_key}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Media" - ], - "summary" : "Get Media by media key", - "description" : "Retrieves details of a specific Media file by its media key.", - "externalDocs" : { - "url" : "https://developer.x.com" - }, - "operationId" : "getMediaByMediaKey", - "parameters" : [ - { - "name" : "media_key", - "in" : "path", - "description" : "A single Media Key.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/MediaKey" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2MediaMediaKeyResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/notes" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Community Notes" - ], - "summary" : "Create a Community Note", - "description" : "Creates a community note endpoint for LLM use case.", - "externalDocs" : { - "url" : "https://communitynotes.x.com/guide/api/overview" - }, - "operationId" : "createNotes", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateNoteRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/DeleteNoteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/notes/search/notes_written" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Community Notes" - ], - "summary" : "Search for Community Notes Written", - "description" : "Returns all the community notes written by the user.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/community-notes/search-for-community-notes-written" - }, - "operationId" : "searchNotesWritten", - "parameters" : [ - { - "name" : "test_mode", - "in" : "query", - "description" : "If true, return the notes the caller wrote for the test. If false, return the notes the caller wrote on the product.", - "required" : true, - "schema" : { - "type" : "boolean" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "Pagination token to get next set of posts eligible for notes.", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "Max results to return.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 10 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/NoteFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2NotesSearchNotesWrittenResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/notes/search/posts_eligible_for_notes" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Community Notes" - ], - "summary" : "Search for Posts Eligible for Community Notes", - "description" : "Returns all the posts that are eligible for community notes.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/community-notes/search-for-posts-eligible-for-community-notes" - }, - "operationId" : "searchForEligiblePosts", - "parameters" : [ - { - "name" : "test_mode", - "in" : "query", - "description" : "If true, return a list of posts that are for the test. If false, return a list of posts that the bots can write proposed notes on the product.", - "required" : true, - "schema" : { - "type" : "boolean" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "Pagination token to get next set of posts eligible for notes.", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "Max results to return.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 10 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2NotesSearchPostsEligibleForNotesResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/notes/{id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.write" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Community Notes" - ], - "summary" : "Delete a Community Note", - "description" : "Deletes a community note.", - "externalDocs" : { - "url" : "https://communitynotes.x.com/guide/api/overview" - }, - "operationId" : "deleteNotes", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The community note id to delete.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/NoteId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CreateNoteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/openapi.json" : { - "get" : { - "tags" : [ - "General" - ], - "summary" : "Get OpenAPI Spec.", - "description" : "Retrieves the full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", - "operationId" : "getOpenApiSpec", - "parameters" : [ ], - "responses" : { - "200" : { - "description" : "The request was successful", - "content" : { - "application/json" : { - "schema" : { - "type" : "object" - } - } - } - } - } - } - }, - "/2/spaces" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces" - ], - "summary" : "Get Spaces by IDs", - "description" : "Retrieves details of multiple Spaces by their IDs.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces" - }, - "operationId" : "getSpacesByIds", - "parameters" : [ - { - "name" : "ids", - "in" : "query", - "description" : "The list of Space IDs to return.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "type" : "string", - "description" : "The unique identifier of this Space.", - "pattern" : "^[a-zA-Z0-9]{1,13}$", - "example" : "1SLjjRYNejbKM" - } - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref" : "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TopicFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/spaces/by/creator_ids" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces" - ], - "summary" : "Get Spaces by creator IDs", - "description" : "Retrieves details of Spaces created by specified User IDs.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids" - }, - "operationId" : "getSpacesByCreatorIds", - "parameters" : [ - { - "name" : "user_ids", - "in" : "query", - "description" : "The IDs of Users to search through.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref" : "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TopicFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesByCreatorIdsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/spaces/search" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces" - ], - "summary" : "Search Spaces", - "description" : "Retrieves a list of Spaces matching the specified search query.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search" - }, - "operationId" : "searchSpaces", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "The search query.", - "required" : true, - "example" : "crypto", - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 2048, - "example" : "crypto" - }, - "style" : "form" - }, - { - "name" : "state", - "in" : "query", - "description" : "The state of Spaces to search for.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "live", - "scheduled", - "all" - ], - "default" : "all" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The number of results to return.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref" : "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TopicFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesSearchResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/spaces/{id}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces" - ], - "summary" : "Get space by ID", - "description" : "Retrieves details of a specific space by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id" - }, - "operationId" : "getSpacesById", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Space to be retrieved.", - "required" : true, - "example" : "1YqKDqWqdPLsV", - "schema" : { - "type" : "string", - "description" : "The unique identifier of this Space.", - "pattern" : "^[a-zA-Z0-9]{1,13}$", - "example" : "1SLjjRYNejbKM" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref" : "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TopicFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/spaces/{id}/buyers" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces", - "Tweets" - ], - "summary" : "Get Space ticket buyers", - "description" : "Retrieves a list of Users who purchased tickets to a specific Space by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers" - }, - "operationId" : "getSpacesBuyers", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Space to be retrieved.", - "required" : true, - "example" : "1YqKDqWqdPLsV", - "schema" : { - "type" : "string", - "description" : "The unique identifier of this Space.", - "pattern" : "^[a-zA-Z0-9]{1,13}$", - "example" : "1SLjjRYNejbKM" - }, - "style" : "simple" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesIdBuyersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/spaces/{id}/tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Spaces", - "Tweets" - ], - "summary" : "Get Space Posts", - "description" : "Retrieves a list of Posts shared in a specific Space by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets" - }, - "operationId" : "getSpacesPosts", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Space to be retrieved.", - "required" : true, - "example" : "1YqKDqWqdPLsV", - "schema" : { - "type" : "string", - "description" : "The unique identifier of this Space.", - "pattern" : "^[a-zA-Z0-9]{1,13}$", - "example" : "1SLjjRYNejbKM" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The number of Posts to fetch from the provided space. If not provided, the value will default to the maximum of 100.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100, - "example" : 25 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2SpacesIdTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/trends/by/woeid/{woeid}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Trends" - ], - "summary" : "Get Trends by WOEID", - "description" : "Retrieves trending topics for a specific location identified by its WOEID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/trends/api-reference/get-trends-by-woeid" - }, - "operationId" : "getTrendsByWoeid", - "parameters" : [ - { - "name" : "woeid", - "in" : "path", - "description" : "The WOEID of the place to lookup a trend for.", - "required" : true, - "example" : "2244994945", - "schema" : { - "type" : "integer", - "format" : "int32" - }, - "style" : "simple" - }, - { - "name" : "max_trends", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 50, - "format" : "int32", - "default" : 20 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TrendFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TrendsByWoeidWoeidResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get Posts by IDs", - "description" : "Retrieves details of multiple Posts by their IDs.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets" - }, - "operationId" : "getPostsByIds", - "parameters" : [ - { - "name" : "ids", - "in" : "query", - "description" : "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Create Post", - "description" : "Creates a new Post for the authenticated user.", - "externalDocs" : { - "url" : "https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets" - }, - "operationId" : "createPosts", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetCreateRequest" - } - } - }, - "required" : true - }, - "responses" : { - "201" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/analytics" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get Post analytics", - "description" : "Retrieves analytics data for specified Posts within a defined time range.", - "operationId" : "getPostsAnalytics", - "parameters" : [ - { - "name" : "ids", - "in" : "query", - "description" : "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "explode" : false, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required" : true, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "The granularity for the search counts results.", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ - "hourly", - "daily", - "weekly", - "total" - ], - "default" : "total" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/AnalyticsFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Analytics" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/compliance/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Compliance" - ], - "summary" : "Stream Posts compliance data", - "description" : "Streams all compliance data related to Posts.", - "operationId" : "streamPostsCompliance", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 4, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post Compliance events will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Post Compliance events will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetComplianceStreamResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/counts/all" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get count of all Posts", - "description" : "Retrieves the count of Posts matching a search query from the full archive.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" - }, - "operationId" : "getPostsCountsAll", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required" : true, - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 4096, - "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "The granularity for the search counts results.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "minute", - "hour", - "day" - ], - "default" : "hour" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/SearchCountFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsCountsAllResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/counts/recent" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get count of recent Posts", - "description" : "Retrieves the count of Posts from the last 7 days matching a search query.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent" - }, - "operationId" : "getPostsCountsRecent", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required" : true, - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 4096, - "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "granularity", - "in" : "query", - "description" : "The granularity for the search counts results.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "minute", - "hour", - "day" - ], - "default" : "hour" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/SearchCountFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsCountsRecentResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/firehose/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Tweets" - ], - "summary" : "Stream all Posts", - "description" : "Streams all public Posts in real-time.", - "operationId" : "streamPostsFirehose", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 20, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/firehose/stream/lang/en" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Tweets" - ], - "summary" : "Stream English Posts", - "description" : "Streams all public English-language Posts in real-time.", - "operationId" : "streamPostsFirehoseEn", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 8, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/firehose/stream/lang/ja" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Tweets" - ], - "summary" : "Stream Japanese Posts", - "description" : "Streams all public Japanese-language Posts in real-time.", - "operationId" : "streamPostsFirehoseJa", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 2, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/firehose/stream/lang/ko" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Tweets" - ], - "summary" : "Stream Korean Posts", - "description" : "Streams all public Korean-language Posts in real-time.", - "operationId" : "streamPostsFirehoseKo", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 2, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/firehose/stream/lang/pt" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Tweets" - ], - "summary" : "Stream Portuguese Posts", - "description" : "Streams all public Portuguese-language Posts in real-time.", - "operationId" : "streamPostsFirehosePt", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 2, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/label/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Compliance" - ], - "summary" : "Stream Post labels", - "description" : "Streams all labeling events applied to Posts.", - "operationId" : "streamLabelsCompliance", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post labels will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Post labels will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetLabelStreamResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/sample/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Tweets" - ], - "summary" : "Stream sampled Posts", - "description" : "Streams a 1% sample of public Posts in real-time.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/api-reference/get-tweets-sample-stream" - }, - "operationId" : "streamPostsSample", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/sample10/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Tweets" - ], - "summary" : "Stream 10% sampled Posts", - "description" : "Streams a 10% sample of public Posts in real-time.", - "operationId" : "streamPostsSample10", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 2, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsSample10StreamResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/search/all" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Search all Posts", - "description" : "Retrieves Posts from the full archive matching a search query.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" - }, - "operationId" : "searchPostsAll", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required" : true, - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 4096, - "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of search results to be returned by a request.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 10, - "maximum" : 500, - "format" : "int32", - "default" : 10 - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "sort_order", - "in" : "query", - "description" : "This order in which to return results.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "recency", - "relevancy" - ] - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsSearchAllResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/search/recent" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Search recent Posts", - "description" : "Retrieves Posts from the last 7 days matching a search query.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent" - }, - "operationId" : "searchPostsRecent", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required" : true, - "schema" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 4096, - "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required" : false, - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of search results to be returned by a request.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 10, - "maximum" : 100, - "format" : "int32", - "default" : 10 - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "sort_order", - "in" : "query", - "description" : "This order in which to return results.", - "required" : false, - "schema" : { - "type" : "string", - "enum" : [ - "recency", - "relevancy" - ] - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsSearchRecentResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/search/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Tweets" - ], - "summary" : "Stream filtered Posts", - "description" : "Streams Posts in real-time matching the active rule set.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream" - }, - "operationId" : "streamPosts", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/FilteredStreamingTweetResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/tweets/search/stream/rules" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Tweets" - ], - "summary" : "Get stream rules", - "description" : "Retrieves the active rule set or a subset of rules for the filtered stream.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules" - }, - "operationId" : "getRules", - "parameters" : [ - { - "name" : "ids", - "in" : "query", - "description" : "A comma-separated list of Rule IDs.", - "required" : false, - "schema" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/RuleId" - } - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32", - "default" : 1000 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This value is populated by passing the 'next_token' returned in a request to paginate through results.", - "required" : false, - "schema" : { - "type" : "string", - "minLength" : 16, - "maxLength" : 16 - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/RulesLookupResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Tweets" - ], - "summary" : "Update stream rules", - "description" : "Adds or deletes rules from the active rule set for the filtered stream.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/post-tweets-search-stream-rules" - }, - "operationId" : "updateRules", - "parameters" : [ - { - "name" : "dry_run", - "in" : "query", - "description" : "Dry Run can be used with both the add and delete action, with the expected result given, but without actually taking any action in the system (meaning the end state will always be as it was when the request was submitted). This is particularly useful to validate rule changes.", - "required" : false, - "schema" : { - "type" : "boolean" - }, - "style" : "form" - }, - { - "name" : "delete_all", - "in" : "query", - "description" : "Delete All can be used to delete all of the rules associated this client app, it should be specified with no other parameters. Once deleted, rules cannot be recovered.", - "required" : false, - "schema" : { - "type" : "boolean" - }, - "style" : "form" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/AddOrDeleteRulesRequest" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/AddOrDeleteRulesResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/search/stream/rules/counts" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Tweets" - ], - "summary" : "Get stream rule counts", - "description" : "Retrieves the count of rules in the active rule set for the filtered stream.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules-counts" - }, - "operationId" : "getRuleCounts", - "parameters" : [ - { - "$ref" : "#/components/parameters/RulesCountFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsSearchStreamRulesCountsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/{id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Delete Post", - "description" : "Deletes a specific Post by its ID, if owned by the authenticated user.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id" - }, - "operationId" : "deletePosts", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the Post to be deleted.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get Post by ID", - "description" : "Retrieves details of a specific Post by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id" - }, - "operationId" : "getPostsById", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "A single Post ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/{id}/liking_users" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "like.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get Liking Users", - "description" : "Retrieves a list of Users who liked a specific Post by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-tweets-id-liking_users" - }, - "operationId" : "getPostsLikingUsers", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "A single Post ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsIdLikingUsersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/{id}/quote_tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get Quoted Posts", - "description" : "Retrieves a list of Posts that quote a specific Post by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets" - }, - "operationId" : "getPostsQuotedPosts", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "A single Post ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results to be returned.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 10, - "maximum" : 100, - "format" : "int32", - "default" : 10 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "exclude", - "in" : "query", - "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required" : false, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "replies", - "retweets" - ] - }, - "example" : [ - "replies", - "retweets" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsIdQuoteTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/{id}/retweeted_by" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get Reposted by", - "description" : "Retrieves a list of Users who reposted a specific Post by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweeted_by" - }, - "operationId" : "getPostsRepostedBy", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "A single Post ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsIdRetweetedByResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/{id}/retweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get Reposts", - "description" : "Retrieves a list of Posts that repost a specific Post by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets" - }, - "operationId" : "getPostsReposts", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "A single Post ID.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2TweetsIdRetweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/tweets/{tweet_id}/hidden" : { - "put" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.moderate.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Hide reply", - "description" : "Hides or unhides a reply to a conversation owned by the authenticated user.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden" - }, - "operationId" : "hidePostsReply", - "parameters" : [ - { - "name" : "tweet_id", - "in" : "path", - "description" : "The ID of the reply that you want to hide or unhide.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetHideRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/TweetHideResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/usage/tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Usage" - ], - "summary" : "Get usage", - "description" : "Retrieves usage statistics for Posts over a specified number of days.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets" - }, - "operationId" : "getUsage", - "parameters" : [ - { - "name" : "days", - "in" : "query", - "description" : "The number of days for which you need usage for.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 90, - "format" : "int32", - "default" : 7 - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UsageFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsageTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get Users by IDs", - "description" : "Retrieves details of multiple Users by their IDs.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users" - }, - "operationId" : "getUsersByIds", - "parameters" : [ - { - "name" : "ids", - "in" : "query", - "description" : "A list of User IDs, comma-separated. You can specify up to 100 IDs.", - "required" : true, - "example" : "2244994945,6253282,12", - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/by" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get Users by usernames", - "description" : "Retrieves details of multiple Users by their usernames.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by" - }, - "operationId" : "getUsersByUsernames", - "parameters" : [ - { - "name" : "usernames", - "in" : "query", - "description" : "A list of usernames, comma-separated.", - "required" : true, - "schema" : { - "type" : "array", - "minItems" : 1, - "maxItems" : 100, - "items" : { - "type" : "string", - "description" : "The X handle (screen name) of this User.", - "pattern" : "^[A-Za-z0-9_]{1,15}$" - }, - "example" : "TwitterDev,TwitterAPI" - }, - "explode" : false, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersByResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/by/username/{username}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get User by username", - "description" : "Retrieves details of a specific User by their username.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username" - }, - "operationId" : "getUsersByUsername", - "parameters" : [ - { - "name" : "username", - "in" : "path", - "description" : "A username.", - "required" : true, - "example" : "TwitterDev", - "schema" : { - "type" : "string", - "pattern" : "^[A-Za-z0-9_]{1,15}$" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersByUsernameUsernameResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/compliance/stream" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Stream", - "Compliance" - ], - "summary" : "Stream Users compliance data", - "description" : "Streams all compliance data related to Users.", - "operationId" : "streamUsersCompliance", - "parameters" : [ - { - "name" : "backfill_minutes", - "in" : "query", - "description" : "The number of minutes of backfill requested.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 0, - "maximum" : 5, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "partition", - "in" : "query", - "description" : "The partition number.", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 4, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the User Compliance events will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the User Compliance events will be provided.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UserComplianceStreamResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming" : true - } - }, - "/2/users/me" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get my User", - "description" : "Retrieves details of the authenticated user.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me" - }, - "operationId" : "getMyUser", - "parameters" : [ - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersMeResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/personalized_trends" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Trends" - ], - "summary" : "Get personalized Trends", - "description" : "Retrieves personalized trending topics for the authenticated user.", - "externalDocs" : { - "url" : "https://developer.x.com/" - }, - "operationId" : "getUsersPersonalizedTrends", - "parameters" : [ - { - "$ref" : "#/components/parameters/PersonalizedTrendFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersPersonalizedTrendsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/reposts_of_me" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "timeline.read", - "tweet.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get Reposts of me", - "description" : "Retrieves a list of Posts that repost content from the authenticated user.", - "operationId" : "getUsersRepostsOfMe", - "parameters" : [ - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersRepostsOfMeResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/search" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Search Users", - "description" : "Retrieves a list of Users matching a search query.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-search" - }, - "operationId" : "searchUsers", - "parameters" : [ - { - "name" : "query", - "in" : "query", - "description" : "TThe the query string by which to query for users.", - "required" : true, - "example" : "someXUser", - "schema" : { - "$ref" : "#/components/schemas/UserSearchQueryVnext" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "next_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersSearchResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get User by ID", - "description" : "Retrieves details of a specific User by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id" - }, - "operationId" : "getUsersById", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/blocking" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "block.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get blocking", - "description" : "Retrieves a list of Users blocked by the specified User ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking" - }, - "operationId" : "getUsersBlocking", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdBlockingResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/bookmarks" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "bookmark.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Bookmarks" - ], - "summary" : "Get Bookmarks", - "description" : "Retrieves a list of Posts bookmarked by the authenticated user.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks" - }, - "operationId" : "getUsersBookmarks", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdBookmarksResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "bookmark.write", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Bookmarks" - ], - "summary" : "Create Bookmark", - "description" : "Adds a post to the authenticated user’s bookmarks.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks" - }, - "operationId" : "createUsersBookmark", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to add bookmarks.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BookmarkAddRequest" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BookmarkMutationResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/bookmarks/folders" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "bookmark.read", - "users.read" - ] - } - ], - "tags" : [ - "Bookmarks" - ], - "summary" : "Get Bookmark folders", - "description" : "Retrieves a list of Bookmark folders created by the authenticated user.", - "externalDocs" : { - "url" : "https://developer.x.com" - }, - "operationId" : "getUsersBookmarkFolders", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BookmarkFoldersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/bookmarks/folders/{folder_id}" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "bookmark.read", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Bookmarks" - ], - "summary" : "Get Bookmarks by folder ID", - "description" : "Retrieves Posts in a specific Bookmark folder by its ID for the authenticated user.", - "externalDocs" : { - "url" : "https://developer.x.com" - }, - "operationId" : "getUsersBookmarksByFolderId", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "folder_id", - "in" : "path", - "description" : "The ID of the Bookmark Folder that the authenticated User is trying to fetch Posts for.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/BookmarkFolderId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BookmarkFolderPostsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/bookmarks/{tweet_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "bookmark.write", - "tweet.read", - "users.read" - ] - } - ], - "tags" : [ - "Bookmarks" - ], - "summary" : "Delete Bookmark", - "description" : "Removes a Post from the authenticated user’s Bookmarks by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id" - }, - "operationId" : "deleteUsersBookmark", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User whose bookmark is to be removed.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "tweet_id", - "in" : "path", - "description" : "The ID of the Post that the source User is removing from bookmarks.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BookmarkMutationResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/dm/block" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Block DMs", - "description" : "Blocks direct messages to or from a specific User by their ID for the authenticated user.", - "externalDocs" : { - "url" : "https://developer.x.com/" - }, - "operationId" : "blockUsersDms", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the target User that the authenticated user requesting to block dms for.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersDMBlockCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/dm/unblock" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Unblock DMs", - "description" : "Unblocks direct messages to or from a specific User by their ID for the authenticated user.", - "externalDocs" : { - "url" : "https://developer.x.com/" - }, - "operationId" : "unblockUsersDms", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the target User that the authenticated user requesting to unblock dms for.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersDMUnBlockCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/followed_lists" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Get followed Lists", - "description" : "Retrieves a list of Lists followed by a specific User by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists" - }, - "operationId" : "getUsersFollowedLists", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/ListFieldsParameter" - }, - { - "$ref" : "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdFollowedListsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Follow List", - "description" : "Causes the authenticated user to follow a specific List by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/post-users-id-followed-lists" - }, - "operationId" : "followList", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that will follow the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListFollowedRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListFollowedResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/followed_lists/{list_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Unfollow List", - "description" : "Causes the authenticated user to unfollow a specific List by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/delete-users-id-followed-lists-list_id" - }, - "operationId" : "unfollowList", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that will unfollow the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "list_id", - "in" : "path", - "description" : "The ID of the List to unfollow.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListFollowedResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/followers" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "follows.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get followers", - "description" : "Retrieves a list of Users who follow a specific User by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" - }, - "operationId" : "getUsersFollowers", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdFollowersResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/following" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "follows.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get following", - "description" : "Retrieves a list of Users followed by a specific User by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following" - }, - "operationId" : "getUsersFollowing", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken32" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdFollowingResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "follows.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Follow User", - "description" : "Causes the authenticated user to follow a specific user by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following" - }, - "operationId" : "followUser", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to follow the target User.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersFollowingCreateRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersFollowingCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/liked_tweets" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "like.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get liked Posts", - "description" : "Retrieves a list of Posts liked by a specific User by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets" - }, - "operationId" : "getUsersLikedPosts", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 5, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdLikedTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/likes" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "like.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Like Post", - "description" : "Causes the authenticated user to Like a specific Post by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-id-likes" - }, - "operationId" : "likePost", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to like the Post.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersLikesCreateRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersLikesCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/likes/{tweet_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "like.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Unlike Post", - "description" : "Causes the authenticated user to Unlike a specific Post by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id" - }, - "operationId" : "unlikePost", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to unlike the Post.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "tweet_id", - "in" : "path", - "description" : "The ID of the Post that the User is requesting to unlike.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersLikesDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/list_memberships" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Get List memberships", - "description" : "Retrieves a list of Lists that a specific User is a member of by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" - }, - "operationId" : "getUsersListMemberships", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/ListFieldsParameter" - }, - { - "$ref" : "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdListMembershipsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/mentions" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get mentions", - "description" : "Retrieves a list of Posts that mention a specific User by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions" - }, - "operationId" : "getUsersMentions", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required" : false, - "example" : "1346889436626259968", - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 5, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdMentionsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/muting" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "mute.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Get muting", - "description" : "Retrieves a list of Users muted by the authenticated user.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting" - }, - "operationId" : "getUsersMuting", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 1000, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdMutingResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "mute.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Mute User", - "description" : "Causes the authenticated user to mute a specific User by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting" - }, - "operationId" : "muteUser", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to mute the target User.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MuteUserRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MuteUserMutationResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/owned_lists" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Get owned Lists", - "description" : "Retrieves a list of Lists owned by a specific User by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists" - }, - "operationId" : "getUsersOwnedLists", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32", - "default" : 100 - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get a specified 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationTokenLong" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/ListFieldsParameter" - }, - { - "$ref" : "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdOwnedListsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/pinned_lists" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Get pinned Lists", - "description" : "Retrieves a list of Lists pinned by the authenticated user.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/get-users-id-pinned_lists" - }, - "operationId" : "getUsersPinnedLists", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "$ref" : "#/components/parameters/ListFieldsParameter" - }, - { - "$ref" : "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdPinnedListsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Pin List", - "description" : "Causes the authenticated user to pin a specific List by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/post-users-id-pinned-lists" - }, - "operationId" : "pinList", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that will pin the List.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListPinnedRequest" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListPinnedResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/pinned_lists/{list_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Lists" - ], - "summary" : "Unpin List", - "description" : "Causes the authenticated user to unpin a specific List by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/delete-users-id-pinned-lists-list_id" - }, - "operationId" : "unpinList", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User for whom to return results.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "list_id", - "in" : "path", - "description" : "The ID of the List to unpin.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/ListId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/ListUnpinResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/retweets" : { - "post" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Repost Post", - "description" : "Causes the authenticated user to repost a specific Post by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets" - }, - "operationId" : "repostPost", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to repost the Post.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - } - ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersRetweetsCreateRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersRetweetsCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/retweets/{source_tweet_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Unrepost Post", - "description" : "Causes the authenticated user to unrepost a specific Post by its ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id" - }, - "operationId" : "unrepostPost", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to repost the Post.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "source_tweet_id", - "in" : "path", - "description" : "The ID of the Post that the User is requesting to unretweet.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersRetweetsDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/timelines/reverse_chronological" : { - "get" : { - "security" : [ - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get Timeline", - "description" : "Retrieves a reverse chronological list of Posts in the authenticated User’s Timeline.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological" - }, - "operationId" : "getUsersTimeline", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the authenticated source User to list Reverse Chronological Timeline Posts of.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required" : false, - "example" : "791775337160081409", - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required" : false, - "example" : "1346889436626259968", - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 1, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "exclude", - "in" : "query", - "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required" : false, - "schema" : { - "type" : "array", - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "replies", - "retweets" - ] - }, - "example" : [ - "replies", - "retweets" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdTimelinesReverseChronologicalResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{id}/tweets" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "OAuth2UserToken" : [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Tweets" - ], - "summary" : "Get Posts", - "description" : "Retrieves a list of posts authored by a specific User by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets" - }, - "operationId" : "getUsersPosts", - "parameters" : [ - { - "name" : "id", - "in" : "path", - "description" : "The ID of the User to lookup.", - "required" : true, - "example" : "2244994945", - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - }, - { - "name" : "since_id", - "in" : "query", - "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required" : false, - "example" : "791775337160081409", - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "until_id", - "in" : "query", - "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required" : false, - "example" : "1346889436626259968", - "schema" : { - "$ref" : "#/components/schemas/TweetId" - }, - "style" : "form" - }, - { - "name" : "max_results", - "in" : "query", - "description" : "The maximum number of results.", - "required" : false, - "schema" : { - "type" : "integer", - "minimum" : 5, - "maximum" : 100, - "format" : "int32" - }, - "style" : "form" - }, - { - "name" : "pagination_token", - "in" : "query", - "description" : "This parameter is used to get the next 'page' of results.", - "required" : false, - "schema" : { - "$ref" : "#/components/schemas/PaginationToken36" - }, - "style" : "form" - }, - { - "name" : "exclude", - "in" : "query", - "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required" : false, - "schema" : { - "type" : "array", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "replies", - "retweets" - ] - }, - "example" : [ - "replies", - "retweets" - ] - }, - "explode" : false, - "style" : "form" - }, - { - "name" : "start_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-01T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "name" : "end_time", - "in" : "query", - "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required" : false, - "example" : "2021-02-14T18:40:40.000Z", - "schema" : { - "type" : "string", - "format" : "date-time" - }, - "style" : "form" - }, - { - "$ref" : "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref" : "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref" : "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PollFieldsParameter" - }, - { - "$ref" : "#/components/parameters/UserFieldsParameter" - }, - { - "$ref" : "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2UsersIdTweetsResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{source_user_id}/following/{target_user_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "follows.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Unfollow User", - "description" : "Causes the authenticated user to unfollow a specific user by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following" - }, - "operationId" : "unfollowUser", - "parameters" : [ - { - "name" : "source_user_id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to unfollow the target User.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "target_user_id", - "in" : "path", - "description" : "The ID of the User that the source User is requesting to unfollow.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UsersFollowingDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/users/{source_user_id}/muting/{target_user_id}" : { - "delete" : { - "security" : [ - { - "OAuth2UserToken" : [ - "mute.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Users" - ], - "summary" : "Unmute User", - "description" : "Causes the authenticated user to unmute a specific user by their ID.", - "externalDocs" : { - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting" - }, - "operationId" : "unmuteUser", - "parameters" : [ - { - "name" : "source_user_id", - "in" : "path", - "description" : "The ID of the authenticated source User that is requesting to unmute the target User.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style" : "simple" - }, - { - "name" : "target_user_id", - "in" : "path", - "description" : "The ID of the User that the source User is requesting to unmute.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/UserId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/MuteUserMutationResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/webhooks" : { - "get" : { - "security" : [ - { - "BearerToken" : [ ] - } - ], - "tags" : [ - "Webhooks" - ], - "summary" : "Get webhook", - "description" : "Get a list of webhook configs associated with a client app.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId" : "getWebhooks", - "parameters" : [ - { - "$ref" : "#/components/parameters/WebhookConfigFieldsParameter" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Get2WebhooksResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "post" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Webhooks" - ], - "summary" : "Create webhook", - "description" : "Creates a new webhook configuration.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId" : "createWebhooks", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigCreateRequest" - } - } - } - }, - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigCreateResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - }, - "/2/webhooks/{webhook_id}" : { - "delete" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Webhooks" - ], - "summary" : "Delete webhook", - "description" : "Deletes an existing webhook configuration.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId" : "deleteWebhooks", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The ID of the webhook to delete.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigDeleteResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - }, - "put" : { - "security" : [ - { - "BearerToken" : [ ] - }, - { - "UserToken" : [ ] - } - ], - "tags" : [ - "Webhooks" - ], - "summary" : "Validate webhook", - "description" : "Triggers a CRC check for a given webhook.", - "externalDocs" : { - "url" : "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId" : "validateWebhooks", - "parameters" : [ - { - "name" : "webhook_id", - "in" : "path", - "description" : "The ID of the webhook to check.", - "required" : true, - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "style" : "simple" - } - ], - "responses" : { - "200" : { - "description" : "The request has succeeded.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/WebhookConfigPutResponse" - } - } - } - }, - "default" : { - "description" : "The request has failed.", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - }, - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - } - } - } - }, - "servers" : [ - { - "description" : "X API", - "url" : "https://api.x.com" - } - ], - "tags" : [ - { - "name" : "Account Activity", - "description" : "Endpoints relating to retrieving, managing AAA subscriptions", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://docs.x.com/x-api/enterprise-gnip-2.0/fundamentals/account-activity" - } - }, - { - "name" : "Bookmarks", - "description" : "Endpoints related to retrieving, managing bookmarks of a user", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/bookmarks" - } - }, - { - "name" : "Compliance", - "description" : "Endpoints related to keeping X data in your systems compliant", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-tweet/introduction" - } - }, - { - "name" : "Direct Messages", - "description" : "Endpoints related to retrieving, managing Direct Messages", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/direct-messages" - } - }, - { - "name" : "General", - "description" : "Miscellaneous endpoints for general API functionality", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api" - } - }, - { - "name" : "Lists", - "description" : "Endpoints related to retrieving, managing Lists", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/lists" - } - }, - { - "name" : "Media", - "description" : "Endpoints related to Media", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.x.com" - } - }, - { - "name" : "MediaUpload", - "description" : "Endpoints related to uploading Media", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.x.com" - } - }, - { - "name" : "Spaces", - "description" : "Endpoints related to retrieving, managing Spaces", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces" - } - }, - { - "name" : "Stream", - "description" : "Endpoints related to streaming", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.x.com" - } - }, - { - "name" : "Tweets", - "description" : "Endpoints related to retrieving, searching, and modifying Tweets", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup" - } - }, - { - "name" : "Users", - "description" : "Endpoints related to retrieving, managing relationships of Users", - "externalDocs" : { - "description" : "Find out more", - "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup" - } - } - ], - "components" : { - "securitySchemes" : { - "BearerToken" : { - "type" : "http", - "scheme" : "bearer" - }, - "OAuth2UserToken" : { - "type" : "oauth2", - "flows" : { - "authorizationCode" : { - "authorizationUrl" : "https://api.x.com/2/oauth2/authorize", - "tokenUrl" : "https://api.x.com/2/oauth2/token", - "scopes" : { - "block.read" : "View accounts you have blocked.", - "bookmark.read" : "Read your bookmarked Posts.", - "bookmark.write" : "Create and delete your bookmarks.", - "dm.read" : "Read all your Direct Messages.", - "dm.write" : "Send and manage your Direct Messages.", - "follows.read" : "View accounts you follow and accounts following you.", - "follows.write" : "Follow and unfollow accounts on your behalf.", - "like.read" : "View Posts you have liked and likes you can see.", - "like.write" : "Like and unlike Posts on your behalf.", - "list.read" : "View Lists, members, and followers of Lists you created or are a member of, including private Lists.", - "list.write" : "Create and manage Lists on your behalf.", - "media.write" : "Upload media, such as photos and videos, on your behalf.", - "mute.read" : "View accounts you have muted.", - "mute.write" : "Mute and unmute accounts on your behalf.", - "offline.access" : "Request a refresh token for the app.", - "space.read" : "View all Spaces you have access to.", - "timeline.read" : "View all Custom Timelines you can see, including public Custom Timelines from other developers.", - "tweet.moderate.write" : "Hide and unhide replies to your Posts.", - "tweet.read" : "View all Posts you can see, including those from protected accounts.", - "tweet.write" : "Post and repost on your behalf.", - "users.read" : "View any account you can see, including protected accounts." - } - } - } - }, - "UserToken" : { - "type" : "http", - "scheme" : "OAuth" - } - }, - "schemas" : { - "AddOrDeleteRulesRequest" : { - "oneOf" : [ - { - "$ref" : "#/components/schemas/AddRulesRequest" - }, - { - "$ref" : "#/components/schemas/DeleteRulesRequest" - } - ] - }, - "AddOrDeleteRulesResponse" : { - "type" : "object", - "description" : "A response from modifying user-specified stream filtering rules.", - "required" : [ - "meta" - ], - "properties" : { - "data" : { - "type" : "array", - "description" : "All user-specified stream filtering rules that were created.", - "items" : { - "$ref" : "#/components/schemas/Rule" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "$ref" : "#/components/schemas/RulesResponseMetadata" - } - } - }, - "AddRulesRequest" : { - "type" : "object", - "description" : "A request to add a user-specified stream filtering rule.", - "required" : [ - "add" - ], - "properties" : { - "add" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/RuleNoId" - } - } - } - }, - "Aggregate" : { - "type" : "integer", - "description" : "The sum of results returned in this response.", - "format" : "int32" - }, - "AllProjectClientApps" : { - "type" : "array", - "description" : "Client App Rule Counts for all applications in the project", - "items" : { - "$ref" : "#/components/schemas/AppRulesCount" - } - }, - "AllowDownloadStatus" : { - "type" : "object", - "properties" : { - "allow_download" : { - "type" : "boolean", - "example" : true - } - } - }, - "AltText" : { - "type" : "object", - "required" : [ - "text" - ], - "properties" : { - "text" : { - "type" : "string", - "description" : "Description of media ( <= 1000 characters )", - "maxLength" : 1000, - "example" : "A dancing cat" - } - } - }, - "Analytics" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "timestamped_metrics" : { - "type" : "array", - "title" : "Timestamped Metrics", - "description" : "Array containing metrics data along with the timestamps of their recording.", - "items" : { - "$ref" : "#/components/schemas/TimestampedMetrics" - } - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "AnimatedGif" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/Media" - }, - { - "type" : "object", - "properties" : { - "preview_image_url" : { - "type" : "string", - "format" : "uri" - }, - "variants" : { - "$ref" : "#/components/schemas/Variants" - } - } - } - ] - }, - "AppRulesCount" : { - "type" : "object", - "description" : "A count of user-provided stream filtering rules at the client application level.", - "properties" : { - "client_app_id" : { - "$ref" : "#/components/schemas/ClientAppId" - }, - "rule_count" : { - "type" : "integer", - "description" : "Number of rules for client application", - "format" : "int32" - } - } - }, - "AudiencePolicy" : { - "type" : "object", - "properties" : { - "creator_subscriptions" : { - "type" : "array", - "items" : { - "type" : "string", - "enum" : [ - "Any" - ] - } - }, - "x_subscriptions" : { - "type" : "array", - "items" : { - "type" : "string", - "enum" : [ - "Any" - ] - } - } - } - }, - "BookmarkAddRequest" : { - "type" : "object", - "required" : [ - "tweet_id" - ], - "properties" : { - "tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - }, - "BookmarkFolderId" : { - "type" : "string", - "description" : "The unique identifier of this Bookmark folder.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "BookmarkFolderPostsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - } - } - }, - "BookmarkFoldersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/BookmarkFolderId" - }, - "name" : { - "type" : "string" - } - } - } - } - }, - "BookmarkMutationResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "bookmarked" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "CashtagEntity" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref" : "#/components/schemas/CashtagFields" - } - ] - }, - "CashtagFields" : { - "type" : "object", - "description" : "Represent the portion of text recognized as a Cashtag, and its start and end position within the text.", - "required" : [ - "tag" - ], - "properties" : { - "tag" : { - "type" : "string", - "example" : "TWTR" - } - } - }, - "ClientAppId" : { - "type" : "string", - "description" : "The ID of the client application", - "minLength" : 1, - "maxLength" : 19 - }, - "ClientAppUsage" : { - "type" : "object", - "description" : "Usage per client app", - "properties" : { - "client_app_id" : { - "type" : "string", - "description" : "The unique identifier for this project", - "format" : "^[0-9]{1,19}$" - }, - "usage" : { - "type" : "array", - "description" : "The usage value", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UsageFields" - } - }, - "usage_result_count" : { - "type" : "integer", - "description" : "The number of results returned", - "format" : "int32" - } - } - }, - "ClientDisconnectedProblem" : { - "description" : "Your client has gone away.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "ClientForbiddenProblem" : { - "description" : "A problem that indicates your client is forbidden from making this request.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "reason" : { - "type" : "string", - "enum" : [ - "official-client-forbidden", - "client-not-enrolled" - ] - }, - "registration_url" : { - "type" : "string", - "format" : "uri" - } - } - } - ] - }, - "Community" : { - "type" : "object", - "description" : "A X Community is a curated group of Posts.", - "required" : [ - "id", - "name" - ], - "properties" : { - "created_at" : { - "type" : "string", - "format" : "date-time" - }, - "id" : { - "$ref" : "#/components/schemas/CommunityId" - }, - "name" : { - "type" : "string", - "description" : "The name of this Community." - } - } - }, - "CommunityId" : { - "type" : "string", - "description" : "The unique identifier of this Community.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "ComplianceJob" : { - "type" : "object", - "required" : [ - "id", - "type", - "created_at", - "upload_url", - "download_url", - "upload_expires_at", - "download_expires_at", - "status" - ], - "properties" : { - "created_at" : { - "$ref" : "#/components/schemas/CreatedAt" - }, - "download_expires_at" : { - "$ref" : "#/components/schemas/DownloadExpiration" - }, - "download_url" : { - "$ref" : "#/components/schemas/DownloadUrl" - }, - "id" : { - "$ref" : "#/components/schemas/JobId" - }, - "name" : { - "$ref" : "#/components/schemas/ComplianceJobName" - }, - "status" : { - "$ref" : "#/components/schemas/ComplianceJobStatus" - }, - "type" : { - "$ref" : "#/components/schemas/ComplianceJobType" - }, - "upload_expires_at" : { - "$ref" : "#/components/schemas/UploadExpiration" - }, - "upload_url" : { - "$ref" : "#/components/schemas/UploadUrl" - } - } - }, - "ComplianceJobName" : { - "type" : "string", - "description" : "User-provided name for a compliance job.", - "maxLength" : 64, - "example" : "my-job" - }, - "ComplianceJobStatus" : { - "type" : "string", - "description" : "Status of a compliance job.", - "enum" : [ - "created", - "in_progress", - "failed", - "complete", - "expired" - ] - }, - "ComplianceJobType" : { - "type" : "string", - "description" : "Type of compliance job to list.", - "enum" : [ - "tweets", - "users" - ] - }, - "ConflictProblem" : { - "description" : "You cannot create a new job if one is already in progress.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "ConnectionExceptionProblem" : { - "description" : "A problem that indicates something is wrong with the connection.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "connection_issue" : { - "type" : "string", - "enum" : [ - "TooManyConnections", - "ProvisioningSubscription", - "RuleConfigurationIssue", - "RulesInvalidIssue" - ] - } - } - } - ] - }, - "ContentExpiration" : { - "type" : "object", - "required" : [ - "timestamp_sec" - ], - "properties" : { - "timestamp_sec" : { - "type" : "number", - "description" : "Expiration time for content as a Unix timestamp in seconds", - "format" : "long", - "example" : 1740787200 - } - } - }, - "ContextAnnotation" : { - "type" : "object", - "description" : "Annotation inferred from the Tweet text.", - "required" : [ - "domain", - "entity" - ], - "properties" : { - "domain" : { - "$ref" : "#/components/schemas/ContextAnnotationDomainFields" - }, - "entity" : { - "$ref" : "#/components/schemas/ContextAnnotationEntityFields" - } - } - }, - "ContextAnnotationDomainFields" : { - "type" : "object", - "description" : "Represents the data for the context annotation domain.", - "required" : [ - "id" - ], - "properties" : { - "description" : { - "type" : "string", - "description" : "Description of the context annotation domain." - }, - "id" : { - "type" : "string", - "description" : "The unique id for a context annotation domain.", - "pattern" : "^[0-9]{1,19}$" - }, - "name" : { - "type" : "string", - "description" : "Name of the context annotation domain." - } - } - }, - "ContextAnnotationEntityFields" : { - "type" : "object", - "description" : "Represents the data for the context annotation entity.", - "required" : [ - "id" - ], - "properties" : { - "description" : { - "type" : "string", - "description" : "Description of the context annotation entity." - }, - "id" : { - "type" : "string", - "description" : "The unique id for a context annotation entity.", - "pattern" : "^[0-9]{1,19}$" - }, - "name" : { - "type" : "string", - "description" : "Name of the context annotation entity." - } - } - }, - "CountryCode" : { - "type" : "string", - "description" : "A two-letter ISO 3166-1 alpha-2 country code.", - "pattern" : "^[A-Z]{2}$", - "example" : "US" - }, - "CreateAttachmentsMessageRequest" : { - "type" : "object", - "required" : [ - "attachments" - ], - "properties" : { - "attachments" : { - "$ref" : "#/components/schemas/DmAttachments" - }, - "text" : { - "type" : "string", - "description" : "Text of the message.", - "minLength" : 1 - } - } - }, - "CreateComplianceJobRequest" : { - "type" : "object", - "description" : "A request to create a new batch compliance job.", - "required" : [ - "type" - ], - "properties" : { - "name" : { - "$ref" : "#/components/schemas/ComplianceJobName" - }, - "resumable" : { - "type" : "boolean", - "description" : "If true, this endpoint will return a pre-signed URL with resumable uploads enabled." - }, - "type" : { - "type" : "string", - "description" : "Type of compliance job to list.", - "enum" : [ - "tweets", - "users" - ] - } - } - }, - "CreateComplianceJobResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/ComplianceJob" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "CreateDmConversationRequest" : { - "type" : "object", - "required" : [ - "conversation_type", - "participant_ids", - "message" - ], - "properties" : { - "conversation_type" : { - "type" : "string", - "description" : "The conversation type that is being created.", - "enum" : [ - "Group" - ] - }, - "message" : { - "$ref" : "#/components/schemas/CreateMessageRequest" - }, - "participant_ids" : { - "$ref" : "#/components/schemas/DmParticipants" - } - }, - "additionalProperties" : false - }, - "CreateDmEventResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "dm_conversation_id", - "dm_event_id" - ], - "properties" : { - "dm_conversation_id" : { - "$ref" : "#/components/schemas/DmConversationId" - }, - "dm_event_id" : { - "$ref" : "#/components/schemas/DmEventId" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "CreateMessageRequest" : { - "anyOf" : [ - { - "$ref" : "#/components/schemas/CreateTextMessageRequest" - }, - { - "$ref" : "#/components/schemas/CreateAttachmentsMessageRequest" - } - ] - }, - "CreateNoteRequest" : { - "type" : "object", - "title" : "Note", - "required" : [ - "test_mode", - "post_id", - "info" - ], - "properties" : { - "info" : { - "$ref" : "#/components/schemas/NoteInfo" - }, - "post_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "test_mode" : { - "type" : "boolean", - "description" : "If true, the note being submitted is only for testing the capability of the bot, and won't be publicly visible. If false, the note being submitted will be a new proposed note on the product." - } - }, - "additionalProperties" : false - }, - "CreateNoteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/NoteId" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "CreateTextMessageRequest" : { - "type" : "object", - "required" : [ - "text" - ], - "properties" : { - "attachments" : { - "$ref" : "#/components/schemas/DmAttachments" - }, - "text" : { - "type" : "string", - "description" : "Text of the message.", - "minLength" : 1 - } - } - }, - "CreatedAt" : { - "type" : "string", - "description" : "Creation time of the compliance job.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "DeleteDmResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "deleted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "DeleteNoteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "deleted" - ], - "properties" : { - "deleted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "DeleteRulesRequest" : { - "type" : "object", - "description" : "A response from deleting user-specified stream filtering rules.", - "required" : [ - "delete" - ], - "properties" : { - "delete" : { - "type" : "object", - "description" : "IDs and values of all deleted user-specified stream filtering rules.", - "properties" : { - "ids" : { - "type" : "array", - "description" : "IDs of all deleted user-specified stream filtering rules.", - "items" : { - "$ref" : "#/components/schemas/RuleId" - } - }, - "values" : { - "type" : "array", - "description" : "Values of all deleted user-specified stream filtering rules.", - "items" : { - "$ref" : "#/components/schemas/RuleValue" - } - } - } - } - } - }, - "DisallowedResourceProblem" : { - "description" : "A problem that indicates that the resource requested violates the precepts of this API.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "required" : [ - "resource_id", - "resource_type", - "section" - ], - "properties" : { - "resource_id" : { - "type" : "string" - }, - "resource_type" : { - "type" : "string", - "enum" : [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "section" : { - "type" : "string", - "enum" : [ - "data", - "includes" - ] - } - } - } - ] - }, - "DisplayTextRange" : { - "type" : "array", - "description" : "Represent a boundary range (start and end zero-based indices) for the portion of text that is displayed for a post. `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", - "minItems" : 2, - "maxItems" : 2, - "items" : { - "type" : "integer", - "minimum" : 0 - } - }, - "DmAttachments" : { - "type" : "array", - "description" : "Attachments to a DM Event.", - "items" : { - "$ref" : "#/components/schemas/DmMediaAttachment" - } - }, - "DmConversationId" : { - "type" : "string", - "description" : "Unique identifier of a DM conversation. This can either be a numeric string, or a pair of numeric strings separated by a '-' character in the case of one-on-one DM Conversations.", - "pattern" : "^([0-9]{1,19}-[0-9]{1,19}|[0-9]{15,19})$", - "example" : "123123123-456456456" - }, - "DmEvent" : { - "type" : "object", - "required" : [ - "id", - "event_type" - ], - "properties" : { - "attachments" : { - "type" : "object", - "description" : "Specifies the type of attachments (if any) present in this DM.", - "properties" : { - "card_ids" : { - "type" : "array", - "description" : "A list of card IDs (if cards are attached).", - "minItems" : 1, - "items" : { - "type" : "string" - } - }, - "media_keys" : { - "type" : "array", - "description" : "A list of Media Keys for each one of the media attachments (if media are attached).", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/MediaKey" - } - } - } - }, - "cashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/CashtagEntity" - } - }, - "created_at" : { - "type" : "string", - "format" : "date-time" - }, - "dm_conversation_id" : { - "$ref" : "#/components/schemas/DmConversationId" - }, - "event_type" : { - "type" : "string", - "example" : "MessageCreate" - }, - "hashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/HashtagEntity" - } - }, - "id" : { - "$ref" : "#/components/schemas/DmEventId" - }, - "mentions" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/MentionEntity" - } - }, - "participant_ids" : { - "type" : "array", - "description" : "A list of participants for a ParticipantsJoin or ParticipantsLeave event_type.", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "referenced_tweets" : { - "type" : "array", - "description" : "A list of Posts this DM refers to.", - "minItems" : 1, - "items" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - } - }, - "sender_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "text" : { - "type" : "string" - }, - "urls" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UrlEntityDm" - } - } - } - }, - "DmEventId" : { - "type" : "string", - "description" : "Unique identifier of a DM Event.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "DmMediaAttachment" : { - "type" : "object", - "required" : [ - "media_id" - ], - "properties" : { - "media_id" : { - "$ref" : "#/components/schemas/MediaId" - } - } - }, - "DmParticipants" : { - "type" : "array", - "description" : "Participants for the DM Conversation.", - "minItems" : 2, - "maxItems" : 49, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "DomainRestrictions" : { - "type" : "object", - "required" : [ - "whitelist" - ], - "properties" : { - "whitelist" : { - "type" : "array", - "description" : "List of whitelisted domains", - "items" : { - "type" : "string" - } - } - } - }, - "DownloadExpiration" : { - "type" : "string", - "description" : "Expiration time of the download URL.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "DownloadUrl" : { - "type" : "string", - "description" : "URL from which the user will retrieve their compliance results.", - "format" : "uri" - }, - "DuplicateRuleProblem" : { - "description" : "The rule you have submitted is a duplicate.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "id" : { - "type" : "string" - }, - "value" : { - "type" : "string" - } - } - } - ] - }, - "End" : { - "type" : "string", - "description" : "The end time of the bucket.", - "format" : "date-time" - }, - "Engagement" : { - "type" : "object", - "description" : "An Engagement Api Response.", - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "type" : "object", - "properties" : { - "error" : { - "type" : "string" - }, - "tweets" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - } - } - }, - "measurement" : { - "type" : "object", - "properties" : { - "metrics_time_series" : { - "type" : "array", - "minItems" : 1, - "items" : { - "type" : "object", - "properties" : { - "tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "value" : { - "type" : "object", - "properties" : { - "metric_values" : { - "type" : "array", - "items" : { - "type" : "object", - "properties" : { - "metric_type" : { - "type" : "string" - }, - "metric_value" : { - "type" : "number" - } - } - } - }, - "timestamp" : { - "type" : "object", - "properties" : { - "iso8601_time" : { - "type" : "string" - } - } - } - } - } - } - } - }, - "metrics_total" : { - "type" : "array", - "minItems" : 1, - "items" : { - "type" : "object", - "properties" : { - "tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "value" : { - "type" : "array", - "minItems" : 1, - "items" : { - "type" : "object", - "properties" : { - "metric_type" : { - "type" : "string" - }, - "metric_value" : { - "type" : "number" - } - } - } - } - } - } - } - } - } - } - }, - "EntityIndicesInclusiveExclusive" : { - "type" : "object", - "description" : "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", - "required" : [ - "start", - "end" - ], - "properties" : { - "end" : { - "type" : "integer", - "description" : "Index (zero-based) at which position this entity ends. The index is exclusive.", - "minimum" : 0, - "example" : 61 - }, - "start" : { - "type" : "integer", - "description" : "Index (zero-based) at which position this entity starts. The index is inclusive.", - "minimum" : 0, - "example" : 50 - } - } - }, - "EntityIndicesInclusiveInclusive" : { - "type" : "object", - "description" : "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is inclusive.", - "required" : [ - "start", - "end" - ], - "properties" : { - "end" : { - "type" : "integer", - "description" : "Index (zero-based) at which position this entity ends. The index is inclusive.", - "minimum" : 0, - "example" : 61 - }, - "start" : { - "type" : "integer", - "description" : "Index (zero-based) at which position this entity starts. The index is inclusive.", - "minimum" : 0, - "example" : 50 - } - } - }, - "Error" : { - "type" : "object", - "required" : [ - "code", - "message" - ], - "properties" : { - "code" : { - "type" : "integer", - "format" : "int32" - }, - "message" : { - "type" : "string" - } - } - }, - "Expansions" : { - "type" : "object", - "properties" : { - "media" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Media" - } - }, - "places" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Place" - } - }, - "polls" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Poll" - } - }, - "topics" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Topic" - } - }, - "tweets" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "users" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - } - } - }, - "FieldUnauthorizedProblem" : { - "description" : "A problem that indicates that you are not allowed to see a particular field on a Tweet, User, etc.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "required" : [ - "resource_type", - "field", - "section" - ], - "properties" : { - "field" : { - "type" : "string" - }, - "resource_type" : { - "type" : "string", - "enum" : [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "section" : { - "type" : "string", - "enum" : [ - "data", - "includes" - ] - } - } - } - ] - }, - "FilteredStreamingTweetResponse" : { - "type" : "object", - "description" : "A Tweet or error that can be returned by the streaming Tweet API. The values returned with a successful streamed Tweet includes the user provided rules that the Tweet matched.", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "matching_rules" : { - "type" : "array", - "description" : "The list of rules which matched the Tweet", - "items" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/RuleId" - }, - "tag" : { - "$ref" : "#/components/schemas/RuleTag" - } - } - } - } - } - }, - "FoundMediaOrigin" : { - "type" : "object", - "required" : [ - "provider", - "id" - ], - "properties" : { - "id" : { - "type" : "string", - "description" : "Unique Identifier of media within provider ( <= 24 characters ))", - "example" : "u5BzatR15TZ04" - }, - "provider" : { - "type" : "string", - "description" : "The media provider (e.g., 'giphy') that sourced the media ( <= 8 Characters )", - "example" : "giphy" - } - } - }, - "FullTextEntities" : { - "type" : "object", - "properties" : { - "annotations" : { - "type" : "array", - "minItems" : 1, - "items" : { - "description" : "Annotation for entities based on the Tweet text.", - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveInclusive" - }, - { - "type" : "object", - "description" : "Represents the data for the annotation.", - "properties" : { - "normalized_text" : { - "type" : "string", - "description" : "Text used to determine annotation.", - "example" : "Barack Obama" - }, - "probability" : { - "type" : "number", - "description" : "Confidence factor for annotation type.", - "minimum" : 0, - "maximum" : 1, - "format" : "double" - }, - "type" : { - "type" : "string", - "description" : "Annotation type.", - "example" : "Person" - } - } - } - ] - } - }, - "cashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/CashtagEntity" - } - }, - "hashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/HashtagEntity" - } - }, - "mentions" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/MentionEntity" - } - }, - "urls" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UrlEntity" - } - } - } - }, - "GenericProblem" : { - "description" : "A generic problem with no additional information beyond that provided by the HTTP status code.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "Geo" : { - "type" : "object", - "required" : [ - "type", - "bbox", - "properties" - ], - "properties" : { - "bbox" : { - "type" : "array", - "minItems" : 4, - "maxItems" : 4, - "items" : { - "type" : "number", - "minimum" : -180, - "maximum" : 180, - "format" : "double" - }, - "example" : [ - -105.193475, - 39.60973, - -105.053164, - 39.761974 - ] - }, - "geometry" : { - "$ref" : "#/components/schemas/Point" - }, - "properties" : { - "type" : "object" - }, - "type" : { - "type" : "string", - "enum" : [ - "Feature" - ] - } - } - }, - "GeoRestrictions" : { - "oneOf" : [ - { - "type" : "object", - "required" : [ - "whitelisted_country_codes", - "blacklisted_country_codes" - ], - "properties" : { - "blacklisted_country_codes" : { - "type" : "array", - "description" : "List of blacklisted country codes", - "minItems" : 0, - "maxItems" : 0, - "items" : { - "type" : "string", - "description" : "Country code in ISO 3166-1 alpha-2 format", - "pattern" : "^[a-zA-Z]{2}$", - "example" : "us" - } - }, - "whitelisted_country_codes" : { - "type" : "array", - "description" : "List of whitelisted country codes", - "minItems" : 1, - "items" : { - "type" : "string", - "description" : "Country code in ISO 3166-1 alpha-2 format", - "pattern" : "^[a-zA-Z]{2}$", - "example" : "us" - } - } - } - }, - { - "type" : "object", - "required" : [ - "whitelisted_country_codes", - "blacklisted_country_codes" - ], - "properties" : { - "blacklisted_country_codes" : { - "type" : "array", - "description" : "List of blacklisted country codes", - "minItems" : 1, - "items" : { - "type" : "string", - "description" : "Country code in ISO 3166-1 alpha-2 format", - "pattern" : "^[a-zA-Z]{2}$", - "example" : "us" - } - }, - "whitelisted_country_codes" : { - "type" : "array", - "description" : "List of whitelisted country codes", - "minItems" : 0, - "maxItems" : 0, - "items" : { - "type" : "string", - "description" : "Country code in ISO 3166-1 alpha-2 format", - "pattern" : "^[a-zA-Z]{2}$", - "example" : "us" - } - } - } - } - ] - }, - "Get2CommunitiesIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Community" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2CommunitiesSearchResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Community" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - } - } - } - } - }, - "Get2ComplianceJobsIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/ComplianceJob" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2ComplianceJobsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/ComplianceJob" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmConversationsIdDmEventsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/DmEvent" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmConversationsWithParticipantIdDmEventsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/DmEvent" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmEventsEventIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/DmEvent" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2DmEventsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/DmEvent" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2FdxAccountsAccountidContactResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/PlaidAccountContact" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidPayment-networksResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/PlaidAccountPaymentNetwork" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/PlaidAccount" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidTransactionsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/PlaidAccountTransaction" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxCustomersCurrentResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/PlaidCustomer" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2Insights28hrResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Engagement" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2InsightsHistoricalResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Engagement" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2LikesFirehoseStreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/LikeWithTweetAuthor" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2LikesSample10StreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/LikeWithTweetAuthor" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2ListsIdFollowersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2ListsIdMembersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2ListsIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/List" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2ListsIdTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2MediaAnalyticsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/MediaAnalytics" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2MediaMediaKeyResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Media" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2MediaResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Media" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2NotesSearchNotesWrittenResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Note" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2NotesSearchPostsEligibleForNotesResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesByCreatorIdsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Space" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesIdBuyersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Space" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2SpacesIdTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Space" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2SpacesSearchResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Space" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TrendsByWoeidWoeidResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Trend" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2TweetsAnalyticsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Analytics" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2TweetsCountsAllResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/SearchCount" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "total_tweet_count" : { - "$ref" : "#/components/schemas/Aggregate" - } - } - } - } - }, - "Get2TweetsCountsRecentResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/SearchCount" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "total_tweet_count" : { - "$ref" : "#/components/schemas/Aggregate" - } - } - } - } - }, - "Get2TweetsFirehoseStreamLangEnResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangJaResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangKoResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangPtResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsIdLikingUsersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdQuoteTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsIdRetweetedByResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdRetweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSample10StreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSampleStreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSearchAllResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsSearchRecentResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsSearchStreamResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSearchStreamRulesCountsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/RulesCount" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2UsageTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Usage" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2UsersByResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2UsersByUsernameUsernameResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/User" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2UsersIdBlockingResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdBookmarksResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowedListsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/List" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowingResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdLikedTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdListMembershipsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/List" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdMentionsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdMutingResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdOwnedListsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/List" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdPinnedListsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/List" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/User" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2UsersIdTimelinesReverseChronologicalResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdTweetsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "newest_id" : { - "$ref" : "#/components/schemas/NewestId" - }, - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "oldest_id" : { - "$ref" : "#/components/schemas/OldestId" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersMeResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/User" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2UsersPersonalizedTrendsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/PersonalizedTrend" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Get2UsersRepostsOfMeResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Tweet" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - }, - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "Get2UsersSearchResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/User" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - }, - "meta" : { - "type" : "object", - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "previous_token" : { - "$ref" : "#/components/schemas/PreviousToken" - } - } - } - } - }, - "Get2WebhooksResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/WebhookConfig" - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "meta" : { - "type" : "object", - "properties" : { - "result_count" : { - "$ref" : "#/components/schemas/ResultCount" - } - } - } - } - }, - "HashtagEntity" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref" : "#/components/schemas/HashtagFields" - } - ] - }, - "HashtagFields" : { - "type" : "object", - "description" : "Represent the portion of text recognized as a Hashtag, and its start and end position within the text.", - "required" : [ - "tag" - ], - "properties" : { - "tag" : { - "type" : "string", - "description" : "The text of the Hashtag.", - "example" : "MondayMotivation" - } - } - }, - "HttpStatusCode" : { - "type" : "integer", - "description" : "HTTP Status Code.", - "minimum" : 100, - "maximum" : 599 - }, - "InvalidRequestProblem" : { - "description" : "A problem that indicates this request is invalid.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "type" : "object", - "properties" : { - "message" : { - "type" : "string" - }, - "parameters" : { - "type" : "object", - "additionalProperties" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - } - } - } - } - } - } - ] - }, - "InvalidRuleProblem" : { - "description" : "The rule you have submitted is invalid.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "JobId" : { - "type" : "string", - "description" : "Compliance Job ID.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1372966999991541762" - }, - "KillAllConnectionsResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "killed_connections" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "LikeComplianceSchema" : { - "type" : "object", - "required" : [ - "delete" - ], - "properties" : { - "delete" : { - "$ref" : "#/components/schemas/UnlikeComplianceSchema" - } - } - }, - "LikeId" : { - "type" : "string", - "description" : "The unique identifier of this Like.", - "pattern" : "^[A-Za-z0-9_]{1,40}$", - "example" : "8ba4f34e6235d905a46bac021d98e923" - }, - "LikeWithTweetAuthor" : { - "type" : "object", - "description" : "A Like event, with the tweet author user and the tweet being liked", - "properties" : { - "created_at" : { - "type" : "string", - "description" : "Creation time of the Tweet.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "id" : { - "$ref" : "#/components/schemas/LikeId" - }, - "liked_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "timestamp_ms" : { - "type" : "integer", - "description" : "Timestamp in milliseconds of creation.", - "format" : "int32" - }, - "tweet_author_id" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "LikesComplianceStreamResponse" : { - "description" : "Likes compliance stream events.", - "oneOf" : [ - { - "type" : "object", - "description" : "Compliance event.", - "required" : [ - "data" - ], - "properties" : { - "data" : { - "$ref" : "#/components/schemas/LikeComplianceSchema" - } - } - }, - { - "type" : "object", - "required" : [ - "errors" - ], - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - ] - }, - "List" : { - "type" : "object", - "description" : "A X List is a curated group of accounts.", - "required" : [ - "id", - "name" - ], - "properties" : { - "created_at" : { - "type" : "string", - "format" : "date-time" - }, - "description" : { - "type" : "string" - }, - "follower_count" : { - "type" : "integer" - }, - "id" : { - "$ref" : "#/components/schemas/ListId" - }, - "member_count" : { - "type" : "integer" - }, - "name" : { - "type" : "string", - "description" : "The name of this List." - }, - "owner_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "private" : { - "type" : "boolean" - } - } - }, - "ListAddUserRequest" : { - "type" : "object", - "required" : [ - "user_id" - ], - "properties" : { - "user_id" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "ListCreateRequest" : { - "type" : "object", - "required" : [ - "name" - ], - "properties" : { - "description" : { - "type" : "string", - "minLength" : 0, - "maxLength" : 100 - }, - "name" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 25 - }, - "private" : { - "type" : "boolean", - "default" : false - } - } - }, - "ListCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "description" : "A X List is a curated group of accounts.", - "required" : [ - "id", - "name" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/ListId" - }, - "name" : { - "type" : "string", - "description" : "The name of this List." - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "deleted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListFollowedRequest" : { - "type" : "object", - "required" : [ - "list_id" - ], - "properties" : { - "list_id" : { - "$ref" : "#/components/schemas/ListId" - } - } - }, - "ListFollowedResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "following" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListId" : { - "type" : "string", - "description" : "The unique identifier of this List.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "ListMutateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "is_member" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListPinnedRequest" : { - "type" : "object", - "required" : [ - "list_id" - ], - "properties" : { - "list_id" : { - "$ref" : "#/components/schemas/ListId" - } - } - }, - "ListPinnedResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "pinned" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListUnpinResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "pinned" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ListUpdateRequest" : { - "type" : "object", - "properties" : { - "description" : { - "type" : "string", - "minLength" : 0, - "maxLength" : 100 - }, - "name" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 25 - }, - "private" : { - "type" : "boolean" - } - } - }, - "ListUpdateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "updated" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "ManagementInfo" : { - "type" : "object", - "required" : [ - "managed" - ], - "properties" : { - "managed" : { - "type" : "boolean", - "description" : "Indicates if the media is managed by Media Studio", - "example" : false - } - } - }, - "Media" : { - "type" : "object", - "required" : [ - "type" - ], - "properties" : { - "height" : { - "$ref" : "#/components/schemas/MediaHeight" - }, - "media_key" : { - "$ref" : "#/components/schemas/MediaKey" - }, - "type" : { - "type" : "string" - }, - "width" : { - "$ref" : "#/components/schemas/MediaWidth" - } - }, - "discriminator" : { - "propertyName" : "type", - "mapping" : { - "animated_gif" : "#/components/schemas/AnimatedGif", - "photo" : "#/components/schemas/Photo", - "video" : "#/components/schemas/Video" - } - } - }, - "MediaAnalytics" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "media_key" : { - "$ref" : "#/components/schemas/MediaKey" - }, - "timestamped_metrics" : { - "type" : "array", - "title" : "Timestamped Metrics", - "description" : "Array containing metrics data along with the timestamps of their recording.", - "items" : { - "$ref" : "#/components/schemas/MediaTimestampedMetrics" - } - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "MediaCategory" : { - "type" : "string", - "description" : "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size, video duration) and enable advanced features.", - "enum" : [ - "amplify_video", - "tweet_gif", - "tweet_image", - "tweet_video", - "dm_gif", - "dm_image", - "dm_video", - "subtitles" - ], - "example" : "tweet_video" - }, - "MediaCategoryOneShot" : { - "type" : "string", - "description" : "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size) and enable advanced features.", - "enum" : [ - "tweet_image", - "dm_image", - "subtitles" - ], - "example" : "tweet_image" - }, - "MediaCategorySubtitles" : { - "type" : "string", - "description" : "The media category of uploaded media to which subtitles should be added/deleted", - "enum" : [ - "AmplifyVideo", - "TweetVideo" - ], - "example" : "TweetVideo" - }, - "MediaHeight" : { - "type" : "integer", - "description" : "The height of the media in pixels.", - "minimum" : 0 - }, - "MediaId" : { - "type" : "string", - "description" : "The unique identifier of this Media.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "MediaKey" : { - "type" : "string", - "description" : "The Media Key identifier for this attachment.", - "pattern" : "^([0-9]+)_([0-9]+)$" - }, - "MediaMetrics" : { - "type" : "object", - "properties" : { - "cta_url_clicks" : { - "type" : "integer", - "title" : "CTA URL Clicks", - "description" : "Tracks the number of clicks on a call-to-action URL" - }, - "cta_watch_clicks" : { - "type" : "integer", - "title" : "CTA Watch Clicks", - "description" : "Tracks the number of clicks to watch a video or media content" - }, - "play_from_tap" : { - "type" : "integer", - "title" : "Play From Tap", - "description" : "Tracks the number of times a video or media is played from a user tap" - }, - "playback25" : { - "type" : "integer", - "title" : "Playback 25%", - "description" : "Tracks the number of times a video reaches 25% of its duration" - }, - "playback50" : { - "type" : "integer", - "title" : "Playback 50%", - "description" : "Tracks the number of times a video reaches 50% of its duration" - }, - "playback75" : { - "type" : "integer", - "title" : "Playback 75%", - "description" : "Tracks the number of times a video reaches 75% of its duration" - }, - "playback_complete" : { - "type" : "integer", - "title" : "Playback Complete", - "description" : "Tracks the number of times a video is played to completion" - }, - "playback_start" : { - "type" : "integer", - "title" : "Playback Start", - "description" : "Tracks the number of times a video playback is initiated" - }, - "video_views" : { - "type" : "integer", - "title" : "Video Views", - "description" : "Tracks the number of times a video is viewed" - }, - "watch_time_ms" : { - "type" : "integer", - "title" : "Watch Time (ms)", - "description" : "Tracks the total time spent watching a video, measured in milliseconds" - } - } - }, - "MediaPayloadBinary" : { - "type" : "string", - "description" : "The file to upload.", - "format" : "binary" - }, - "MediaPayloadByte" : { - "type" : "string", - "description" : "The file to upload.", - "format" : "byte" - }, - "MediaSegments" : { - "oneOf" : [ - { - "type" : "integer", - "description" : "An integer value representing the media upload segment.", - "minimum" : 0, - "maximum" : 999, - "format" : "int32" - }, - { - "type" : "string", - "description" : "An integer value representing the media upload segment.", - "pattern" : "^[0-9]{1,3}$", - "format" : "integer" - } - ] - }, - "MediaTimestampedMetrics" : { - "type" : "object", - "properties" : { - "metrics" : { - "$ref" : "#/components/schemas/MediaMetrics" - }, - "timestamp" : { - "type" : "string", - "title" : "Timestamp", - "description" : "ISO8601 Time", - "example" : "2025-03-17T06:30:00Z" - } - } - }, - "MediaUploadAppendRequest" : { - "anyOf" : [ - { - "type" : "object", - "required" : [ - "media", - "segment_index" - ], - "properties" : { - "media" : { - "$ref" : "#/components/schemas/MediaPayloadBinary" - }, - "segment_index" : { - "$ref" : "#/components/schemas/MediaSegments" - } - } - }, - { - "type" : "object", - "required" : [ - "media", - "segment_index" - ], - "properties" : { - "media" : { - "$ref" : "#/components/schemas/MediaPayloadByte" - }, - "segment_index" : { - "$ref" : "#/components/schemas/MediaSegments" - } - } - } - ] - }, - "MediaUploadAppendResponse" : { - "type" : "object", - "description" : "A response from getting a media upload request status.", - "required" : [ - "meta" - ], - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "expires_at" : { - "type" : "integer", - "description" : "Unix epoch time in seconds after when the upload session expires.", - "format" : "int64" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "MediaUploadConfigRequest" : { - "type" : "object", - "properties" : { - "additional_owners" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "media_category" : { - "$ref" : "#/components/schemas/MediaCategory" - }, - "media_type" : { - "type" : "string", - "description" : "The type of media.", - "enum" : [ - "video/mp4", - "video/webm", - "video/mp2t", - "video/quicktime", - "text/srt", - "text/vtt", - "image/jpeg", - "image/gif", - "image/bmp", - "image/png", - "image/webp", - "image/pjpeg", - "image/tiff", - "model/gltf-binary", - "model/vnd.usdz+zip" - ], - "example" : "video/mp4" - }, - "shared" : { - "type" : "boolean", - "description" : "Whether this media is shared or not." - }, - "total_bytes" : { - "type" : "integer", - "description" : "The total size of the media upload in bytes.", - "minimum" : 0, - "maximum" : 17179869184 - } - }, - "additionalProperties" : false - }, - "MediaUploadRequestOneShot" : { - "type" : "object", - "required" : [ - "media", - "media_category" - ], - "properties" : { - "additional_owners" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "media" : { - "anyOf" : [ - { - "$ref" : "#/components/schemas/MediaPayloadBinary" - }, - { - "$ref" : "#/components/schemas/MediaPayloadByte" - } - ] - }, - "media_category" : { - "$ref" : "#/components/schemas/MediaCategoryOneShot" - }, - "media_type" : { - "type" : "string", - "description" : "The type of image or subtitle.", - "enum" : [ - "text/srt", - "text/vtt", - "image/jpeg", - "image/bmp", - "image/png", - "image/webp", - "image/pjpeg", - "image/tiff" - ], - "example" : "image/png" - }, - "shared" : { - "type" : "boolean", - "description" : "Whether this media is shared or not.", - "default" : false - } - }, - "additionalProperties" : false - }, - "MediaUploadResponse" : { - "type" : "object", - "description" : "A response from getting a media upload request status.", - "required" : [ - "meta" - ], - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "id", - "media_key" - ], - "properties" : { - "expires_after_secs" : { - "type" : "integer", - "description" : "Number of seconds after which upload session expires.", - "format" : "int32" - }, - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "media_key" : { - "$ref" : "#/components/schemas/MediaKey" - }, - "processing_info" : { - "$ref" : "#/components/schemas/ProcessingInfo" - }, - "size" : { - "type" : "integer", - "description" : "Size of the upload", - "format" : "int32" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "MediaWidth" : { - "type" : "integer", - "description" : "The width of the media in pixels.", - "minimum" : 0 - }, - "MentionEntity" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref" : "#/components/schemas/MentionFields" - } - ] - }, - "MentionFields" : { - "type" : "object", - "description" : "Represent the portion of text recognized as a User mention, and its start and end position within the text.", - "required" : [ - "username" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/UserId" - }, - "username" : { - "$ref" : "#/components/schemas/UserName" - } - } - }, - "MetadataCreateRequest" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "metadata" : { - "type" : "object", - "properties" : { - "allow_download_status" : { - "$ref" : "#/components/schemas/AllowDownloadStatus" - }, - "alt_text" : { - "$ref" : "#/components/schemas/AltText" - }, - "audience_policy" : { - "$ref" : "#/components/schemas/AudiencePolicy" - }, - "content_expiration" : { - "$ref" : "#/components/schemas/ContentExpiration" - }, - "domain_restrictions" : { - "$ref" : "#/components/schemas/DomainRestrictions" - }, - "found_media_origin" : { - "$ref" : "#/components/schemas/FoundMediaOrigin" - }, - "geo_restrictions" : { - "$ref" : "#/components/schemas/GeoRestrictions" - }, - "management_info" : { - "$ref" : "#/components/schemas/ManagementInfo" - }, - "preview_image" : { - "$ref" : "#/components/schemas/PreviewImage" - }, - "sensitive_media_warning" : { - "$ref" : "#/components/schemas/SensitiveMediaWarning" - }, - "shared_info" : { - "$ref" : "#/components/schemas/SharedInfo" - }, - "sticker_info" : { - "$ref" : "#/components/schemas/StickerInfo" - }, - "upload_source" : { - "$ref" : "#/components/schemas/UploadSource" - } - } - } - } - }, - "MetadataCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "associated_metadata" : { - "type" : "object", - "properties" : { - "allow_download_status" : { - "$ref" : "#/components/schemas/AllowDownloadStatus" - }, - "alt_text" : { - "$ref" : "#/components/schemas/AltText" - }, - "audience_policy" : { - "$ref" : "#/components/schemas/AudiencePolicy" - }, - "content_expiration" : { - "$ref" : "#/components/schemas/ContentExpiration" - }, - "domain_restrictions" : { - "$ref" : "#/components/schemas/DomainRestrictions" - }, - "found_media_origin" : { - "$ref" : "#/components/schemas/FoundMediaOrigin" - }, - "geo_restrictions" : { - "$ref" : "#/components/schemas/GeoRestrictions" - }, - "management_info" : { - "$ref" : "#/components/schemas/ManagementInfo" - }, - "preview_image" : { - "$ref" : "#/components/schemas/PreviewImage" - }, - "sensitive_media_warning" : { - "$ref" : "#/components/schemas/SensitiveMediaWarning" - }, - "shared_info" : { - "$ref" : "#/components/schemas/SharedInfo" - }, - "sticker_info" : { - "$ref" : "#/components/schemas/StickerInfo" - }, - "upload_source" : { - "$ref" : "#/components/schemas/UploadSource" - } - } - }, - "id" : { - "$ref" : "#/components/schemas/MediaId" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Metrics" : { - "type" : "object", - "properties" : { - "app_install_attempts" : { - "type" : "integer", - "title" : "App Install Attempts", - "description" : "Tracks number of App Install Attempts" - }, - "app_opens" : { - "type" : "integer", - "title" : "App Opens", - "description" : "Tracks number of App opens" - }, - "detail_expands" : { - "type" : "integer", - "title" : "Detail Expands", - "description" : "Tracks number of Detail expands" - }, - "email_tweet" : { - "type" : "integer", - "title" : "Email Tweet", - "description" : "Tracks number of Email Tweet actions" - }, - "engagements" : { - "type" : "integer", - "title" : "Engagements", - "description" : "Tracks total Engagements" - }, - "follows" : { - "type" : "integer", - "title" : "Follows", - "description" : "Tracks number of Follows" - }, - "hashtag_clicks" : { - "type" : "integer", - "title" : "Hashtag Clicks", - "description" : "Tracks number of Hashtag clicks" - }, - "impressions" : { - "type" : "integer", - "title" : "Impressions", - "description" : "Tracks number of Impressions" - }, - "likes" : { - "type" : "integer", - "title" : "Likes", - "description" : "Tracks number of Likes" - }, - "link_clicks" : { - "type" : "integer", - "title" : "Link Clicks", - "description" : "Tracks number of Link clicks" - }, - "media_engagements" : { - "type" : "integer", - "title" : "Media Engagements", - "description" : "Tracks number of Media engagements" - }, - "media_views" : { - "type" : "integer", - "title" : "Media Views", - "description" : "Tracks number of Media views" - }, - "permalink_clicks" : { - "type" : "integer", - "title" : "Permalink Clicks", - "description" : "Tracks number of Permalink clicks" - }, - "profile_visits" : { - "type" : "integer", - "title" : "Profile Visits", - "description" : "Tracks number of Profile visits" - }, - "quote_tweets" : { - "type" : "integer", - "title" : "Quote Tweets", - "description" : "Tracks number of Quote Tweets" - }, - "replies" : { - "type" : "integer", - "title" : "Replies", - "description" : "Tracks number of Replies" - }, - "retweets" : { - "type" : "integer", - "title" : "Retweets", - "description" : "Tracks number of Retweets" - }, - "url_clicks" : { - "type" : "integer", - "title" : "URL Clicks", - "description" : "Tracks number of URL clicks" - }, - "user_profile_clicks" : { - "type" : "integer", - "title" : "User Profile Clicks", - "description" : "Tracks number of User Profile clicks" - } - } - }, - "MisleadingTags" : { - "type" : "string", - "description" : "Community Note misleading tags type.", - "enum" : [ - "disputed_claim_as_fact", - "factual_error", - "manipulated_media", - "misinterpreted_satire", - "missing_important_context", - "other", - "outdated_information" - ] - }, - "MuteUserMutationResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "muting" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "MuteUserRequest" : { - "type" : "object", - "required" : [ - "target_user_id" - ], - "properties" : { - "target_user_id" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "NewestId" : { - "type" : "string", - "description" : "The newest id in this response." - }, - "NextToken" : { - "type" : "string", - "description" : "The next token.", - "minLength" : 1 - }, - "NonCompliantRulesProblem" : { - "description" : "A problem that indicates the user's rule set is not compliant.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "Note" : { - "type" : "object", - "description" : "A X Community Note is a note on a Post.", - "required" : [ - "id", - "post_id", - "note_info" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/NoteId" - }, - "info" : { - "$ref" : "#/components/schemas/NoteInfo" - }, - "post_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "status" : { - "$ref" : "#/components/schemas/NoteRatingStatus" - }, - "test_result" : { - "$ref" : "#/components/schemas/NoteTestResult" - } - } - }, - "NoteClassification" : { - "type" : "string", - "description" : "Community Note classification type.", - "enum" : [ - "misinformed_or_potentially_misleading", - "not_misleading" - ] - }, - "NoteId" : { - "type" : "string", - "description" : "The unique identifier of this Community Note.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "NoteInfo" : { - "type" : "object", - "description" : "A X Community Note is a note on a Post.", - "required" : [ - "text", - "classification", - "misleading_tags", - "trustworthy_sources" - ], - "properties" : { - "classification" : { - "$ref" : "#/components/schemas/NoteClassification" - }, - "misleading_tags" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/MisleadingTags" - } - }, - "text" : { - "type" : "string", - "description" : "The text summary in the Community Note.", - "pattern" : "^(?=.*https?://\\S+).+$" - }, - "trustworthy_sources" : { - "type" : "boolean", - "description" : "Whether the note provided trustworthy links." - } - }, - "additionalProperties" : false - }, - "NoteRatingStatus" : { - "type" : "string", - "description" : "Community Note rating status. Only returned when test result is false", - "enum" : [ - "currently_rated_helpful", - "currently_rated_not_helpful", - "firm_reject", - "insufficient_consensus", - "minimum_ratings_not_met", - "needs_more_ratings", - "needs_your_help" - ] - }, - "NoteTestResult" : { - "type" : "object", - "description" : "The test result of a community note.", - "properties" : { - "evaluator_score" : { - "type" : "number", - "description" : "The score given to a written test note.", - "format" : "double" - }, - "evaluator_type" : { - "type" : "string", - "description" : "The type of evaluator response." - } - } - }, - "NoteTweetText" : { - "type" : "string", - "description" : "The note content of the Tweet.", - "example" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" - }, - "Oauth1PermissionsProblem" : { - "description" : "A problem that indicates your client application does not have the required OAuth1 permissions for the requested endpoint.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "OldestId" : { - "type" : "string", - "description" : "The oldest id in this response." - }, - "OperationalDisconnectProblem" : { - "description" : "You have been disconnected for operational reasons.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "disconnect_type" : { - "type" : "string", - "enum" : [ - "OperationalDisconnect", - "UpstreamOperationalDisconnect", - "ForceDisconnect", - "UpstreamUncleanDisconnect", - "SlowReader", - "InternalError", - "ClientApplicationStateDegraded", - "InvalidRules" - ] - } - } - } - ] - }, - "PaginationToken32" : { - "type" : "string", - "description" : "A base32 pagination token.", - "minLength" : 16 - }, - "PaginationToken36" : { - "type" : "string", - "description" : "A base36 pagination token.", - "minLength" : 1 - }, - "PaginationTokenLong" : { - "type" : "string", - "description" : "A 'long' pagination token.", - "minLength" : 1, - "maxLength" : 19 - }, - "PersonalizedTrend" : { - "type" : "object", - "description" : "A trend.", - "properties" : { - "category" : { - "type" : "string", - "description" : "Category of this trend." - }, - "post_count" : { - "type" : "integer", - "description" : "Number of posts pertaining to this trend." - }, - "trend_name" : { - "type" : "string", - "description" : "Name of the trend." - }, - "trending_since" : { - "type" : "string", - "description" : "Time since this is trending." - } - } - }, - "Photo" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/Media" - }, - { - "type" : "object", - "properties" : { - "alt_text" : { - "type" : "string" - }, - "url" : { - "type" : "string", - "format" : "uri" - } - } - } - ] - }, - "Place" : { - "type" : "object", - "required" : [ - "id", - "full_name" - ], - "properties" : { - "contained_within" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/PlaceId" - } - }, - "country" : { - "type" : "string", - "description" : "The full name of the county in which this place exists.", - "example" : "United States" - }, - "country_code" : { - "$ref" : "#/components/schemas/CountryCode" - }, - "full_name" : { - "type" : "string", - "description" : "The full name of this place.", - "example" : "Lakewood, CO" - }, - "geo" : { - "$ref" : "#/components/schemas/Geo" - }, - "id" : { - "$ref" : "#/components/schemas/PlaceId" - }, - "name" : { - "type" : "string", - "description" : "The human readable name of this place.", - "example" : "Lakewood" - }, - "place_type" : { - "$ref" : "#/components/schemas/PlaceType" - } - } - }, - "PlaceId" : { - "type" : "string", - "description" : "The identifier for this place.", - "example" : "f7eb2fa2fea288b1" - }, - "PlaceType" : { - "type" : "string", - "enum" : [ - "poi", - "neighborhood", - "city", - "admin", - "country", - "unknown" - ], - "example" : "city" - }, - "PlaidAccount" : { - "type" : "object", - "description" : "Descriptor for a Plaid account.", - "required" : [ - "accountId", - "accountCategory", - "accountNumberDisplay", - "accountType", - "currency", - "productName", - "status" - ], - "properties" : { - "accountCategory" : { - "type" : "string", - "description" : "The category of the account (e.g., personal, business)." - }, - "accountId" : { - "type" : "string", - "description" : "The Plaid account ID." - }, - "accountNumberDisplay" : { - "type" : "string", - "description" : "The last 2-4 digits of the account number." - }, - "accountType" : { - "type" : "string", - "description" : "The type of the account (e.g., checking, savings)." - }, - "availableBalance" : { - "type" : "number", - "description" : "The available balance of the account." - }, - "currency" : { - "$ref" : "#/components/schemas/PlaidCurrency" - }, - "currentBalance" : { - "type" : "number", - "description" : "The current balance of the account." - }, - "nickname" : { - "type" : "string", - "description" : "The nickname of the account." - }, - "productName" : { - "type" : "string", - "description" : "The name of the product associated with the account." - }, - "status" : { - "type" : "string", - "description" : "The status of the account." - } - } - }, - "PlaidAccountContact" : { - "type" : "object", - "description" : "Contact information associated with a Plaid account.", - "required" : [ - "name", - "addresses", - "emails", - "telephones" - ], - "properties" : { - "addresses" : { - "type" : "array", - "description" : "List of addresses associated with the account holder.", - "items" : { - "$ref" : "#/components/schemas/PlaidAddress" - } - }, - "emails" : { - "type" : "array", - "description" : "List of email addresses associated with the account holder.", - "items" : { - "type" : "string" - } - }, - "name" : { - "$ref" : "#/components/schemas/PlaidName" - }, - "relationship" : { - "type" : "string", - "description" : "Relationship of the contact to the account." - }, - "telephones" : { - "type" : "array", - "description" : "List of telephone numbers associated with the account holder.", - "items" : { - "$ref" : "#/components/schemas/PlaidTelephone" - } - } - } - }, - "PlaidAccountPaymentNetwork" : { - "type" : "object", - "description" : "Payment network details associated with the account.", - "required" : [ - "identifier", - "type", - "transferIn", - "transferOut", - "bankId" - ], - "properties" : { - "bankId" : { - "type" : "string", - "description" : "The bank ID associated with the account." - }, - "identifier" : { - "type" : "string", - "description" : "The payment network identifier." - }, - "transferIn" : { - "type" : "boolean", - "description" : "Indicates if transfers into the account are supported." - }, - "transferOut" : { - "type" : "boolean", - "description" : "Indicates if transfers out of the account are supported." - }, - "type" : { - "type" : "string", - "description" : "The type of payment network (e.g., ACH, SEPA)." - } - } - }, - "PlaidAccountTransaction" : { - "type" : "object", - "description" : "Descriptor for a Plaid account.", - "required" : [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "status", - "transactionId", - "transactionTimestamp" - ], - "properties" : { - "accountCategory" : { - "type" : "string", - "description" : "The category of the account (e.g., personal, business)." - }, - "amount" : { - "type" : "number", - "description" : "The amount transacted." - }, - "debitCreditMemo" : { - "type" : "string", - "description" : "Memo for transaction (e.g. CREDIT)" - }, - "description" : { - "type" : "string", - "description" : "The transaction description" - }, - "postedTimestamp" : { - "type" : "string", - "description" : "The timestamp when the transaction was posted." - }, - "status" : { - "type" : "string", - "description" : "The status of the transaction." - }, - "transactionId" : { - "type" : "string", - "description" : "The identifier for the transaction." - }, - "transactionTimestamp" : { - "type" : "string", - "description" : "The timestamp when the transaction occurred." - } - } - }, - "PlaidAddress" : { - "type" : "object", - "description" : "Address information for the account holder.", - "required" : [ - "city", - "country", - "line1" - ], - "properties" : { - "city" : { - "type" : "string", - "description" : "The city of the address." - }, - "country" : { - "type" : "string", - "description" : "The country of the address (ISO 3166-1 alpha-2 code)." - }, - "line1" : { - "type" : "string", - "description" : "The first line of the address." - }, - "line2" : { - "type" : "string", - "description" : "The second line of the address." - }, - "postalCode" : { - "type" : "string", - "description" : "The postal code of the address." - }, - "region" : { - "type" : "string", - "description" : "The region or state of the address." - } - } - }, - "PlaidCurrency" : { - "type" : "object", - "description" : "Currency information.", - "required" : [ - "currencyCode" - ], - "properties" : { - "currencyCode" : { - "type" : "string", - "description" : "The ISO 4217 currency code." - } - } - }, - "PlaidCustomer" : { - "type" : "object", - "description" : "A user id for the plaid customer", - "properties" : { - "customerId" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "PlaidName" : { - "type" : "object", - "description" : "Name information for the account holder.", - "required" : [ - "first", - "last" - ], - "properties" : { - "first" : { - "type" : "string", - "description" : "The first name of the account holder." - }, - "last" : { - "type" : "string", - "description" : "The last name of the account holder." - } - } - }, - "PlaidTelephone" : { - "type" : "object", - "description" : "Telephone information for the account holder.", - "required" : [ - "country", - "number", - "type" - ], - "properties" : { - "country" : { - "type" : "string", - "description" : "The country code for the phone number (e.g., '+1')." - }, - "number" : { - "type" : "string", - "description" : "The phone number." - }, - "type" : { - "type" : "string", - "description" : "The type of phone number (e.g., 'mobile')." - } - } - }, - "Point" : { - "type" : "object", - "description" : "A [GeoJson Point](https://tools.ietf.org/html/rfc7946#section-3.1.2) geometry object.", - "required" : [ - "type", - "coordinates" - ], - "properties" : { - "coordinates" : { - "$ref" : "#/components/schemas/Position" - }, - "type" : { - "type" : "string", - "enum" : [ - "Point" - ], - "example" : "Point" - } - } - }, - "Poll" : { - "type" : "object", - "description" : "Represent a Poll attached to a Tweet.", - "required" : [ - "id", - "options" - ], - "properties" : { - "duration_minutes" : { - "type" : "integer", - "minimum" : 5, - "maximum" : 10080, - "format" : "int32" - }, - "end_datetime" : { - "type" : "string", - "format" : "date-time" - }, - "id" : { - "$ref" : "#/components/schemas/PollId" - }, - "options" : { - "type" : "array", - "minItems" : 2, - "maxItems" : 4, - "items" : { - "$ref" : "#/components/schemas/PollOption" - } - }, - "voting_status" : { - "type" : "string", - "enum" : [ - "open", - "closed" - ] - } - } - }, - "PollId" : { - "type" : "string", - "description" : "Unique identifier of this poll.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1365059861688410112" - }, - "PollOption" : { - "type" : "object", - "description" : "Describes a choice in a Poll object.", - "required" : [ - "position", - "label", - "votes" - ], - "properties" : { - "label" : { - "$ref" : "#/components/schemas/PollOptionLabel" - }, - "position" : { - "type" : "integer", - "description" : "Position of this choice in the poll." - }, - "votes" : { - "type" : "integer", - "description" : "Number of users who voted for this choice." - } - } - }, - "PollOptionLabel" : { - "type" : "string", - "description" : "The text of a poll choice.", - "minLength" : 1, - "maxLength" : 25 - }, - "Position" : { - "type" : "array", - "description" : "A [GeoJson Position](https://tools.ietf.org/html/rfc7946#section-3.1.1) in the format `[longitude,latitude]`.", - "minItems" : 2, - "maxItems" : 2, - "items" : { - "type" : "number" - }, - "example" : [ - -105.18816086351444, - 40.247749999999996 - ] - }, - "PreviewImage" : { - "type" : "object", - "required" : [ - "media_key" - ], - "properties" : { - "media_key" : { - "type" : "object", - "properties" : { - "media" : { - "$ref" : "#/components/schemas/MediaId" - }, - "media_category" : { - "type" : "string", - "description" : "The media category of media", - "enum" : [ - "TweetImage" - ], - "default" : "TweetImage", - "example" : "TweetImage" - } - } - } - } - }, - "PreviousToken" : { - "type" : "string", - "description" : "The previous token.", - "minLength" : 1 - }, - "Problem" : { - "type" : "object", - "description" : "An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).", - "required" : [ - "type", - "title" - ], - "properties" : { - "detail" : { - "type" : "string" - }, - "status" : { - "type" : "integer" - }, - "title" : { - "type" : "string" - }, - "type" : { - "type" : "string" - } - }, - "discriminator" : { - "propertyName" : "type", - "mapping" : { - "about:blank" : "#/components/schemas/GenericProblem", - "https://api.twitter.com/2/problems/client-disconnected" : "#/components/schemas/ClientDisconnectedProblem", - "https://api.twitter.com/2/problems/client-forbidden" : "#/components/schemas/ClientForbiddenProblem", - "https://api.twitter.com/2/problems/conflict" : "#/components/schemas/ConflictProblem", - "https://api.twitter.com/2/problems/disallowed-resource" : "#/components/schemas/DisallowedResourceProblem", - "https://api.twitter.com/2/problems/duplicate-rules" : "#/components/schemas/DuplicateRuleProblem", - "https://api.twitter.com/2/problems/invalid-request" : "#/components/schemas/InvalidRequestProblem", - "https://api.twitter.com/2/problems/invalid-rules" : "#/components/schemas/InvalidRuleProblem", - "https://api.twitter.com/2/problems/noncompliant-rules" : "#/components/schemas/NonCompliantRulesProblem", - "https://api.twitter.com/2/problems/not-authorized-for-field" : "#/components/schemas/FieldUnauthorizedProblem", - "https://api.twitter.com/2/problems/not-authorized-for-resource" : "#/components/schemas/ResourceUnauthorizedProblem", - "https://api.twitter.com/2/problems/operational-disconnect" : "#/components/schemas/OperationalDisconnectProblem", - "https://api.twitter.com/2/problems/resource-not-found" : "#/components/schemas/ResourceNotFoundProblem", - "https://api.twitter.com/2/problems/resource-unavailable" : "#/components/schemas/ResourceUnavailableProblem", - "https://api.twitter.com/2/problems/rule-cap" : "#/components/schemas/RulesCapProblem", - "https://api.twitter.com/2/problems/streaming-connection" : "#/components/schemas/ConnectionExceptionProblem", - "https://api.twitter.com/2/problems/unsupported-authentication" : "#/components/schemas/UnsupportedAuthenticationProblem", - "https://api.twitter.com/2/problems/usage-capped" : "#/components/schemas/UsageCapExceededProblem" - } - } - }, - "ProcessingInfo" : { - "type" : "object", - "required" : [ - "type" - ], - "properties" : { - "check_after_secs" : { - "type" : "integer", - "description" : "Number of seconds to check again for status", - "format" : "int32" - }, - "progress_percent" : { - "type" : "integer", - "description" : "Percent of upload progress", - "format" : "int32" - }, - "state" : { - "type" : "string", - "description" : "State of upload", - "enum" : [ - "succeeded", - "in_progress", - "pending", - "failed" - ] - } - } - }, - "ReplayJobCreateResponse" : { - "type" : "object", - "description" : "Confirmation that the replay job request was accepted.", - "required" : [ - "job_id", - "created_at" - ], - "properties" : { - "created_at" : { - "type" : "string", - "description" : "The UTC timestamp indicating when the replay job was created.", - "format" : "date-time", - "example" : "2025-04-24T20:57:15.242Z" - }, - "job_id" : { - "type" : "string", - "description" : "The unique identifier for the initiated replay job.", - "example" : "1915510368169844736" - } - } - }, - "ReplySettings" : { - "type" : "string", - "description" : "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, and following.", - "pattern" : "^[A-Za-z]{1,12}$", - "enum" : [ - "everyone", - "mentionedUsers", - "following", - "other" - ] - }, - "ReplySettingsWithVerifiedUsers" : { - "type" : "string", - "description" : "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, subscribers, verified and following.", - "pattern" : "^[A-Za-z]{1,12}$", - "enum" : [ - "everyone", - "mentionedUsers", - "following", - "other", - "subscribers", - "verified" - ] - }, - "ResourceNotFoundProblem" : { - "description" : "A problem that indicates that a given Tweet, User, etc. does not exist.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "required" : [ - "parameter", - "value", - "resource_id", - "resource_type" - ], - "properties" : { - "parameter" : { - "type" : "string", - "minLength" : 1 - }, - "resource_id" : { - "type" : "string" - }, - "resource_type" : { - "type" : "string", - "enum" : [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "value" : { - "type" : "string", - "description" : "Value will match the schema of the field." - } - } - } - ] - }, - "ResourceUnauthorizedProblem" : { - "description" : "A problem that indicates you are not allowed to see a particular Tweet, User, etc.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "required" : [ - "value", - "resource_id", - "resource_type", - "section", - "parameter" - ], - "properties" : { - "parameter" : { - "type" : "string" - }, - "resource_id" : { - "type" : "string" - }, - "resource_type" : { - "type" : "string", - "enum" : [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "section" : { - "type" : "string", - "enum" : [ - "data", - "includes" - ] - }, - "value" : { - "type" : "string" - } - } - } - ] - }, - "ResourceUnavailableProblem" : { - "description" : "A problem that indicates a particular Tweet, User, etc. is not available to you.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "required" : [ - "parameter", - "resource_id", - "resource_type" - ], - "properties" : { - "parameter" : { - "type" : "string", - "minLength" : 1 - }, - "resource_id" : { - "type" : "string" - }, - "resource_type" : { - "type" : "string", - "enum" : [ - "user", - "tweet", - "media", - "list", - "space" - ] - } - } - } - ] - }, - "ResultCount" : { - "type" : "integer", - "description" : "The number of results returned in this response.", - "format" : "int32" - }, - "Rule" : { - "type" : "object", - "description" : "A user-provided stream filtering rule.", - "required" : [ - "value" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/RuleId" - }, - "tag" : { - "$ref" : "#/components/schemas/RuleTag" - }, - "value" : { - "$ref" : "#/components/schemas/RuleValue" - } - } - }, - "RuleId" : { - "type" : "string", - "description" : "Unique identifier of this rule.", - "pattern" : "^[0-9]{1,19}$", - "example" : "120897978112909812" - }, - "RuleNoId" : { - "type" : "object", - "description" : "A user-provided stream filtering rule.", - "required" : [ - "value" - ], - "properties" : { - "tag" : { - "$ref" : "#/components/schemas/RuleTag" - }, - "value" : { - "$ref" : "#/components/schemas/RuleValue" - } - } - }, - "RuleTag" : { - "type" : "string", - "description" : "A tag meant for the labeling of user provided rules.", - "example" : "Non-retweeted coffee Posts" - }, - "RuleValue" : { - "type" : "string", - "description" : "The filterlang value of the rule.", - "example" : "coffee -is:retweet" - }, - "RulesCapProblem" : { - "description" : "You have exceeded the maximum number of rules.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "RulesCount" : { - "type" : "object", - "description" : "A count of user-provided stream filtering rules at the application and project levels.", - "properties" : { - "all_project_client_apps" : { - "$ref" : "#/components/schemas/AllProjectClientApps" - }, - "cap_per_client_app" : { - "type" : "integer", - "description" : "Cap of number of rules allowed per client application", - "format" : "int32" - }, - "cap_per_project" : { - "type" : "integer", - "description" : "Cap of number of rules allowed per project", - "format" : "int32" - }, - "client_app_rules_count" : { - "$ref" : "#/components/schemas/AppRulesCount" - }, - "project_rules_count" : { - "type" : "integer", - "description" : "Number of rules for project", - "format" : "int32" - } - } - }, - "RulesLookupResponse" : { - "type" : "object", - "required" : [ - "meta" - ], - "properties" : { - "data" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Rule" - } - }, - "meta" : { - "$ref" : "#/components/schemas/RulesResponseMetadata" - } - } - }, - "RulesRequestSummary" : { - "oneOf" : [ - { - "type" : "object", - "description" : "A summary of the results of the addition of user-specified stream filtering rules.", - "required" : [ - "created", - "not_created", - "valid", - "invalid" - ], - "properties" : { - "created" : { - "type" : "integer", - "description" : "Number of user-specified stream filtering rules that were created.", - "format" : "int32", - "example" : 1 - }, - "invalid" : { - "type" : "integer", - "description" : "Number of invalid user-specified stream filtering rules.", - "format" : "int32", - "example" : 1 - }, - "not_created" : { - "type" : "integer", - "description" : "Number of user-specified stream filtering rules that were not created.", - "format" : "int32", - "example" : 1 - }, - "valid" : { - "type" : "integer", - "description" : "Number of valid user-specified stream filtering rules.", - "format" : "int32", - "example" : 1 - } - } - }, - { - "type" : "object", - "required" : [ - "deleted", - "not_deleted" - ], - "properties" : { - "deleted" : { - "type" : "integer", - "description" : "Number of user-specified stream filtering rules that were deleted.", - "format" : "int32" - }, - "not_deleted" : { - "type" : "integer", - "description" : "Number of user-specified stream filtering rules that were not deleted.", - "format" : "int32" - } - } - } - ] - }, - "RulesResponseMetadata" : { - "type" : "object", - "required" : [ - "sent" - ], - "properties" : { - "next_token" : { - "$ref" : "#/components/schemas/NextToken" - }, - "result_count" : { - "type" : "integer", - "description" : "Number of Rules in result set.", - "format" : "int32" - }, - "sent" : { - "type" : "string" - }, - "summary" : { - "$ref" : "#/components/schemas/RulesRequestSummary" - } - } - }, - "SearchCount" : { - "type" : "object", - "description" : "Represent a Search Count Result.", - "required" : [ - "end", - "start", - "tweet_count" - ], - "properties" : { - "end" : { - "$ref" : "#/components/schemas/End" - }, - "start" : { - "$ref" : "#/components/schemas/Start" - }, - "tweet_count" : { - "$ref" : "#/components/schemas/TweetCount" - } - } - }, - "SensitiveMediaWarning" : { - "type" : "object", - "properties" : { - "adult_content" : { - "type" : "boolean", - "description" : "Indicates if the content contains adult material", - "example" : true - }, - "graphic_violence" : { - "type" : "boolean", - "description" : "Indicates if the content depicts graphic violence", - "example" : true - }, - "other" : { - "type" : "boolean", - "description" : "Indicates if the content has other sensitive characteristics", - "example" : false - } - } - }, - "SharedInfo" : { - "type" : "object", - "required" : [ - "shared" - ], - "properties" : { - "shared" : { - "type" : "boolean", - "description" : "Indicates if the media is shared in direct messages", - "example" : false - } - } - }, - "Space" : { - "type" : "object", - "description" : "", - "required" : [ - "id", - "state" - ], - "properties" : { - "created_at" : { - "type" : "string", - "description" : "Creation time of the Space.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "creator_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "ended_at" : { - "type" : "string", - "description" : "End time of the Space.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "host_ids" : { - "type" : "array", - "description" : "The user ids for the hosts of the Space.", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "id" : { - "$ref" : "#/components/schemas/SpaceId" - }, - "invited_user_ids" : { - "type" : "array", - "description" : "An array of user ids for people who were invited to a Space.", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "is_ticketed" : { - "type" : "boolean", - "description" : "Denotes if the Space is a ticketed Space.", - "example" : "false" - }, - "lang" : { - "type" : "string", - "description" : "The language of the Space.", - "example" : "en" - }, - "participant_count" : { - "type" : "integer", - "description" : "The number of participants in a Space.", - "format" : "int32", - "example" : 10 - }, - "scheduled_start" : { - "type" : "string", - "description" : "A date time stamp for when a Space is scheduled to begin.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "speaker_ids" : { - "type" : "array", - "description" : "An array of user ids for people who were speakers in a Space.", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "started_at" : { - "type" : "string", - "description" : "When the Space was started as a date string.", - "format" : "date-time", - "example" : "2021-7-14T04:35:55Z" - }, - "state" : { - "type" : "string", - "description" : "The current state of the Space.", - "enum" : [ - "live", - "scheduled", - "ended" - ], - "example" : "live" - }, - "subscriber_count" : { - "type" : "integer", - "description" : "The number of people who have either purchased a ticket or set a reminder for this Space.", - "format" : "int32", - "example" : 10 - }, - "title" : { - "type" : "string", - "description" : "The title of the Space.", - "example" : "Spaces are Awesome" - }, - "topics" : { - "type" : "array", - "description" : "The topics of a Space, as selected by its creator.", - "items" : { - "type" : "object", - "description" : "The X Topic object.", - "required" : [ - "id", - "name" - ], - "properties" : { - "description" : { - "type" : "string", - "description" : "The description of the given topic." - }, - "id" : { - "type" : "string", - "description" : "An ID suitable for use in the REST API." - }, - "name" : { - "type" : "string", - "description" : "The name of the given topic." - } - }, - "example" : { - "description" : "All about technology", - "id" : "848920371311001600", - "name" : "Technology" - } - } - }, - "updated_at" : { - "type" : "string", - "description" : "When the Space was last updated.", - "format" : "date-time", - "example" : "2021-7-14T04:35:55Z" - } - } - }, - "SpaceId" : { - "type" : "string", - "description" : "The unique identifier of this Space.", - "pattern" : "^[a-zA-Z0-9]{1,13}$", - "example" : "1SLjjRYNejbKM" - }, - "Start" : { - "type" : "string", - "description" : "The start time of the bucket.", - "format" : "date-time" - }, - "Sticker" : { - "type" : "object", - "properties" : { - "aspect_ratio" : { - "type" : "number", - "description" : "width-to-height ratio of the media", - "format" : "double", - "example" : 1.78 - }, - "group_annotation_id" : { - "type" : "number", - "description" : "A unique identifier for the group of annotations associated with the media", - "format" : "long", - "example" : 987654321098765 - }, - "id" : { - "type" : "string", - "description" : "Unique identifier for sticker", - "example" : "12345" - }, - "sticker_set_annotation_id" : { - "type" : "number", - "description" : "A unique identifier for the sticker set associated with the media", - "format" : "long", - "example" : 123456789012345 - }, - "transform_a" : { - "type" : "number", - "description" : "Scale or rotate the media on the x-axis", - "format" : "double", - "example" : 1.0 - }, - "transform_b" : { - "type" : "number", - "description" : "Skew the media on the x-axis", - "format" : "double", - "example" : 0.0 - }, - "transform_c" : { - "type" : "number", - "description" : "Skew the media on the y-axis", - "format" : "double", - "example" : 0.0 - }, - "transform_d" : { - "type" : "number", - "description" : "Scale or rotate the media on the y-axis", - "format" : "double", - "example" : 1.0 - }, - "transform_tx" : { - "type" : "number", - "description" : "Scale or rotate the media on the x-axis", - "format" : "double", - "example" : 10.5 - }, - "transform_ty" : { - "type" : "number", - "description" : "The vertical translation (shift) value for the media", - "format" : "double", - "example" : -5.2 - } - } - }, - "StickerInfo" : { - "type" : "object", - "required" : [ - "stickers" - ], - "properties" : { - "stickers" : { - "type" : "array", - "description" : "Stickers list must not be empty and should not exceed 25", - "items" : { - "$ref" : "#/components/schemas/Sticker" - } - } - } - }, - "StreamingLikeResponseV2" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/LikeWithTweetAuthor" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "StreamingTweetResponse" : { - "type" : "object", - "properties" : { - "data" : { - "$ref" : "#/components/schemas/Tweet" - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - }, - "includes" : { - "$ref" : "#/components/schemas/Expansions" - } - } - }, - "SubscriptionsCountGetResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "description" : "The count of active subscriptions across all webhooks", - "required" : [ - "account_name", - "provisioned_count", - "subscriptions_count_all", - "subscriptions_count_direct_messages" - ], - "properties" : { - "account_name" : { - "type" : "string", - "description" : "The account name" - }, - "provisioned_count" : { - "type" : "string", - "description" : "The limit for subscriptions for this app" - }, - "subscriptions_count_all" : { - "type" : "string", - "description" : "The number of active subscriptions across all webhooks" - }, - "subscriptions_count_direct_messages" : { - "type" : "string", - "description" : "The number of active direct message subscriptions" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsCreateRequest" : { - "type" : "object" - }, - "SubscriptionsCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "subscribed" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "subscribed" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsGetResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "subscribed" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsListGetResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "description" : "The list of active subscriptions for a specified webhook", - "required" : [ - "application_id", - "webhook_id", - "webhook_url", - "subscriptions" - ], - "properties" : { - "application_id" : { - "type" : "string", - "description" : "The application ID" - }, - "subscriptions" : { - "type" : "array", - "description" : "List of active subscriptions for the webhook", - "items" : { - "type" : "object", - "properties" : { - "user_id" : { - "type" : "string", - "description" : "The ID of the user the webhook is subscribed to" - } - } - } - }, - "webhook_id" : { - "type" : "string", - "description" : "The associated webhook ID" - }, - "webhook_url" : { - "type" : "string", - "description" : "The url for the associated webhook" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubtitleLanguageCode" : { - "type" : "string", - "description" : "The language code should be a BCP47 code (e.g. 'EN\", \"SP\")", - "pattern" : "^[A-Z]{2}$", - "example" : "EN" - }, - "Subtitles" : { - "type" : "object", - "properties" : { - "display_name" : { - "type" : "string", - "description" : "Language name in a human readable form", - "example" : "English" - }, - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "language_code" : { - "$ref" : "#/components/schemas/SubtitleLanguageCode" - } - } - }, - "SubtitlesCreateRequest" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "media_category" : { - "$ref" : "#/components/schemas/MediaCategorySubtitles" - }, - "subtitles" : { - "$ref" : "#/components/schemas/Subtitles" - } - } - }, - "SubtitlesCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "id", - "media_category", - "associated_subtitles" - ], - "properties" : { - "associated_subtitles" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Subtitles" - } - }, - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "media_category" : { - "$ref" : "#/components/schemas/MediaCategorySubtitles" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "SubtitlesDeleteRequest" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/MediaId" - }, - "language_code" : { - "$ref" : "#/components/schemas/SubtitleLanguageCode" - }, - "media_category" : { - "$ref" : "#/components/schemas/MediaCategorySubtitles" - } - } - }, - "SubtitlesDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "deleted" - ], - "properties" : { - "deleted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "TimestampedMetrics" : { - "type" : "object", - "properties" : { - "metrics" : { - "$ref" : "#/components/schemas/Metrics" - }, - "timestamp" : { - "type" : "string", - "title" : "Timestamp", - "description" : "ISO8601 Time", - "example" : "2025-03-17T06:30:00Z" - } - } - }, - "Topic" : { - "type" : "object", - "description" : "The topic of a Space, as selected by its creator.", - "required" : [ - "id", - "name" - ], - "properties" : { - "description" : { - "type" : "string", - "description" : "The description of the given topic.", - "example" : "All about technology" - }, - "id" : { - "$ref" : "#/components/schemas/TopicId" - }, - "name" : { - "type" : "string", - "description" : "The name of the given topic.", - "example" : "Technology" - } - } - }, - "TopicId" : { - "type" : "string", - "description" : "Unique identifier of this Topic." - }, - "Trend" : { - "type" : "object", - "description" : "A trend.", - "properties" : { - "trend_name" : { - "type" : "string", - "description" : "Name of the trend." - }, - "tweet_count" : { - "type" : "integer", - "description" : "Number of Posts in this trend.", - "format" : "int32" - } - } - }, - "Tweet" : { - "type" : "object", - "properties" : { - "attachments" : { - "type" : "object", - "description" : "Specifies the type of attachments (if any) present in this Tweet.", - "properties" : { - "media_keys" : { - "type" : "array", - "description" : "A list of Media Keys for each one of the media attachments (if media are attached).", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/MediaKey" - } - }, - "media_source_tweet_id" : { - "type" : "array", - "description" : "A list of Posts the media on this Tweet was originally posted in. For example, if the media on a tweet is re-used in another Tweet, this refers to the original, source Tweet..", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "poll_ids" : { - "type" : "array", - "description" : "A list of poll IDs (if polls are attached).", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/PollId" - } - } - } - }, - "author_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "community_id" : { - "$ref" : "#/components/schemas/CommunityId" - }, - "context_annotations" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/ContextAnnotation" - } - }, - "conversation_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "created_at" : { - "type" : "string", - "description" : "Creation time of the Tweet.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "display_text_range" : { - "$ref" : "#/components/schemas/DisplayTextRange" - }, - "edit_controls" : { - "type" : "object", - "required" : [ - "is_edit_eligible", - "editable_until", - "edits_remaining" - ], - "properties" : { - "editable_until" : { - "type" : "string", - "description" : "Time when Tweet is no longer editable.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "edits_remaining" : { - "type" : "integer", - "description" : "Number of times this Tweet can be edited." - }, - "is_edit_eligible" : { - "type" : "boolean", - "description" : "Indicates if this Tweet is eligible to be edited.", - "example" : false - } - } - }, - "edit_history_tweet_ids" : { - "type" : "array", - "description" : "A list of Tweet Ids in this Tweet chain.", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "entities" : { - "$ref" : "#/components/schemas/FullTextEntities" - }, - "geo" : { - "type" : "object", - "description" : "The location tagged on the Tweet, if the user provided one.", - "properties" : { - "coordinates" : { - "$ref" : "#/components/schemas/Point" - }, - "place_id" : { - "$ref" : "#/components/schemas/PlaceId" - } - } - }, - "id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "in_reply_to_user_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "lang" : { - "type" : "string", - "description" : "Language of the Tweet, if detected by X. Returned as a BCP47 language tag.", - "example" : "en" - }, - "non_public_metrics" : { - "type" : "object", - "description" : "Nonpublic engagement metrics for the Tweet at the time of the request.", - "properties" : { - "impression_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been viewed.", - "format" : "int32" - } - } - }, - "note_tweet" : { - "type" : "object", - "description" : "The full-content of the Tweet, including text beyond 280 characters.", - "properties" : { - "entities" : { - "type" : "object", - "properties" : { - "cashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/CashtagEntity" - } - }, - "hashtags" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/HashtagEntity" - } - }, - "mentions" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/MentionEntity" - } - }, - "urls" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UrlEntity" - } - } - } - }, - "text" : { - "$ref" : "#/components/schemas/NoteTweetText" - } - } - }, - "organic_metrics" : { - "type" : "object", - "description" : "Organic nonpublic engagement metrics for the Tweet at the time of the request.", - "required" : [ - "impression_count", - "retweet_count", - "reply_count", - "like_count" - ], - "properties" : { - "impression_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been viewed." - }, - "like_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been liked." - }, - "reply_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been replied to." - }, - "retweet_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been Retweeted." - } - } - }, - "possibly_sensitive" : { - "type" : "boolean", - "description" : "Indicates if this Tweet contains URLs marked as sensitive, for example content suitable for mature audiences.", - "example" : false - }, - "promoted_metrics" : { - "type" : "object", - "description" : "Promoted nonpublic engagement metrics for the Tweet at the time of the request.", - "properties" : { - "impression_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been viewed.", - "format" : "int32" - }, - "like_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been liked.", - "format" : "int32" - }, - "reply_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been replied to.", - "format" : "int32" - }, - "retweet_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been Retweeted.", - "format" : "int32" - } - } - }, - "public_metrics" : { - "type" : "object", - "description" : "Engagement metrics for the Tweet at the time of the request.", - "required" : [ - "retweet_count", - "reply_count", - "like_count", - "impression_count", - "bookmark_count" - ], - "properties" : { - "bookmark_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been bookmarked.", - "format" : "int32" - }, - "impression_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been viewed.", - "format" : "int32" - }, - "like_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been liked." - }, - "quote_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been quoted." - }, - "reply_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been replied to." - }, - "retweet_count" : { - "type" : "integer", - "description" : "Number of times this Tweet has been Retweeted." - } - } - }, - "referenced_tweets" : { - "type" : "array", - "description" : "A list of Posts this Tweet refers to. For example, if the parent Tweet is a Retweet, a Quoted Tweet or a Reply, it will include the related Tweet referenced to by its parent.", - "minItems" : 1, - "items" : { - "type" : "object", - "required" : [ - "type", - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "type" : { - "type" : "string", - "enum" : [ - "retweeted", - "quoted", - "replied_to" - ] - } - } - } - }, - "reply_settings" : { - "$ref" : "#/components/schemas/ReplySettingsWithVerifiedUsers" - }, - "scopes" : { - "type" : "object", - "description" : "The scopes for this tweet", - "properties" : { - "followers" : { - "type" : "boolean", - "description" : "Indicates if this Tweet is viewable by followers without the Tweet ID", - "example" : false - } - } - }, - "source" : { - "type" : "string", - "description" : "This is deprecated." - }, - "text" : { - "$ref" : "#/components/schemas/TweetText" - }, - "username" : { - "$ref" : "#/components/schemas/UserName" - }, - "withheld" : { - "$ref" : "#/components/schemas/TweetWithheld" - } - }, - "example" : { - "author_id" : "2244994945", - "created_at" : "Wed Jan 06 18:40:40 +0000 2021", - "id" : "1346889436626259968", - "text" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i", - "username" : "XDevelopers" - } - }, - "TweetComplianceData" : { - "description" : "Tweet compliance data.", - "oneOf" : [ - { - "$ref" : "#/components/schemas/TweetDeleteComplianceSchema" - }, - { - "$ref" : "#/components/schemas/TweetWithheldComplianceSchema" - }, - { - "$ref" : "#/components/schemas/TweetDropComplianceSchema" - }, - { - "$ref" : "#/components/schemas/TweetUndropComplianceSchema" - }, - { - "$ref" : "#/components/schemas/TweetEditComplianceSchema" - } - ] - }, - "TweetComplianceSchema" : { - "type" : "object", - "required" : [ - "tweet", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "quote_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "tweet" : { - "type" : "object", - "required" : [ - "id", - "author_id" - ], - "properties" : { - "author_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetComplianceStreamResponse" : { - "description" : "Tweet compliance stream events.", - "oneOf" : [ - { - "type" : "object", - "description" : "Compliance event.", - "required" : [ - "data" - ], - "properties" : { - "data" : { - "$ref" : "#/components/schemas/TweetComplianceData" - } - } - }, - { - "type" : "object", - "required" : [ - "errors" - ], - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - ] - }, - "TweetCount" : { - "type" : "integer", - "description" : "The count for the bucket." - }, - "TweetCreateRequest" : { - "type" : "object", - "properties" : { - "card_uri" : { - "type" : "string", - "description" : "Card Uri Parameter. This is mutually exclusive from Quote Tweet Id, Poll, Media, and Direct Message Deep Link." - }, - "community_id" : { - "$ref" : "#/components/schemas/CommunityId" - }, - "direct_message_deep_link" : { - "type" : "string", - "description" : "Link to take the conversation from the public timeline to a private Direct Message." - }, - "for_super_followers_only" : { - "type" : "boolean", - "description" : "Exclusive Tweet for super followers.", - "default" : false - }, - "geo" : { - "type" : "object", - "description" : "Place ID being attached to the Tweet for geo location.", - "properties" : { - "place_id" : { - "type" : "string" - } - }, - "additionalProperties" : false - }, - "media" : { - "type" : "object", - "description" : "Media information being attached to created Tweet. This is mutually exclusive from Quote Tweet Id, Poll, and Card URI.", - "required" : [ - "media_ids" - ], - "properties" : { - "media_ids" : { - "type" : "array", - "description" : "A list of Media Ids to be attached to a created Tweet.", - "minItems" : 1, - "maxItems" : 4, - "items" : { - "$ref" : "#/components/schemas/MediaId" - } - }, - "tagged_user_ids" : { - "type" : "array", - "description" : "A list of User Ids to be tagged in the media for created Tweet.", - "minItems" : 0, - "maxItems" : 10, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "additionalProperties" : false - }, - "nullcast" : { - "type" : "boolean", - "description" : "Nullcasted (promoted-only) Posts do not appear in the public timeline and are not served to followers.", - "default" : false - }, - "poll" : { - "type" : "object", - "description" : "Poll options for a Tweet with a poll. This is mutually exclusive from Media, Quote Tweet Id, and Card URI.", - "required" : [ - "options", - "duration_minutes" - ], - "properties" : { - "duration_minutes" : { - "type" : "integer", - "description" : "Duration of the poll in minutes.", - "minimum" : 5, - "maximum" : 10080, - "format" : "int32" - }, - "options" : { - "type" : "array", - "minItems" : 2, - "maxItems" : 4, - "items" : { - "type" : "string", - "description" : "The text of a poll choice.", - "minLength" : 1, - "maxLength" : 25 - } - }, - "reply_settings" : { - "type" : "string", - "description" : "Settings to indicate who can reply to the Tweet.", - "enum" : [ - "following", - "mentionedUsers", - "subscribers", - "verified" - ] - } - }, - "additionalProperties" : false - }, - "quote_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "reply" : { - "type" : "object", - "description" : "Tweet information of the Tweet being replied to.", - "required" : [ - "in_reply_to_tweet_id" - ], - "properties" : { - "exclude_reply_user_ids" : { - "type" : "array", - "description" : "A list of User Ids to be excluded from the reply Tweet.", - "items" : { - "$ref" : "#/components/schemas/UserId" - } - }, - "in_reply_to_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "additionalProperties" : false - }, - "reply_settings" : { - "type" : "string", - "description" : "Settings to indicate who can reply to the Tweet.", - "enum" : [ - "following", - "mentionedUsers", - "subscribers", - "verified" - ] - }, - "share_with_followers" : { - "type" : "boolean", - "description" : "Share community post with followers too.", - "default" : false - }, - "text" : { - "$ref" : "#/components/schemas/TweetText" - } - }, - "additionalProperties" : false - }, - "TweetCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "id", - "text" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "text" : { - "$ref" : "#/components/schemas/TweetText" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "TweetDeleteComplianceSchema" : { - "type" : "object", - "required" : [ - "delete" - ], - "properties" : { - "delete" : { - "$ref" : "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "required" : [ - "deleted" - ], - "properties" : { - "deleted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "TweetDropComplianceSchema" : { - "type" : "object", - "required" : [ - "drop" - ], - "properties" : { - "drop" : { - "$ref" : "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetEditComplianceObjectSchema" : { - "type" : "object", - "required" : [ - "tweet", - "event_at", - "initial_tweet_id", - "edit_tweet_ids" - ], - "properties" : { - "edit_tweet_ids" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "initial_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "tweet" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetEditComplianceSchema" : { - "type" : "object", - "required" : [ - "tweet_edit" - ], - "properties" : { - "tweet_edit" : { - "$ref" : "#/components/schemas/TweetEditComplianceObjectSchema" - } - } - }, - "TweetHideRequest" : { - "type" : "object", - "required" : [ - "hidden" - ], - "properties" : { - "hidden" : { - "type" : "boolean" - } - } - }, - "TweetHideResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "hidden" : { - "type" : "boolean" - } - } - } - } - }, - "TweetId" : { - "type" : "string", - "description" : "Unique identifier of this Tweet. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1346889436626259968" - }, - "TweetLabelData" : { - "description" : "Tweet label data.", - "oneOf" : [ - { - "$ref" : "#/components/schemas/TweetNoticeSchema" - }, - { - "$ref" : "#/components/schemas/TweetUnviewableSchema" - } - ] - }, - "TweetLabelStreamResponse" : { - "description" : "Tweet label stream events.", - "oneOf" : [ - { - "type" : "object", - "description" : "Tweet Label event.", - "required" : [ - "data" - ], - "properties" : { - "data" : { - "$ref" : "#/components/schemas/TweetLabelData" - } - } - }, - { - "type" : "object", - "required" : [ - "errors" - ], - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - ] - }, - "TweetNotice" : { - "type" : "object", - "required" : [ - "tweet", - "event_type", - "event_at", - "application" - ], - "properties" : { - "application" : { - "type" : "string", - "description" : "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", - "example" : "apply" - }, - "details" : { - "type" : "string", - "description" : "Information shown on the Tweet label" - }, - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "event_type" : { - "type" : "string", - "description" : "The type of label on the Tweet", - "example" : "misleading" - }, - "extended_details_url" : { - "type" : "string", - "description" : "Link to more information about this kind of label" - }, - "label_title" : { - "type" : "string", - "description" : "Title/header of the Tweet label" - }, - "tweet" : { - "type" : "object", - "required" : [ - "id", - "author_id" - ], - "properties" : { - "author_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetNoticeSchema" : { - "type" : "object", - "required" : [ - "public_tweet_notice" - ], - "properties" : { - "public_tweet_notice" : { - "$ref" : "#/components/schemas/TweetNotice" - } - } - }, - "TweetTakedownComplianceSchema" : { - "type" : "object", - "required" : [ - "tweet", - "withheld_in_countries", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "quote_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "tweet" : { - "type" : "object", - "required" : [ - "id", - "author_id" - ], - "properties" : { - "author_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - }, - "withheld_in_countries" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/CountryCode" - } - } - } - }, - "TweetText" : { - "type" : "string", - "description" : "The content of the Tweet.", - "example" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" - }, - "TweetUndropComplianceSchema" : { - "type" : "object", - "required" : [ - "undrop" - ], - "properties" : { - "undrop" : { - "$ref" : "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetUnviewable" : { - "type" : "object", - "required" : [ - "tweet", - "event_at", - "application" - ], - "properties" : { - "application" : { - "type" : "string", - "description" : "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", - "example" : "apply" - }, - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "tweet" : { - "type" : "object", - "required" : [ - "id", - "author_id" - ], - "properties" : { - "author_id" : { - "$ref" : "#/components/schemas/UserId" - }, - "id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetUnviewableSchema" : { - "type" : "object", - "required" : [ - "public_tweet_unviewable" - ], - "properties" : { - "public_tweet_unviewable" : { - "$ref" : "#/components/schemas/TweetUnviewable" - } - } - }, - "TweetWithheld" : { - "type" : "object", - "description" : "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", - "required" : [ - "copyright", - "country_codes" - ], - "properties" : { - "copyright" : { - "type" : "boolean", - "description" : "Indicates if the content is being withheld for on the basis of copyright infringement." - }, - "country_codes" : { - "type" : "array", - "description" : "Provides a list of countries where this content is not available.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "$ref" : "#/components/schemas/CountryCode" - } - }, - "scope" : { - "type" : "string", - "description" : "Indicates whether the content being withheld is the `tweet` or a `user`.", - "enum" : [ - "tweet", - "user" - ] - } - } - }, - "TweetWithheldComplianceSchema" : { - "type" : "object", - "required" : [ - "withheld" - ], - "properties" : { - "withheld" : { - "$ref" : "#/components/schemas/TweetTakedownComplianceSchema" - } - } - }, - "UnlikeComplianceSchema" : { - "type" : "object", - "required" : [ - "favorite", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "favorite" : { - "type" : "object", - "required" : [ - "id", - "user_id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "user_id" : { - "$ref" : "#/components/schemas/UserId" - } - } - } - } - }, - "UnsupportedAuthenticationProblem" : { - "description" : "A problem that indicates that the authentication used is not supported.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - } - ] - }, - "UploadExpiration" : { - "type" : "string", - "description" : "Expiration time of the upload URL.", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "UploadSource" : { - "type" : "object", - "required" : [ - "upload_source" - ], - "properties" : { - "upload_source" : { - "type" : "string", - "description" : "Records the source (e.g., app, device) from which the media was uploaded", - "example" : "gallery" - } - } - }, - "UploadUrl" : { - "type" : "string", - "description" : "URL to which the user will upload their Tweet or user IDs.", - "format" : "uri" - }, - "Url" : { - "type" : "string", - "description" : "A validly formatted URL.", - "format" : "uri", - "example" : "https://developer.twitter.com/en/docs/twitter-api" - }, - "UrlEntity" : { - "description" : "Represent the portion of text recognized as a URL, and its start and end position within the text.", - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref" : "#/components/schemas/UrlFields" - } - ] - }, - "UrlEntityDm" : { - "description" : "Represent the portion of text recognized as a URL, and its start and end position within the text.", - "allOf" : [ - { - "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref" : "#/components/schemas/UrlFields" - } - ] - }, - "UrlFields" : { - "type" : "object", - "description" : "Represent the portion of text recognized as a URL.", - "required" : [ - "url" - ], - "properties" : { - "description" : { - "type" : "string", - "description" : "Description of the URL landing page.", - "example" : "This is a description of the website." - }, - "display_url" : { - "type" : "string", - "description" : "The URL as displayed in the X client.", - "example" : "twittercommunity.com/t/introducing-…" - }, - "expanded_url" : { - "$ref" : "#/components/schemas/Url" - }, - "images" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UrlImage" - } - }, - "media_key" : { - "$ref" : "#/components/schemas/MediaKey" - }, - "status" : { - "$ref" : "#/components/schemas/HttpStatusCode" - }, - "title" : { - "type" : "string", - "description" : "Title of the page the URL points to.", - "example" : "Introducing the v2 follow lookup endpoints" - }, - "unwound_url" : { - "type" : "string", - "description" : "Fully resolved url.", - "format" : "uri", - "example" : "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118" - }, - "url" : { - "$ref" : "#/components/schemas/Url" - } - } - }, - "UrlImage" : { - "type" : "object", - "description" : "Represent the information for the URL image.", - "properties" : { - "height" : { - "$ref" : "#/components/schemas/MediaHeight" - }, - "url" : { - "$ref" : "#/components/schemas/Url" - }, - "width" : { - "$ref" : "#/components/schemas/MediaWidth" - } - } - }, - "Usage" : { - "type" : "object", - "description" : "Usage per client app", - "properties" : { - "cap_reset_day" : { - "type" : "integer", - "description" : "Number of days left for the Tweet cap to reset", - "format" : "int32" - }, - "daily_client_app_usage" : { - "type" : "array", - "description" : "The daily usage breakdown for each Client Application a project", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/ClientAppUsage" - } - }, - "daily_project_usage" : { - "type" : "object", - "description" : "The daily usage breakdown for a project", - "properties" : { - "project_id" : { - "type" : "integer", - "description" : "The unique identifier for this project", - "format" : "int32" - }, - "usage" : { - "type" : "array", - "description" : "The usage value", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UsageFields" - } - } - } - }, - "project_cap" : { - "type" : "integer", - "description" : "Total number of Posts that can be read in this project per month", - "format" : "int32" - }, - "project_id" : { - "type" : "string", - "description" : "The unique identifier for this project", - "format" : "^[0-9]{1,19}$" - }, - "project_usage" : { - "type" : "integer", - "description" : "The number of Posts read in this project", - "format" : "int32" - } - } - }, - "UsageCapExceededProblem" : { - "description" : "A problem that indicates that a usage cap has been exceeded.", - "allOf" : [ - { - "$ref" : "#/components/schemas/Problem" - }, - { - "type" : "object", - "properties" : { - "period" : { - "type" : "string", - "enum" : [ - "Daily", - "Monthly" - ] - }, - "scope" : { - "type" : "string", - "enum" : [ - "Account", - "Product" - ] - } - } - } - ] - }, - "UsageFields" : { - "type" : "object", - "description" : "Represents the data for Usage", - "properties" : { - "date" : { - "type" : "string", - "description" : "The time period for the usage", - "format" : "date-time", - "example" : "2021-01-06T18:40:40.000Z" - }, - "usage" : { - "type" : "integer", - "description" : "The usage value", - "format" : "int32" - } - } - }, - "User" : { - "type" : "object", - "description" : "The X User object.", - "required" : [ - "id", - "name", - "username" - ], - "properties" : { - "affiliation" : { - "type" : "object", - "description" : "Metadata about a user's affiliation.", - "properties" : { - "badge_url" : { - "type" : "string", - "description" : "The badge URL corresponding to the affiliation.", - "format" : "uri" - }, - "description" : { - "type" : "string", - "description" : "The description of the affiliation." - }, - "url" : { - "type" : "string", - "description" : "The URL, if available, to details about an affiliation.", - "format" : "uri" - }, - "user_id" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UserId" - } - } - } - }, - "connection_status" : { - "type" : "array", - "description" : "Returns detailed information about the relationship between two users.", - "minItems" : 0, - "items" : { - "type" : "string", - "description" : "Type of connection between users.", - "enum" : [ - "follow_request_received", - "follow_request_sent", - "blocking", - "followed_by", - "following", - "muting" - ] - } - }, - "created_at" : { - "type" : "string", - "description" : "Creation time of this User.", - "format" : "date-time" - }, - "description" : { - "type" : "string", - "description" : "The text of this User's profile description (also known as bio), if the User provided one." - }, - "entities" : { - "type" : "object", - "description" : "A list of metadata found in the User's profile description.", - "properties" : { - "description" : { - "$ref" : "#/components/schemas/FullTextEntities" - }, - "url" : { - "type" : "object", - "description" : "Expanded details for the URL specified in the User's profile, with start and end indices.", - "properties" : { - "urls" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/UrlEntity" - } - } - } - } - } - }, - "id" : { - "$ref" : "#/components/schemas/UserId" - }, - "location" : { - "type" : "string", - "description" : "The location specified in the User's profile, if the User provided one. As this is a freeform value, it may not indicate a valid location, but it may be fuzzily evaluated when performing searches with location queries." - }, - "most_recent_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "name" : { - "type" : "string", - "description" : "The friendly name of this User, as shown on their profile." - }, - "pinned_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "profile_banner_url" : { - "type" : "string", - "description" : "The URL to the profile banner for this User.", - "format" : "uri" - }, - "profile_image_url" : { - "type" : "string", - "description" : "The URL to the profile image for this User.", - "format" : "uri" - }, - "protected" : { - "type" : "boolean", - "description" : "Indicates if this User has chosen to protect their Posts (in other words, if this User's Posts are private)." - }, - "public_metrics" : { - "type" : "object", - "description" : "A list of metrics for this User.", - "required" : [ - "followers_count", - "following_count", - "tweet_count", - "listed_count" - ], - "properties" : { - "followers_count" : { - "type" : "integer", - "description" : "Number of Users who are following this User." - }, - "following_count" : { - "type" : "integer", - "description" : "Number of Users this User is following." - }, - "like_count" : { - "type" : "integer", - "description" : "The number of likes created by this User." - }, - "listed_count" : { - "type" : "integer", - "description" : "The number of lists that include this User." - }, - "tweet_count" : { - "type" : "integer", - "description" : "The number of Posts (including Retweets) posted by this User." - } - } - }, - "receives_your_dm" : { - "type" : "boolean", - "description" : "Indicates if you can send a DM to this User" - }, - "subscription_type" : { - "type" : "string", - "description" : "The X Blue subscription type of the user, eg: Basic, Premium, PremiumPlus or None.", - "enum" : [ - "Basic", - "Premium", - "PremiumPlus", - "None" - ] - }, - "url" : { - "type" : "string", - "description" : "The URL specified in the User's profile." - }, - "username" : { - "$ref" : "#/components/schemas/UserName" - }, - "verified" : { - "type" : "boolean", - "description" : "Indicate if this User is a verified X User." - }, - "verified_type" : { - "type" : "string", - "description" : "The X Blue verified type of the user, eg: blue, government, business or none.", - "enum" : [ - "blue", - "government", - "business", - "none" - ] - }, - "withheld" : { - "$ref" : "#/components/schemas/UserWithheld" - } - }, - "example" : { - "created_at" : "2013-12-14T04:35:55Z", - "id" : "2244994945", - "name" : "X Dev", - "protected" : false, - "username" : "TwitterDev" - } - }, - "UserComplianceData" : { - "description" : "User compliance data.", - "oneOf" : [ - { - "$ref" : "#/components/schemas/UserProtectComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserUnprotectComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserDeleteComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserUndeleteComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserSuspendComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserUnsuspendComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserWithheldComplianceSchema" - }, - { - "$ref" : "#/components/schemas/UserScrubGeoSchema" - }, - { - "$ref" : "#/components/schemas/UserProfileModificationComplianceSchema" - } - ] - }, - "UserComplianceSchema" : { - "type" : "object", - "required" : [ - "user", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "user" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/UserId" - } - } - } - } - }, - "UserComplianceStreamResponse" : { - "description" : "User compliance stream events.", - "oneOf" : [ - { - "type" : "object", - "description" : "User compliance event.", - "required" : [ - "data" - ], - "properties" : { - "data" : { - "$ref" : "#/components/schemas/UserComplianceData" - } - } - }, - { - "type" : "object", - "required" : [ - "errors" - ], - "properties" : { - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - ] - }, - "UserDeleteComplianceSchema" : { - "type" : "object", - "required" : [ - "user_delete" - ], - "properties" : { - "user_delete" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserId" : { - "type" : "string", - "description" : "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", - "pattern" : "^[0-9]{1,19}$", - "example" : "2244994945" - }, - "UserIdMatchesAuthenticatedUser" : { - "type" : "string", - "description" : "Unique identifier of this User. The value must be the same as the authenticated user.", - "example" : "2244994945" - }, - "UserName" : { - "type" : "string", - "description" : "The X handle (screen name) of this user.", - "pattern" : "^[A-Za-z0-9_]{1,15}$" - }, - "UserProfileModificationComplianceSchema" : { - "type" : "object", - "required" : [ - "user_profile_modification" - ], - "properties" : { - "user_profile_modification" : { - "$ref" : "#/components/schemas/UserProfileModificationObjectSchema" - } - } - }, - "UserProfileModificationObjectSchema" : { - "type" : "object", - "required" : [ - "user", - "profile_field", - "new_value", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "new_value" : { - "type" : "string" - }, - "profile_field" : { - "type" : "string" - }, - "user" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/UserId" - } - } - } - } - }, - "UserProtectComplianceSchema" : { - "type" : "object", - "required" : [ - "user_protect" - ], - "properties" : { - "user_protect" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserScrubGeoObjectSchema" : { - "type" : "object", - "required" : [ - "user", - "up_to_tweet_id", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "up_to_tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "user" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/UserId" - } - } - } - } - }, - "UserScrubGeoSchema" : { - "type" : "object", - "required" : [ - "scrub_geo" - ], - "properties" : { - "scrub_geo" : { - "$ref" : "#/components/schemas/UserScrubGeoObjectSchema" - } - } - }, - "UserSearchQueryVnext" : { - "type" : "string", - "description" : "The the search string by which to query for users.", - "pattern" : "^[A-Za-z0-9_' ]{1,50}$" - }, - "UserSuspendComplianceSchema" : { - "type" : "object", - "required" : [ - "user_suspend" - ], - "properties" : { - "user_suspend" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserTakedownComplianceSchema" : { - "type" : "object", - "required" : [ - "user", - "withheld_in_countries", - "event_at" - ], - "properties" : { - "event_at" : { - "type" : "string", - "description" : "Event time.", - "format" : "date-time", - "example" : "2021-07-06T18:40:40.000Z" - }, - "user" : { - "type" : "object", - "required" : [ - "id" - ], - "properties" : { - "id" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "withheld_in_countries" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/CountryCode" - } - } - } - }, - "UserUndeleteComplianceSchema" : { - "type" : "object", - "required" : [ - "user_undelete" - ], - "properties" : { - "user_undelete" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserUnprotectComplianceSchema" : { - "type" : "object", - "required" : [ - "user_unprotect" - ], - "properties" : { - "user_unprotect" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserUnsuspendComplianceSchema" : { - "type" : "object", - "required" : [ - "user_unsuspend" - ], - "properties" : { - "user_unsuspend" : { - "$ref" : "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserWithheld" : { - "type" : "object", - "description" : "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", - "required" : [ - "country_codes" - ], - "properties" : { - "country_codes" : { - "type" : "array", - "description" : "Provides a list of countries where this content is not available.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "$ref" : "#/components/schemas/CountryCode" - } - }, - "scope" : { - "type" : "string", - "description" : "Indicates that the content being withheld is a `user`.", - "enum" : [ - "user" - ] - } - } - }, - "UserWithheldComplianceSchema" : { - "type" : "object", - "required" : [ - "user_withheld" - ], - "properties" : { - "user_withheld" : { - "$ref" : "#/components/schemas/UserTakedownComplianceSchema" - } - } - }, - "UsersDMBlockCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "blocked" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersDMUnBlockCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "blocked" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersFollowingCreateRequest" : { - "type" : "object", - "required" : [ - "target_user_id" - ], - "properties" : { - "target_user_id" : { - "$ref" : "#/components/schemas/UserId" - } - } - }, - "UsersFollowingCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "following" : { - "type" : "boolean" - }, - "pending_follow" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersFollowingDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "following" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersLikesCreateRequest" : { - "type" : "object", - "required" : [ - "tweet_id" - ], - "properties" : { - "tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - } - } - }, - "UsersLikesCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "liked" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersLikesDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "liked" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersRetweetsCreateRequest" : { - "type" : "object", - "required" : [ - "tweet_id" - ], - "properties" : { - "tweet_id" : { - "$ref" : "#/components/schemas/TweetId" - } - }, - "additionalProperties" : false - }, - "UsersRetweetsCreateResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "id" : { - "$ref" : "#/components/schemas/TweetId" - }, - "retweeted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "UsersRetweetsDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "retweeted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "Variant" : { - "type" : "object", - "properties" : { - "bit_rate" : { - "type" : "integer", - "description" : "The bit rate of the media." - }, - "content_type" : { - "type" : "string", - "description" : "The content type of the media." - }, - "url" : { - "type" : "string", - "description" : "The url to the media.", - "format" : "uri" - } - } - }, - "Variants" : { - "type" : "array", - "description" : "An array of all available variants of the media.", - "items" : { - "$ref" : "#/components/schemas/Variant" - } - }, - "Video" : { - "allOf" : [ - { - "$ref" : "#/components/schemas/Media" - }, - { - "type" : "object", - "properties" : { - "duration_ms" : { - "type" : "integer" - }, - "non_public_metrics" : { - "type" : "object", - "description" : "Nonpublic engagement metrics for the Media at the time of the request.", - "properties" : { - "playback_0_count" : { - "type" : "integer", - "description" : "Number of users who made it through 0% of the video.", - "format" : "int32" - }, - "playback_100_count" : { - "type" : "integer", - "description" : "Number of users who made it through 100% of the video.", - "format" : "int32" - }, - "playback_25_count" : { - "type" : "integer", - "description" : "Number of users who made it through 25% of the video.", - "format" : "int32" - }, - "playback_50_count" : { - "type" : "integer", - "description" : "Number of users who made it through 50% of the video.", - "format" : "int32" - }, - "playback_75_count" : { - "type" : "integer", - "description" : "Number of users who made it through 75% of the video.", - "format" : "int32" - } - } - }, - "organic_metrics" : { - "type" : "object", - "description" : "Organic nonpublic engagement metrics for the Media at the time of the request.", - "properties" : { - "playback_0_count" : { - "type" : "integer", - "description" : "Number of users who made it through 0% of the video.", - "format" : "int32" - }, - "playback_100_count" : { - "type" : "integer", - "description" : "Number of users who made it through 100% of the video.", - "format" : "int32" - }, - "playback_25_count" : { - "type" : "integer", - "description" : "Number of users who made it through 25% of the video.", - "format" : "int32" - }, - "playback_50_count" : { - "type" : "integer", - "description" : "Number of users who made it through 50% of the video.", - "format" : "int32" - }, - "playback_75_count" : { - "type" : "integer", - "description" : "Number of users who made it through 75% of the video.", - "format" : "int32" - }, - "view_count" : { - "type" : "integer", - "description" : "Number of times this video has been viewed.", - "format" : "int32" - } - } - }, - "preview_image_url" : { - "type" : "string", - "format" : "uri" - }, - "promoted_metrics" : { - "type" : "object", - "description" : "Promoted nonpublic engagement metrics for the Media at the time of the request.", - "properties" : { - "playback_0_count" : { - "type" : "integer", - "description" : "Number of users who made it through 0% of the video.", - "format" : "int32" - }, - "playback_100_count" : { - "type" : "integer", - "description" : "Number of users who made it through 100% of the video.", - "format" : "int32" - }, - "playback_25_count" : { - "type" : "integer", - "description" : "Number of users who made it through 25% of the video.", - "format" : "int32" - }, - "playback_50_count" : { - "type" : "integer", - "description" : "Number of users who made it through 50% of the video.", - "format" : "int32" - }, - "playback_75_count" : { - "type" : "integer", - "description" : "Number of users who made it through 75% of the video.", - "format" : "int32" - }, - "view_count" : { - "type" : "integer", - "description" : "Number of times this video has been viewed.", - "format" : "int32" - } - } - }, - "public_metrics" : { - "type" : "object", - "description" : "Engagement metrics for the Media at the time of the request.", - "properties" : { - "view_count" : { - "type" : "integer", - "description" : "Number of times this video has been viewed.", - "format" : "int32" - } - } - }, - "variants" : { - "$ref" : "#/components/schemas/Variants" - } - } - } - ] - }, - "WebhookConfig" : { - "type" : "object", - "description" : "A Webhook Configuration", - "required" : [ - "id", - "url", - "valid", - "created_at" - ], - "properties" : { - "created_at" : { - "type" : "string", - "format" : "date-time" - }, - "id" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "url" : { - "type" : "string", - "description" : "The callback URL of the webhook." - }, - "valid" : { - "type" : "boolean" - } - } - }, - "WebhookConfigCreateRequest" : { - "type" : "object", - "required" : [ - "url" - ], - "properties" : { - "url" : { - "type" : "string", - "minLength" : 1, - "maxLength" : 200 - } - } - }, - "WebhookConfigCreateResponse" : { - "type" : "object", - "description" : "A Webhook Configuration", - "required" : [ - "id", - "url", - "valid", - "created_at" - ], - "properties" : { - "created_at" : { - "type" : "string", - "format" : "date-time" - }, - "id" : { - "$ref" : "#/components/schemas/WebhookConfigId" - }, - "url" : { - "type" : "string", - "description" : "The callback URL of the webhook." - }, - "valid" : { - "type" : "boolean" - } - } - }, - "WebhookConfigDeleteResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "deleted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - }, - "WebhookConfigId" : { - "type" : "string", - "description" : "The unique identifier of this webhook config.", - "pattern" : "^[0-9]{1,19}$", - "example" : "1146654567674912769" - }, - "WebhookConfigPutResponse" : { - "type" : "object", - "properties" : { - "data" : { - "type" : "object", - "properties" : { - "attempted" : { - "type" : "boolean" - } - } - }, - "errors" : { - "type" : "array", - "minItems" : 1, - "items" : { - "$ref" : "#/components/schemas/Problem" - } - } - } - } - }, - "parameters" : { - "AnalyticsFieldsParameter" : { - "name" : "analytics.fields", - "in" : "query", - "description" : "A comma separated list of Analytics fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Analytics object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "app_install_attempts", - "app_opens", - "bookmarks", - "detail_expands", - "email_tweet", - "engagements", - "follows", - "hashtag_clicks", - "id", - "impressions", - "likes", - "media_views", - "permalink_clicks", - "quote_tweets", - "replies", - "retweets", - "shares", - "timestamp", - "unfollows", - "url_clicks", - "user_profile_clicks" - ] - }, - "example" : [ - "app_install_attempts", - "app_opens", - "bookmarks", - "detail_expands", - "email_tweet", - "engagements", - "follows", - "hashtag_clicks", - "id", - "impressions", - "likes", - "media_views", - "permalink_clicks", - "quote_tweets", - "replies", - "retweets", - "shares", - "timestamp", - "unfollows", - "url_clicks", - "user_profile_clicks" - ] - }, - "explode" : false, - "style" : "form" - }, - "CommunityFieldsParameter" : { - "name" : "community.fields", - "in" : "query", - "description" : "A comma separated list of Community fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Community object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "access", - "created_at", - "description", - "id", - "join_policy", - "member_count", - "name" - ] - }, - "example" : [ - "access", - "created_at", - "description", - "id", - "join_policy", - "member_count", - "name" - ] - }, - "explode" : false, - "style" : "form" - }, - "ComplianceJobFieldsParameter" : { - "name" : "compliance_job.fields", - "in" : "query", - "description" : "A comma separated list of ComplianceJob fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a ComplianceJob object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "download_expires_at", - "download_url", - "id", - "name", - "resumable", - "status", - "type", - "upload_expires_at", - "upload_url" - ] - }, - "example" : [ - "created_at", - "download_expires_at", - "download_url", - "id", - "name", - "resumable", - "status", - "type", - "upload_expires_at", - "upload_url" - ] - }, - "explode" : false, - "style" : "form" - }, - "DmConversationFieldsParameter" : { - "name" : "dm_conversation.fields", - "in" : "query", - "description" : "A comma separated list of DmConversation fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a DmConversation object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "id" - ] - }, - "example" : [ - "id" - ] - }, - "explode" : false, - "style" : "form" - }, - "DmEventExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [DmEvent](#DmEvent) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "attachments.media_keys", - "participant_ids", - "referenced_tweets.id", - "sender_id" - ] - }, - "example" : [ - "attachments.media_keys", - "participant_ids", - "referenced_tweets.id", - "sender_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "DmEventFieldsParameter" : { - "name" : "dm_event.fields", - "in" : "query", - "description" : "A comma separated list of DmEvent fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a DmEvent object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "attachments", - "created_at", - "dm_conversation_id", - "entities", - "event_type", - "id", - "participant_ids", - "referenced_tweets", - "sender_id", - "text" - ] - }, - "example" : [ - "attachments", - "created_at", - "dm_conversation_id", - "entities", - "event_type", - "id", - "participant_ids", - "referenced_tweets", - "sender_id", - "text" - ] - }, - "explode" : false, - "style" : "form" - }, - "EngagementFieldsParameter" : { - "name" : "engagement.fields", - "in" : "query", - "description" : "A comma separated list of Engagement fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Engagement object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "errors", - "measurement" - ] - }, - "example" : [ - "errors", - "measurement" - ] - }, - "explode" : false, - "style" : "form" - }, - "LikeExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [Like](#Like) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "liked_tweet_id" - ] - }, - "example" : [ - "liked_tweet_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "LikeFieldsParameter" : { - "name" : "like.fields", - "in" : "query", - "description" : "A comma separated list of Like fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Like object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "example" : [ - "created_at", - "id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "explode" : false, - "style" : "form" - }, - "LikeWithTweetAuthorExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [LikeWithTweetAuthor](#LikeWithTweetAuthor) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "liked_tweet_author_id", - "liked_tweet_id" - ] - }, - "example" : [ - "liked_tweet_author_id", - "liked_tweet_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "LikeWithTweetAuthorFieldsParameter" : { - "name" : "like_with_tweet_author.fields", - "in" : "query", - "description" : "A comma separated list of LikeWithTweetAuthor fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a LikeWithTweetAuthor object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "id", - "liked_tweet_author_id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "example" : [ - "created_at", - "id", - "liked_tweet_author_id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "explode" : false, - "style" : "form" - }, - "ListExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [List](#List) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "owner_id" - ] - }, - "example" : [ - "owner_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "ListFieldsParameter" : { - "name" : "list.fields", - "in" : "query", - "description" : "A comma separated list of List fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a List object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "description", - "follower_count", - "id", - "member_count", - "name", - "owner_id", - "private" - ] - }, - "example" : [ - "created_at", - "description", - "follower_count", - "id", - "member_count", - "name", - "owner_id", - "private" - ] - }, - "explode" : false, - "style" : "form" - }, - "MediaAnalyticsFieldsParameter" : { - "name" : "media_analytics.fields", - "in" : "query", - "description" : "A comma separated list of MediaAnalytics fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a MediaAnalytics object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "cta_url_clicks", - "cta_watch_clicks", - "media_key", - "play_from_tap", - "playback25", - "playback50", - "playback75", - "playback_complete", - "playback_start", - "timestamp", - "video_views", - "watch_time_ms" - ] - }, - "example" : [ - "cta_url_clicks", - "cta_watch_clicks", - "media_key", - "play_from_tap", - "playback25", - "playback50", - "playback75", - "playback_complete", - "playback_start", - "timestamp", - "video_views", - "watch_time_ms" - ] - }, - "explode" : false, - "style" : "form" - }, - "MediaFieldsParameter" : { - "name" : "media.fields", - "in" : "query", - "description" : "A comma separated list of Media fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Media object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "alt_text", - "duration_ms", - "height", - "media_key", - "non_public_metrics", - "organic_metrics", - "preview_image_url", - "promoted_metrics", - "public_metrics", - "type", - "url", - "variants", - "width" - ] - }, - "example" : [ - "alt_text", - "duration_ms", - "height", - "media_key", - "non_public_metrics", - "organic_metrics", - "preview_image_url", - "promoted_metrics", - "public_metrics", - "type", - "url", - "variants", - "width" - ] - }, - "explode" : false, - "style" : "form" - }, - "NoteFieldsParameter" : { - "name" : "note.fields", - "in" : "query", - "description" : "A comma separated list of Note fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Note object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "id", - "info", - "status", - "test_result" - ] - }, - "example" : [ - "id", - "info", - "status", - "test_result" - ] - }, - "explode" : false, - "style" : "form" - }, - "PersonalizedTrendFieldsParameter" : { - "name" : "personalized_trend.fields", - "in" : "query", - "description" : "A comma separated list of PersonalizedTrend fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PersonalizedTrend object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "category", - "post_count", - "trend_name", - "trending_since" - ] - }, - "example" : [ - "category", - "post_count", - "trend_name", - "trending_since" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaceFieldsParameter" : { - "name" : "place.fields", - "in" : "query", - "description" : "A comma separated list of Place fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Place object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "contained_within", - "country", - "country_code", - "full_name", - "geo", - "id", - "name", - "place_type" - ] - }, - "example" : [ - "contained_within", - "country", - "country_code", - "full_name", - "geo", - "id", - "name", - "place_type" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaidAccountContactFieldsParameter" : { - "name" : "plaid_account_contact.fields", - "in" : "query", - "description" : "A comma separated list of PlaidAccountContact fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PlaidAccountContact object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "addresses", - "emails", - "holders", - "telephones" - ] - }, - "example" : [ - "addresses", - "emails", - "holders", - "telephones" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaidAccountFieldsParameter" : { - "name" : "plaid_account.fields", - "in" : "query", - "description" : "A comma separated list of PlaidAccount fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PlaidAccount object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "accountCategory", - "accountId", - "accountNumberDisplay", - "accountType", - "availableBalance", - "currency", - "currentBalance", - "nickname", - "productName", - "status" - ] - }, - "example" : [ - "accountCategory", - "accountId", - "accountNumberDisplay", - "accountType", - "availableBalance", - "currency", - "currentBalance", - "nickname", - "productName", - "status" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaidAccountPaymentNetworkFieldsParameter" : { - "name" : "plaid_account_payment_network.fields", - "in" : "query", - "description" : "A comma separated list of PlaidAccountPaymentNetwork fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PlaidAccountPaymentNetwork object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "bankId", - "identifier", - "transferIn", - "transferOut", - "type" - ] - }, - "example" : [ - "bankId", - "identifier", - "transferIn", - "transferOut", - "type" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaidAccountTransactionFieldsParameter" : { - "name" : "plaid_account_transaction.fields", - "in" : "query", - "description" : "A comma separated list of PlaidAccountTransaction fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PlaidAccountTransaction object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "postedTimestamp", - "status", - "transactionId", - "transactionTimestamp" - ] - }, - "example" : [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "postedTimestamp", - "status", - "transactionId", - "transactionTimestamp" - ] - }, - "explode" : false, - "style" : "form" - }, - "PlaidCustomerFieldsParameter" : { - "name" : "plaid_customer.fields", - "in" : "query", - "description" : "A comma separated list of PlaidCustomer fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a PlaidCustomer object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "customerId" - ] - }, - "example" : [ - "customerId" - ] - }, - "explode" : false, - "style" : "form" - }, - "PollFieldsParameter" : { - "name" : "poll.fields", - "in" : "query", - "description" : "A comma separated list of Poll fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Poll object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "duration_minutes", - "end_datetime", - "id", - "options", - "voting_status" - ] - }, - "example" : [ - "duration_minutes", - "end_datetime", - "id", - "options", - "voting_status" - ] - }, - "explode" : false, - "style" : "form" - }, - "RulesCountFieldsParameter" : { - "name" : "rules_count.fields", - "in" : "query", - "description" : "A comma separated list of RulesCount fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a RulesCount object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "all_project_client_apps", - "cap_per_client_app", - "cap_per_project", - "client_app_rules_count", - "project_rules_count" - ] - }, - "example" : [ - "all_project_client_apps", - "cap_per_client_app", - "cap_per_project", - "client_app_rules_count", - "project_rules_count" - ] - }, - "explode" : false, - "style" : "form" - }, - "SearchCountFieldsParameter" : { - "name" : "search_count.fields", - "in" : "query", - "description" : "A comma separated list of SearchCount fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a SearchCount object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "end", - "start", - "tweet_count" - ] - }, - "example" : [ - "end", - "start", - "tweet_count" - ] - }, - "explode" : false, - "style" : "form" - }, - "SpaceExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [Space](#Space) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "creator_id", - "host_ids", - "invited_user_ids", - "speaker_ids", - "topic_ids" - ] - }, - "example" : [ - "creator_id", - "host_ids", - "invited_user_ids", - "speaker_ids", - "topic_ids" - ] - }, - "explode" : false, - "style" : "form" - }, - "SpaceFieldsParameter" : { - "name" : "space.fields", - "in" : "query", - "description" : "A comma separated list of Space fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Space object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "creator_id", - "ended_at", - "host_ids", - "id", - "invited_user_ids", - "is_ticketed", - "lang", - "participant_count", - "scheduled_start", - "speaker_ids", - "started_at", - "state", - "subscriber_count", - "title", - "topic_ids", - "updated_at" - ] - }, - "example" : [ - "created_at", - "creator_id", - "ended_at", - "host_ids", - "id", - "invited_user_ids", - "is_ticketed", - "lang", - "participant_count", - "scheduled_start", - "speaker_ids", - "started_at", - "state", - "subscriber_count", - "title", - "topic_ids", - "updated_at" - ] - }, - "explode" : false, - "style" : "form" - }, - "TopicFieldsParameter" : { - "name" : "topic.fields", - "in" : "query", - "description" : "A comma separated list of Topic fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Topic object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "description", - "id", - "name" - ] - }, - "example" : [ - "description", - "id", - "name" - ] - }, - "explode" : false, - "style" : "form" - }, - "TrendFieldsParameter" : { - "name" : "trend.fields", - "in" : "query", - "description" : "A comma separated list of Trend fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Trend object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "trend_name", - "tweet_count" - ] - }, - "example" : [ - "trend_name", - "tweet_count" - ] - }, - "explode" : false, - "style" : "form" - }, - "TweetExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [Tweet](#Tweet) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "article.cover_media", - "article.media_entities", - "attachments.media_keys", - "attachments.media_source_tweet", - "attachments.poll_ids", - "author_id", - "edit_history_tweet_ids", - "entities.mentions.username", - "geo.place_id", - "in_reply_to_user_id", - "entities.note.mentions.username", - "referenced_tweets.id", - "referenced_tweets.id.attachments.media_keys", - "referenced_tweets.id.author_id" - ] - }, - "example" : [ - "article.cover_media", - "article.media_entities", - "attachments.media_keys", - "attachments.media_source_tweet", - "attachments.poll_ids", - "author_id", - "edit_history_tweet_ids", - "entities.mentions.username", - "geo.place_id", - "in_reply_to_user_id", - "entities.note.mentions.username", - "referenced_tweets.id", - "referenced_tweets.id.attachments.media_keys", - "referenced_tweets.id.author_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "TweetFieldsParameter" : { - "name" : "tweet.fields", - "in" : "query", - "description" : "A comma separated list of Tweet fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Tweet object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "article", - "attachments", - "author_id", - "card_uri", - "community_id", - "context_annotations", - "conversation_id", - "created_at", - "display_text_range", - "edit_controls", - "edit_history_tweet_ids", - "entities", - "geo", - "id", - "in_reply_to_user_id", - "lang", - "media_metadata", - "non_public_metrics", - "note_tweet", - "organic_metrics", - "possibly_sensitive", - "promoted_metrics", - "public_metrics", - "referenced_tweets", - "reply_settings", - "scopes", - "source", - "text", - "withheld" - ] - }, - "example" : [ - "article", - "attachments", - "author_id", - "card_uri", - "community_id", - "context_annotations", - "conversation_id", - "created_at", - "display_text_range", - "edit_controls", - "edit_history_tweet_ids", - "entities", - "geo", - "id", - "in_reply_to_user_id", - "lang", - "media_metadata", - "non_public_metrics", - "note_tweet", - "organic_metrics", - "possibly_sensitive", - "promoted_metrics", - "public_metrics", - "referenced_tweets", - "reply_settings", - "scopes", - "source", - "text", - "withheld" - ] - }, - "explode" : false, - "style" : "form" - }, - "UsageFieldsParameter" : { - "name" : "usage.fields", - "in" : "query", - "description" : "A comma separated list of Usage fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a Usage object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "cap_reset_day", - "daily_client_app_usage", - "daily_project_usage", - "project_cap", - "project_id", - "project_usage" - ] - }, - "example" : [ - "cap_reset_day", - "daily_client_app_usage", - "daily_project_usage", - "project_cap", - "project_id", - "project_usage" - ] - }, - "explode" : false, - "style" : "form" - }, - "UserExpansionsParameter" : { - "name" : "expansions", - "in" : "query", - "description" : "A comma separated list of fields to expand.", - "schema" : { - "type" : "array", - "description" : "The list of fields you can expand for a [User](#User) object. If the field has an ID, it can be expanded into a full object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "affiliation.user_id", - "most_recent_tweet_id", - "pinned_tweet_id" - ] - }, - "example" : [ - "affiliation.user_id", - "most_recent_tweet_id", - "pinned_tweet_id" - ] - }, - "explode" : false, - "style" : "form" - }, - "UserFieldsParameter" : { - "name" : "user.fields", - "in" : "query", - "description" : "A comma separated list of User fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a User object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "affiliation", - "confirmed_email", - "connection_status", - "created_at", - "description", - "entities", - "id", - "is_identity_verified", - "location", - "most_recent_tweet_id", - "name", - "parody", - "pinned_tweet_id", - "profile_banner_url", - "profile_image_url", - "protected", - "public_metrics", - "receives_your_dm", - "subscription", - "subscription_type", - "url", - "username", - "verified", - "verified_followers_count", - "verified_type", - "withheld" - ] - }, - "example" : [ - "affiliation", - "confirmed_email", - "connection_status", - "created_at", - "description", - "entities", - "id", - "is_identity_verified", - "location", - "most_recent_tweet_id", - "name", - "parody", - "pinned_tweet_id", - "profile_banner_url", - "profile_image_url", - "protected", - "public_metrics", - "receives_your_dm", - "subscription", - "subscription_type", - "url", - "username", - "verified", - "verified_followers_count", - "verified_type", - "withheld" - ] - }, - "explode" : false, - "style" : "form" - }, - "WebhookConfigFieldsParameter" : { - "name" : "webhook_config.fields", - "in" : "query", - "description" : "A comma separated list of WebhookConfig fields to display.", - "required" : false, - "schema" : { - "type" : "array", - "description" : "The fields available for a WebhookConfig object.", - "minItems" : 1, - "uniqueItems" : true, - "items" : { - "type" : "string", - "enum" : [ - "created_at", - "id", - "url", - "valid" - ] - }, - "example" : [ - "created_at", - "id", - "url", - "valid" - ] - }, - "explode" : false, - "style" : "form" - } - } - } -} \ No newline at end of file +"openapi": "3.0.0", +"info": { +"description": "X API v2 available endpoints", +"version": "2.145", +"title": "X API v2", +"termsOfService": "https://developer.x.com/en/developer-terms/agreement-and-policy.html", +"contact": { +"name": "X Developers", +"url": "https://developer.x.com/" +}, +"license": { +"name": "X Developer Agreement and Policy", +"url": "https://developer.x.com/en/developer-terms/agreement-and-policy.html" +} +}, +"paths": { +"/2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all": { +"post": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Account Activity" +], +"summary": "Create replay job", +"description": "Creates a replay job to retrieve activities from up to the past 5 days for all subscriptions associated with a given webhook.", +"externalDocs": { +"url": "https://docs.x.com/x-api/account-activity/introduction" +}, +"operationId": "createAccountActivityReplayJob", +"parameters": [ +{ +"name": "webhook_id", +"in": "path", +"description": "The unique identifier for the webhook configuration.", +"required": true, +"schema": { +"$ref": "#/components/schemas/WebhookConfigId" +}, +"style": "simple" +}, +{ +"name": "from_date", +"in": "query", +"description": "The oldest (starting) UTC timestamp (inclusive) from which events will be provided, in `yyyymmddhhmm` format.", +"required": true, +"schema": { +"type": "string", +"pattern": "^\\d{12}$", +"example": "202504242000" +}, +"style": "form" +}, +{ +"name": "to_date", +"in": "query", +"description": "The latest (ending) UTC timestamp (exclusive) up to which events will be provided, in `yyyymmddhhmm` format.", +"required": true, +"schema": { +"type": "string", +"pattern": "^\\d{12}$", +"example": "202504242200" +}, +"style": "form" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ReplayJobCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/account_activity/subscriptions/count": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Account Activity" +], +"summary": "Get subscription count", +"description": "Retrieves a count of currently active Account Activity subscriptions.", +"externalDocs": { +"url": "https://docs.x.com/x-api/account-activity/introduction" +}, +"operationId": "getAccountActivitySubscriptionCount", +"parameters": [], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/SubscriptionsCountGetResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/account_activity/webhooks/{webhook_id}/subscriptions/all": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.read", +"dm.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Account Activity" +], +"summary": "Validate subscription", +"description": "Checks a user’s Account Activity subscription for a given webhook.", +"externalDocs": { +"url": "https://docs.x.com/x-api/account-activity/introduction" +}, +"operationId": "validateAccountActivitySubscription", +"parameters": [ +{ +"name": "webhook_id", +"in": "path", +"description": "The webhook ID to check subscription against.", +"required": true, +"schema": { +"$ref": "#/components/schemas/WebhookConfigId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/SubscriptionsGetResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.read", +"dm.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"AAASubscriptions" +], +"summary": "Create subscription", +"description": "Creates an Account Activity subscription for the user and the given webhook.", +"externalDocs": { +"url": "https://docs.x.com/x-api/account-activity/introduction" +}, +"operationId": "createAccountActivitySubscription", +"parameters": [ +{ +"name": "webhook_id", +"in": "path", +"description": "The webhook ID to check subscription against.", +"required": true, +"schema": { +"$ref": "#/components/schemas/WebhookConfigId" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/SubscriptionsCreateRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/SubscriptionsCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/account_activity/webhooks/{webhook_id}/subscriptions/all/list": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Account Activity" +], +"summary": "Get subscriptions", +"description": "Retrieves a list of all active subscriptions for a given webhook.", +"externalDocs": { +"url": "https://docs.x.com/x-api/account-activity/introduction" +}, +"operationId": "getAccountActivitySubscriptions", +"parameters": [ +{ +"name": "webhook_id", +"in": "path", +"description": "The webhook ID to pull subscriptions for.", +"required": true, +"schema": { +"$ref": "#/components/schemas/WebhookConfigId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/SubscriptionsListGetResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all": { +"delete": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Account Activity" +], +"summary": "Delete subscription", +"description": "Deletes an Account Activity subscription for the given webhook and user ID.", +"externalDocs": { +"url": "https://docs.x.com/x-api/account-activity/introduction" +}, +"operationId": "deleteAccountActivitySubscription", +"parameters": [ +{ +"name": "webhook_id", +"in": "path", +"description": "The webhook ID to check subscription against.", +"required": true, +"schema": { +"$ref": "#/components/schemas/WebhookConfigId" +}, +"style": "simple" +}, +{ +"name": "user_id", +"in": "path", +"description": "User ID to unsubscribe from.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/SubscriptionsDeleteResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/communities/search": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Communities" +], +"summary": "Search Communities", +"description": "Retrieves a list of Communities matching the specified search query.", +"externalDocs": { +"url": "https://developer.x.com" +}, +"operationId": "searchCommunities", +"parameters": [ +{ +"name": "query", +"in": "query", +"description": "Query to search communities.", +"required": true, +"schema": { +"type": "string", +"minLength": 1, +"maxLength": 4096, +"example": "Love" +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of search results to be returned by a request.", +"required": false, +"schema": { +"type": "integer", +"minimum": 10, +"maximum": 100, +"format": "int32", +"default": 10 +}, +"style": "form" +}, +{ +"name": "next_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/NextToken" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/NextToken" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/CommunityFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2CommunitiesSearchResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/communities/{id}": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"list.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Communities" +], +"summary": "Get Community by ID", +"description": "Retrieves details of a specific Community by its ID.", +"externalDocs": { +"url": "https://developer.x.com/en/docs/x-api/communities/api-reference/get-communities-id" +}, +"operationId": "getCommunitiesById", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the Community.", +"required": true, +"schema": { +"$ref": "#/components/schemas/CommunityId" +}, +"style": "simple" +}, +{ +"$ref": "#/components/parameters/CommunityFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2CommunitiesIdResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/compliance/jobs": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Compliance" +], +"summary": "Get Compliance Jobs", +"description": "Retrieves a list of Compliance Jobs filtered by job type and optional status.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs" +}, +"operationId": "getComplianceJobs", +"parameters": [ +{ +"name": "type", +"in": "query", +"description": "Type of Compliance Job to list.", +"required": true, +"schema": { +"type": "string", +"enum": [ +"tweets", +"users" +] +}, +"style": "form" +}, +{ +"name": "status", +"in": "query", +"description": "Status of Compliance Job to list.", +"required": false, +"schema": { +"type": "string", +"enum": [ +"created", +"in_progress", +"failed", +"complete" +] +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/ComplianceJobFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2ComplianceJobsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Compliance" +], +"summary": "Create Compliance Job", +"description": "Creates a new Compliance Job for the specified job type.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs" +}, +"operationId": "createComplianceJobs", +"parameters": [], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/CreateComplianceJobRequest" +} +} +}, +"required": true +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/CreateComplianceJobResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/compliance/jobs/{id}": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Compliance" +], +"summary": "Get Compliance Job by ID", +"description": "Retrieves details of a specific Compliance Job by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id" +}, +"operationId": "getComplianceJobsById", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the Compliance Job to retrieve.", +"required": true, +"schema": { +"$ref": "#/components/schemas/JobId" +}, +"style": "simple" +}, +{ +"$ref": "#/components/parameters/ComplianceJobFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2ComplianceJobsIdResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/connections/all": { +"delete": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Connection" +], +"summary": "Terminate all connections", +"description": "Terminates all active streaming connections for the authenticated application.", +"externalDocs": { +"url": "https://developer.x.com" +}, +"operationId": "deleteAllConnections", +"parameters": [], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/KillAllConnectionsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/dm_conversations": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Direct Messages" +], +"summary": "Create DM conversation", +"description": "Initiates a new direct message conversation with specified participants.", +"operationId": "createDmConversations", +"parameters": [], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/CreateDmConversationRequest" +} +} +} +}, +"responses": { +"201": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/CreateDmEventResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/dm_conversations/with/{participant_id}/dm_events": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Direct Messages" +], +"summary": "Get DM events for a DM conversation", +"description": "Retrieves direct message events for a specific conversation.", +"operationId": "getDmEventsByParticipantId", +"parameters": [ +{ +"name": "participant_id", +"in": "path", +"description": "The ID of the participant user for the One to One DM conversation.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken32" +}, +"style": "form" +}, +{ +"name": "event_types", +"in": "query", +"description": "The set of event_types to include in the results.", +"required": false, +"schema": { +"type": "array", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"MessageCreate", +"ParticipantsJoin", +"ParticipantsLeave" +] +}, +"default": [ +"MessageCreate", +"ParticipantsLeave", +"ParticipantsJoin" +], +"example": [ +"MessageCreate", +"ParticipantsLeave" +] +}, +"explode": false, +"style": "form" +}, +{ +"$ref": "#/components/parameters/DmEventFieldsParameter" +}, +{ +"$ref": "#/components/parameters/DmEventExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2DmConversationsWithParticipantIdDmEventsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/dm_conversations/with/{participant_id}/messages": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Direct Messages" +], +"summary": "Create DM message by participant ID", +"description": "Sends a new direct message to a specific participant by their ID.", +"operationId": "createDmByParticipantId", +"parameters": [ +{ +"name": "participant_id", +"in": "path", +"description": "The ID of the recipient user that will receive the DM.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/CreateMessageRequest" +} +} +} +}, +"responses": { +"201": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/CreateDmEventResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/dm_conversations/{dm_conversation_id}/messages": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Direct Messages" +], +"summary": "Create DM message by conversation ID", +"description": "Sends a new direct message to a specific conversation by its ID.", +"operationId": "createDmByConversationId", +"parameters": [ +{ +"name": "dm_conversation_id", +"in": "path", +"description": "The DM Conversation ID.", +"required": true, +"schema": { +"type": "string" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/CreateMessageRequest" +} +} +} +}, +"responses": { +"201": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/CreateDmEventResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/dm_conversations/{id}/dm_events": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Direct Messages" +], +"summary": "Get DM events for a DM conversation", +"description": "Retrieves direct message events for a specific conversation.", +"operationId": "getDmConversationsIdDmEvents", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The DM conversation ID.", +"required": true, +"schema": { +"$ref": "#/components/schemas/DmConversationId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken32" +}, +"style": "form" +}, +{ +"name": "event_types", +"in": "query", +"description": "The set of event_types to include in the results.", +"required": false, +"schema": { +"type": "array", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"MessageCreate", +"ParticipantsJoin", +"ParticipantsLeave" +] +}, +"default": [ +"MessageCreate", +"ParticipantsLeave", +"ParticipantsJoin" +], +"example": [ +"MessageCreate", +"ParticipantsLeave" +] +}, +"explode": false, +"style": "form" +}, +{ +"$ref": "#/components/parameters/DmEventFieldsParameter" +}, +{ +"$ref": "#/components/parameters/DmEventExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2DmConversationsIdDmEventsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/dm_events": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Direct Messages" +], +"summary": "Get DM events", +"description": "Retrieves a list of recent direct message events across all conversations.", +"operationId": "getDmEvents", +"parameters": [ +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken32" +}, +"style": "form" +}, +{ +"name": "event_types", +"in": "query", +"description": "The set of event_types to include in the results.", +"required": false, +"schema": { +"type": "array", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"MessageCreate", +"ParticipantsJoin", +"ParticipantsLeave" +] +}, +"default": [ +"MessageCreate", +"ParticipantsLeave", +"ParticipantsJoin" +], +"example": [ +"MessageCreate", +"ParticipantsLeave" +] +}, +"explode": false, +"style": "form" +}, +{ +"$ref": "#/components/parameters/DmEventFieldsParameter" +}, +{ +"$ref": "#/components/parameters/DmEventExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2DmEventsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/dm_events/{event_id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.read", +"dm.write" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Direct Messages" +], +"summary": "Delete DM event", +"description": "Deletes a specific direct message event by its ID, if owned by the authenticated user.", +"operationId": "deleteDmEvents", +"parameters": [ +{ +"name": "event_id", +"in": "path", +"description": "The ID of the direct-message event to delete.", +"required": true, +"schema": { +"$ref": "#/components/schemas/DmEventId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/DeleteDmResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Direct Messages" +], +"summary": "Get DM event by ID", +"description": "Retrieves details of a specific direct message event by its ID.", +"operationId": "getDmEventsById", +"parameters": [ +{ +"name": "event_id", +"in": "path", +"description": "dm event id.", +"required": true, +"schema": { +"$ref": "#/components/schemas/DmEventId" +}, +"style": "simple" +}, +{ +"$ref": "#/components/parameters/DmEventFieldsParameter" +}, +{ +"$ref": "#/components/parameters/DmEventExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2DmEventsEventIdResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/insights/28hr": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get 28-hour Post insights", +"description": "Retrieves engagement metrics for specified Posts over the last 28 hours.", +"operationId": "getInsights28Hr", +"parameters": [ +{ +"name": "tweet_ids", +"in": "query", +"description": "List of PostIds for 28hr metrics.", +"required": true, +"schema": { +"type": "array", +"minItems": 1, +"maxItems": 25, +"uniqueItems": true, +"items": { +"$ref": "#/components/schemas/TweetId" +}, +"example": [ +"20" +] +}, +"style": "form" +}, +{ +"name": "granularity", +"in": "query", +"description": "granularity of metrics response.", +"required": true, +"schema": { +"type": "string", +"enum": [ +"Daily", +"Hourly", +"Weekly", +"Total" +], +"example": "Total" +}, +"style": "form" +}, +{ +"name": "requested_metrics", +"in": "query", +"description": "request metrics for historical request.", +"required": true, +"schema": { +"type": "array", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"AppInstallAttempts", +"AppOpens", +"DetailExpands", +"EmailTweet", +"Engagements", +"Follows", +"HashtagClicks", +"Impressions", +"Likes", +"LinkClicks", +"MediaEngagements", +"MediaViews", +"PermalinkClicks", +"ProfileVisits", +"QuoteTweets", +"Replies", +"Retweets", +"UniqueVideoViews", +"UrlClicks", +"UserProfileClicks", +"VideoCompletions", +"VideoPlayed25Percent", +"VideoPlayed50Percent", +"VideoPlayed75Percent", +"VideoStarts", +"VideoViews" +] +} +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/EngagementFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2Insights28hrResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/insights/historical": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get historical Post insights", +"description": "Retrieves historical engagement metrics for specified Posts within a defined time range.", +"operationId": "getInsightsHistorical", +"parameters": [ +{ +"name": "tweet_ids", +"in": "query", +"description": "List of PostIds for historical metrics.", +"required": true, +"schema": { +"type": "array", +"minItems": 1, +"maxItems": 25, +"uniqueItems": true, +"items": { +"$ref": "#/components/schemas/TweetId" +}, +"example": [ +"20" +] +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", +"required": true, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", +"required": true, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "granularity", +"in": "query", +"description": "granularity of metrics response.", +"required": true, +"schema": { +"type": "string", +"enum": [ +"Daily", +"Hourly", +"Weekly", +"Total" +], +"example": "Total" +}, +"style": "form" +}, +{ +"name": "requested_metrics", +"in": "query", +"description": "request metrics for historical request.", +"required": true, +"schema": { +"type": "array", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"AppInstallAttempts", +"AppOpens", +"DetailExpands", +"EmailTweet", +"Engagements", +"Follows", +"HashtagClicks", +"Impressions", +"Likes", +"LinkClicks", +"MediaEngagements", +"MediaViews", +"PermalinkClicks", +"ProfileVisits", +"QuoteTweets", +"Replies", +"Retweets", +"UniqueVideoViews", +"UrlClicks", +"UserProfileClicks", +"VideoCompletions", +"VideoPlayed25Percent", +"VideoPlayed50Percent", +"VideoPlayed75Percent", +"VideoStarts", +"VideoViews" +] +} +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/EngagementFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2InsightsHistoricalResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/likes/compliance/stream": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Compliance" +], +"summary": "Stream Likes compliance data", +"description": "Streams all compliance data related to Likes for Users.", +"operationId": "streamLikesCompliance", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Likes Compliance events will be provided.", +"required": false, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Likes Compliance events will be provided.", +"required": false, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/LikesComplianceStreamResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/likes/firehose/stream": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Likes" +], +"summary": "Stream all Likes", +"description": "Streams all public Likes in real-time.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-likes-firehose-stream" +}, +"operationId": "streamLikesFirehose", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "partition", +"in": "query", +"description": "The partition number.", +"required": true, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 20, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" +}, +{ +"$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/StreamingLikeResponseV2" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/likes/sample10/stream": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Likes" +], +"summary": "Stream sampled Likes", +"description": "Streams a 10% sample of public Likes in real-time.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/likes/firehose/api-reference/get-likes-sample10-stream" +}, +"operationId": "streamLikesSample10", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "partition", +"in": "query", +"description": "The partition number.", +"required": true, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 2, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" +}, +{ +"$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/StreamingLikeResponseV2" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/lists": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"list.read", +"list.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Create List", +"description": "Creates a new List for the authenticated user.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists" +}, +"operationId": "createLists", +"parameters": [], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListCreateRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/lists/{id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"list.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Delete List", +"description": "Deletes a specific List owned by the authenticated user by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id" +}, +"operationId": "deleteLists", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the List to delete.", +"required": true, +"schema": { +"$ref": "#/components/schemas/ListId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListDeleteResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"list.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Get List by ID", +"description": "Retrieves details of a specific List by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id" +}, +"operationId": "getListsById", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the List.", +"required": true, +"schema": { +"$ref": "#/components/schemas/ListId" +}, +"style": "simple" +}, +{ +"$ref": "#/components/parameters/ListFieldsParameter" +}, +{ +"$ref": "#/components/parameters/ListExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2ListsIdResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"put": { +"security": [ +{ +"OAuth2UserToken": [ +"list.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Update List", +"description": "Updates the details of a specific List owned by the authenticated user by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id" +}, +"operationId": "updateLists", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the List to modify.", +"required": true, +"schema": { +"$ref": "#/components/schemas/ListId" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListUpdateRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListUpdateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/lists/{id}/followers": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"list.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get List followers", +"description": "Retrieves a list of Users who follow a specific List by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" +}, +"operationId": "getListsFollowers", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the List.", +"required": true, +"schema": { +"$ref": "#/components/schemas/ListId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationTokenLong" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2ListsIdFollowersResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/lists/{id}/members": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"list.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get List members", +"description": "Retrieves a list of Users who are members of a specific List by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" +}, +"operationId": "getListsMembers", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the List.", +"required": true, +"schema": { +"$ref": "#/components/schemas/ListId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationTokenLong" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2ListsIdMembersResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"list.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Add List member", +"description": "Adds a User to a specific List by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members" +}, +"operationId": "addListsMember", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the List for which to add a member.", +"required": true, +"schema": { +"$ref": "#/components/schemas/ListId" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListAddUserRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListMutateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/lists/{id}/members/{user_id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"list.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Remove List member", +"description": "Removes a User from a specific List by its ID and the User’s ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id" +}, +"operationId": "removeListsMemberByUserId", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the List to remove a member.", +"required": true, +"schema": { +"$ref": "#/components/schemas/ListId" +}, +"style": "simple" +}, +{ +"name": "user_id", +"in": "path", +"description": "The ID of User that will be removed from the List.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListMutateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/lists/{id}/tweets": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"list.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get List Posts", +"description": "Retrieves a list of Posts associated with a specific List by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets" +}, +"operationId": "getListsPosts", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the List.", +"required": true, +"schema": { +"$ref": "#/components/schemas/ListId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2ListsIdTweetsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/media": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Media" +], +"summary": "Get Media by media keys", +"description": "Retrieves details of Media files by their media keys.", +"externalDocs": { +"url": "https://developer.x.com" +}, +"operationId": "getMediaByMediaKeys", +"parameters": [ +{ +"name": "media_keys", +"in": "query", +"description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", +"required": true, +"schema": { +"type": "array", +"minItems": 1, +"maxItems": 100, +"items": { +"$ref": "#/components/schemas/MediaKey" +} +}, +"explode": false, +"style": "form" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2MediaResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/media/analytics": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Media" +], +"summary": "Get Media analytics", +"description": "Retrieves analytics data for media.", +"operationId": "getMediaAnalytics", +"parameters": [ +{ +"name": "media_keys", +"in": "query", +"description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", +"required": true, +"schema": { +"type": "array", +"minItems": 1, +"maxItems": 100, +"items": { +"$ref": "#/components/schemas/MediaKey" +} +}, +"explode": false, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", +"required": true, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", +"required": true, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "granularity", +"in": "query", +"description": "The granularity for the search counts results.", +"required": true, +"schema": { +"type": "string", +"enum": [ +"hourly", +"daily", +"total" +], +"default": "daily" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/MediaAnalyticsFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MediaAnalytics" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/media/metadata": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"media.write" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Media" +], +"summary": "Create Media metadata", +"description": "Creates metadata for a Media file.", +"externalDocs": { +"url": "https://docs.x.com/x-api/media/media-metadata-create#metadata-create" +}, +"operationId": "createMediaMetadata", +"parameters": [], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MetadataCreateRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MetadataCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/media/subtitles": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"media.write" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Media" +], +"summary": "Delete Media subtitles", +"description": "Deletes subtitles for a specific Media file.", +"externalDocs": { +"url": "https://docs.x.com/x-api/media/media-subtitles-delete" +}, +"operationId": "deleteMediaSubtitles", +"parameters": [], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/SubtitlesDeleteRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/SubtitlesDeleteResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"media.write" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Media" +], +"summary": "Create Media subtitles", +"description": "Creates subtitles for a specific Media file.", +"externalDocs": { +"url": "https://docs.x.com/x-api/media/media-subtitles-create" +}, +"operationId": "createMediaSubtitles", +"parameters": [], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/SubtitlesCreateRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/SubtitlesCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/media/upload": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"media.write" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Media" +], +"summary": "Get Media upload status", +"description": "Retrieves the status of a Media upload by its ID.", +"externalDocs": { +"url": "https://docs.x.com/x-api/media/media-upload-status#media-upload-status" +}, +"operationId": "getMediaUploadStatus", +"parameters": [ +{ +"name": "media_id", +"in": "query", +"description": "Media id for the requested media upload status.", +"required": true, +"schema": { +"$ref": "#/components/schemas/MediaId" +}, +"style": "form" +}, +{ +"name": "command", +"in": "query", +"description": "The command for the media upload request.", +"required": false, +"schema": { +"type": "string", +"enum": [ +"STATUS" +] +}, +"style": "form" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MediaUploadResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"media.write" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Media" +], +"summary": "Upload media", +"description": "Uploads a media file for use in posts or other content.", +"externalDocs": { +"url": "https://docs.x.com/x-api/media/media-upload" +}, +"operationId": "mediaUpload", +"parameters": [], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MediaUploadRequestOneShot" +} +}, +"multipart/form-data": { +"schema": { +"$ref": "#/components/schemas/MediaUploadRequestOneShot" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MediaUploadResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/media/upload/initialize": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"media.write" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Media" +], +"summary": "Initialize media upload", +"description": "Initializes a media upload.", +"externalDocs": { +"url": "https://docs.x.com/x-api/media/media-upload" +}, +"operationId": "initializeMediaUpload", +"parameters": [], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MediaUploadConfigRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MediaUploadResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/media/upload/{id}/append": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"media.write" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Media" +], +"summary": "Append Media upload", +"description": "Appends data to a Media upload request.", +"externalDocs": { +"url": "https://docs.x.com/x-api/media/media-upload" +}, +"operationId": "appendMediaUpload", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The media identifier for the media to perform the append operation.", +"required": true, +"schema": { +"$ref": "#/components/schemas/MediaId" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MediaUploadAppendRequest" +} +}, +"multipart/form-data": { +"schema": { +"$ref": "#/components/schemas/MediaUploadAppendRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MediaUploadAppendResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/media/upload/{id}/finalize": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"media.write" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Media" +], +"summary": "Finalize Media upload", +"description": "Finalizes a Media upload request.", +"externalDocs": { +"url": "https://docs.x.com/x-api/media/media-upload" +}, +"operationId": "finalizeMediaUpload", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The media id of the targeted media to finalize.", +"required": true, +"schema": { +"$ref": "#/components/schemas/MediaId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MediaUploadResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/media/{media_key}": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Media" +], +"summary": "Get Media by media key", +"description": "Retrieves details of a specific Media file by its media key.", +"externalDocs": { +"url": "https://developer.x.com" +}, +"operationId": "getMediaByMediaKey", +"parameters": [ +{ +"name": "media_key", +"in": "path", +"description": "A single Media Key.", +"required": true, +"schema": { +"$ref": "#/components/schemas/MediaKey" +}, +"style": "simple" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2MediaMediaKeyResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/notes": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.write" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Community Notes" +], +"summary": "Create a Community Note", +"description": "Creates a community note endpoint for LLM use case.", +"externalDocs": { +"url": "https://communitynotes.x.com/guide/api/overview" +}, +"operationId": "createNotes", +"parameters": [], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/CreateNoteRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/DeleteNoteResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/notes/search/notes_written": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Community Notes" +], +"summary": "Search for Community Notes Written", +"description": "Returns all the community notes written by the user.", +"externalDocs": { +"url": "https://docs.x.com/x-api/community-notes/search-for-community-notes-written" +}, +"operationId": "searchNotesWritten", +"parameters": [ +{ +"name": "test_mode", +"in": "query", +"description": "If true, return the notes the caller wrote for the test. If false, return the notes the caller wrote on the product.", +"required": true, +"schema": { +"type": "boolean" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "Pagination token to get next set of posts eligible for notes.", +"required": false, +"schema": { +"type": "string" +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "Max results to return.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 10 +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/NoteFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2NotesSearchNotesWrittenResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/notes/search/posts_eligible_for_notes": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Community Notes" +], +"summary": "Search for Posts Eligible for Community Notes", +"description": "Returns all the posts that are eligible for community notes.", +"externalDocs": { +"url": "https://docs.x.com/x-api/community-notes/search-for-posts-eligible-for-community-notes" +}, +"operationId": "searchForEligiblePosts", +"parameters": [ +{ +"name": "test_mode", +"in": "query", +"description": "If true, return a list of posts that are for the test. If false, return a list of posts that the bots can write proposed notes on the product.", +"required": true, +"schema": { +"type": "boolean" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "Pagination token to get next set of posts eligible for notes.", +"required": false, +"schema": { +"type": "string" +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "Max results to return.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 10 +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2NotesSearchPostsEligibleForNotesResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/notes/{id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.write" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Community Notes" +], +"summary": "Delete a Community Note", +"description": "Deletes a community note.", +"externalDocs": { +"url": "https://communitynotes.x.com/guide/api/overview" +}, +"operationId": "deleteNotes", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The community note id to delete.", +"required": true, +"schema": { +"$ref": "#/components/schemas/NoteId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/CreateNoteResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/openapi.json": { +"get": { +"tags": [ +"General" +], +"summary": "Get OpenAPI Spec.", +"description": "Retrieves the full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", +"operationId": "getOpenApiSpec", +"parameters": [], +"responses": { +"200": { +"description": "The request was successful", +"content": { +"application/json": { +"schema": { +"type": "object" +} +} +} +} +} +} +}, +"/2/spaces": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"space.read", +"tweet.read", +"users.read" +] +} +], +"tags": [ +"Spaces" +], +"summary": "Get Spaces by IDs", +"description": "Retrieves details of multiple Spaces by their IDs.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces" +}, +"operationId": "getSpacesByIds", +"parameters": [ +{ +"name": "ids", +"in": "query", +"description": "The list of Space IDs to return.", +"required": true, +"schema": { +"type": "array", +"minItems": 1, +"maxItems": 100, +"items": { +"type": "string", +"description": "The unique identifier of this Space.", +"pattern": "^[a-zA-Z0-9]{1,13}$", +"example": "1SLjjRYNejbKM" +} +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/SpaceFieldsParameter" +}, +{ +"$ref": "#/components/parameters/SpaceExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TopicFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2SpacesResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/spaces/by/creator_ids": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"space.read", +"tweet.read", +"users.read" +] +} +], +"tags": [ +"Spaces" +], +"summary": "Get Spaces by creator IDs", +"description": "Retrieves details of Spaces created by specified User IDs.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids" +}, +"operationId": "getSpacesByCreatorIds", +"parameters": [ +{ +"name": "user_ids", +"in": "query", +"description": "The IDs of Users to search through.", +"required": true, +"schema": { +"type": "array", +"minItems": 1, +"maxItems": 100, +"items": { +"$ref": "#/components/schemas/UserId" +} +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/SpaceFieldsParameter" +}, +{ +"$ref": "#/components/parameters/SpaceExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TopicFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2SpacesByCreatorIdsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/spaces/search": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"space.read", +"tweet.read", +"users.read" +] +} +], +"tags": [ +"Spaces" +], +"summary": "Search Spaces", +"description": "Retrieves a list of Spaces matching the specified search query.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search" +}, +"operationId": "searchSpaces", +"parameters": [ +{ +"name": "query", +"in": "query", +"description": "The search query.", +"required": true, +"example": "crypto", +"schema": { +"type": "string", +"minLength": 1, +"maxLength": 2048, +"example": "crypto" +}, +"style": "form" +}, +{ +"name": "state", +"in": "query", +"description": "The state of Spaces to search for.", +"required": false, +"schema": { +"type": "string", +"enum": [ +"live", +"scheduled", +"all" +], +"default": "all" +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "The number of results to return.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/SpaceFieldsParameter" +}, +{ +"$ref": "#/components/parameters/SpaceExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TopicFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2SpacesSearchResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/spaces/{id}": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"space.read", +"tweet.read", +"users.read" +] +} +], +"tags": [ +"Spaces" +], +"summary": "Get space by ID", +"description": "Retrieves details of a specific space by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id" +}, +"operationId": "getSpacesById", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the Space to be retrieved.", +"required": true, +"example": "1YqKDqWqdPLsV", +"schema": { +"type": "string", +"description": "The unique identifier of this Space.", +"pattern": "^[a-zA-Z0-9]{1,13}$", +"example": "1SLjjRYNejbKM" +}, +"style": "simple" +}, +{ +"$ref": "#/components/parameters/SpaceFieldsParameter" +}, +{ +"$ref": "#/components/parameters/SpaceExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TopicFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2SpacesIdResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/spaces/{id}/buyers": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"space.read", +"tweet.read", +"users.read" +] +} +], +"tags": [ +"Spaces", +"Tweets" +], +"summary": "Get Space ticket buyers", +"description": "Retrieves a list of Users who purchased tickets to a specific Space by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers" +}, +"operationId": "getSpacesBuyers", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the Space to be retrieved.", +"required": true, +"example": "1YqKDqWqdPLsV", +"schema": { +"type": "string", +"description": "The unique identifier of this Space.", +"pattern": "^[a-zA-Z0-9]{1,13}$", +"example": "1SLjjRYNejbKM" +}, +"style": "simple" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken32" +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2SpacesIdBuyersResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/spaces/{id}/tweets": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"space.read", +"tweet.read", +"users.read" +] +} +], +"tags": [ +"Spaces", +"Tweets" +], +"summary": "Get Space Posts", +"description": "Retrieves a list of Posts shared in a specific Space by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets" +}, +"operationId": "getSpacesPosts", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the Space to be retrieved.", +"required": true, +"example": "1YqKDqWqdPLsV", +"schema": { +"type": "string", +"description": "The unique identifier of this Space.", +"pattern": "^[a-zA-Z0-9]{1,13}$", +"example": "1SLjjRYNejbKM" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The number of Posts to fetch from the provided space. If not provided, the value will default to the maximum of 100.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100, +"example": 25 +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2SpacesIdTweetsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/trends/by/woeid/{woeid}": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Trends" +], +"summary": "Get Trends by WOEID", +"description": "Retrieves trending topics for a specific location identified by its WOEID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/trends/api-reference/get-trends-by-woeid" +}, +"operationId": "getTrendsByWoeid", +"parameters": [ +{ +"name": "woeid", +"in": "path", +"description": "The WOEID of the place to lookup a trend for.", +"required": true, +"example": "2244994945", +"schema": { +"type": "integer", +"format": "int32" +}, +"style": "simple" +}, +{ +"name": "max_trends", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 50, +"format": "int32", +"default": 20 +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TrendFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TrendsByWoeidWoeidResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get Posts by IDs", +"description": "Retrieves details of multiple Posts by their IDs.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets" +}, +"operationId": "getPostsByIds", +"parameters": [ +{ +"name": "ids", +"in": "query", +"description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", +"required": true, +"schema": { +"type": "array", +"minItems": 1, +"maxItems": 100, +"items": { +"$ref": "#/components/schemas/TweetId" +} +}, +"explode": false, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read", +"tweet.write", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Create Post", +"description": "Creates a new Post for the authenticated user.", +"externalDocs": { +"url": "https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets" +}, +"operationId": "createPosts", +"parameters": [], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/TweetCreateRequest" +} +} +}, +"required": true +}, +"responses": { +"201": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/TweetCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/analytics": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get Post analytics", +"description": "Retrieves analytics data for specified Posts within a defined time range.", +"operationId": "getPostsAnalytics", +"parameters": [ +{ +"name": "ids", +"in": "query", +"description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", +"required": true, +"schema": { +"type": "array", +"minItems": 1, +"maxItems": 100, +"items": { +"$ref": "#/components/schemas/TweetId" +} +}, +"explode": false, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", +"required": true, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", +"required": true, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "granularity", +"in": "query", +"description": "The granularity for the search counts results.", +"required": true, +"schema": { +"type": "string", +"enum": [ +"hourly", +"daily", +"weekly", +"total" +], +"default": "total" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/AnalyticsFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Analytics" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/compliance/stream": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Compliance" +], +"summary": "Stream Posts compliance data", +"description": "Streams all compliance data related to Posts.", +"operationId": "streamPostsCompliance", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "partition", +"in": "query", +"description": "The partition number.", +"required": true, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 4, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post Compliance events will be provided.", +"required": false, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Post Compliance events will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/TweetComplianceStreamResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/tweets/counts/all": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get count of all Posts", +"description": "Retrieves the count of Posts matching a search query from the full archive.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" +}, +"operationId": "getPostsCountsAll", +"parameters": [ +{ +"name": "query", +"in": "query", +"description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", +"required": true, +"schema": { +"type": "string", +"minLength": 1, +"maxLength": 4096, +"example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", +"required": false, +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", +"required": false, +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "since_id", +"in": "query", +"description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", +"required": false, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "until_id", +"in": "query", +"description": "Returns results with a Post ID less than (that is, older than) the specified ID.", +"required": false, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "next_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "granularity", +"in": "query", +"description": "The granularity for the search counts results.", +"required": false, +"schema": { +"type": "string", +"enum": [ +"minute", +"hour", +"day" +], +"default": "hour" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/SearchCountFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsCountsAllResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/counts/recent": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get count of recent Posts", +"description": "Retrieves the count of Posts from the last 7 days matching a search query.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent" +}, +"operationId": "getPostsCountsRecent", +"parameters": [ +{ +"name": "query", +"in": "query", +"description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", +"required": true, +"schema": { +"type": "string", +"minLength": 1, +"maxLength": 4096, +"example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", +"required": false, +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", +"required": false, +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "since_id", +"in": "query", +"description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", +"required": false, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "until_id", +"in": "query", +"description": "Returns results with a Post ID less than (that is, older than) the specified ID.", +"required": false, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "next_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "granularity", +"in": "query", +"description": "The granularity for the search counts results.", +"required": false, +"schema": { +"type": "string", +"enum": [ +"minute", +"hour", +"day" +], +"default": "hour" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/SearchCountFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsCountsRecentResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/firehose/stream": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Tweets" +], +"summary": "Stream all Posts", +"description": "Streams all public Posts in real-time.", +"operationId": "streamPostsFirehose", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "partition", +"in": "query", +"description": "The partition number.", +"required": true, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 20, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/StreamingTweetResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/tweets/firehose/stream/lang/en": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Tweets" +], +"summary": "Stream English Posts", +"description": "Streams all public English-language Posts in real-time.", +"operationId": "streamPostsFirehoseEn", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "partition", +"in": "query", +"description": "The partition number.", +"required": true, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 8, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/StreamingTweetResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/tweets/firehose/stream/lang/ja": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Tweets" +], +"summary": "Stream Japanese Posts", +"description": "Streams all public Japanese-language Posts in real-time.", +"operationId": "streamPostsFirehoseJa", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "partition", +"in": "query", +"description": "The partition number.", +"required": true, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 2, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/StreamingTweetResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/tweets/firehose/stream/lang/ko": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Tweets" +], +"summary": "Stream Korean Posts", +"description": "Streams all public Korean-language Posts in real-time.", +"operationId": "streamPostsFirehoseKo", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "partition", +"in": "query", +"description": "The partition number.", +"required": true, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 2, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/StreamingTweetResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/tweets/firehose/stream/lang/pt": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Tweets" +], +"summary": "Stream Portuguese Posts", +"description": "Streams all public Portuguese-language Posts in real-time.", +"operationId": "streamPostsFirehosePt", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "partition", +"in": "query", +"description": "The partition number.", +"required": true, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 2, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/StreamingTweetResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/tweets/label/stream": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Compliance" +], +"summary": "Stream Post labels", +"description": "Streams all labeling events applied to Posts.", +"operationId": "streamLabelsCompliance", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post labels will be provided.", +"required": false, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Post labels will be provided.", +"required": false, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/TweetLabelStreamResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/tweets/sample/stream": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Tweets" +], +"summary": "Stream sampled Posts", +"description": "Streams a 1% sample of public Posts in real-time.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/api-reference/get-tweets-sample-stream" +}, +"operationId": "streamPostsSample", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/StreamingTweetResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/tweets/sample10/stream": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Tweets" +], +"summary": "Stream 10% sampled Posts", +"description": "Streams a 10% sample of public Posts in real-time.", +"operationId": "streamPostsSample10", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "partition", +"in": "query", +"description": "The partition number.", +"required": true, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 2, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsSample10StreamResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/tweets/search/all": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Search all Posts", +"description": "Retrieves Posts from the full archive matching a search query.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" +}, +"operationId": "searchPostsAll", +"parameters": [ +{ +"name": "query", +"in": "query", +"description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", +"required": true, +"schema": { +"type": "string", +"minLength": 1, +"maxLength": 4096, +"example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", +"required": false, +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", +"required": false, +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "since_id", +"in": "query", +"description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", +"required": false, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "until_id", +"in": "query", +"description": "Returns results with a Post ID less than (that is, older than) the specified ID.", +"required": false, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of search results to be returned by a request.", +"required": false, +"schema": { +"type": "integer", +"minimum": 10, +"maximum": 500, +"format": "int32", +"default": 10 +}, +"style": "form" +}, +{ +"name": "next_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "sort_order", +"in": "query", +"description": "This order in which to return results.", +"required": false, +"schema": { +"type": "string", +"enum": [ +"recency", +"relevancy" +] +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsSearchAllResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/search/recent": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Search recent Posts", +"description": "Retrieves Posts from the last 7 days matching a search query.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent" +}, +"operationId": "searchPostsRecent", +"parameters": [ +{ +"name": "query", +"in": "query", +"description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", +"required": true, +"schema": { +"type": "string", +"minLength": 1, +"maxLength": 4096, +"example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", +"required": false, +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", +"required": false, +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "since_id", +"in": "query", +"description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", +"required": false, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "until_id", +"in": "query", +"description": "Returns results with a Post ID less than (that is, older than) the specified ID.", +"required": false, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of search results to be returned by a request.", +"required": false, +"schema": { +"type": "integer", +"minimum": 10, +"maximum": 100, +"format": "int32", +"default": 10 +}, +"style": "form" +}, +{ +"name": "next_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "sort_order", +"in": "query", +"description": "This order in which to return results.", +"required": false, +"schema": { +"type": "string", +"enum": [ +"recency", +"relevancy" +] +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsSearchRecentResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/search/stream": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Tweets" +], +"summary": "Stream filtered Posts", +"description": "Streams Posts in real-time matching the active rule set.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream" +}, +"operationId": "streamPosts", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided.", +"required": false, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/FilteredStreamingTweetResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/tweets/search/stream/rules": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Tweets" +], +"summary": "Get stream rules", +"description": "Retrieves the active rule set or a subset of rules for the filtered stream.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules" +}, +"operationId": "getRules", +"parameters": [ +{ +"name": "ids", +"in": "query", +"description": "A comma-separated list of Rule IDs.", +"required": false, +"schema": { +"type": "array", +"items": { +"$ref": "#/components/schemas/RuleId" +} +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 1000, +"format": "int32", +"default": 1000 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This value is populated by passing the 'next_token' returned in a request to paginate through results.", +"required": false, +"schema": { +"type": "string", +"minLength": 16, +"maxLength": 16 +}, +"style": "form" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/RulesLookupResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Tweets" +], +"summary": "Update stream rules", +"description": "Adds or deletes rules from the active rule set for the filtered stream.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/post-tweets-search-stream-rules" +}, +"operationId": "updateRules", +"parameters": [ +{ +"name": "dry_run", +"in": "query", +"description": "Dry Run can be used with both the add and delete action, with the expected result given, but without actually taking any action in the system (meaning the end state will always be as it was when the request was submitted). This is particularly useful to validate rule changes.", +"required": false, +"schema": { +"type": "boolean" +}, +"style": "form" +}, +{ +"name": "delete_all", +"in": "query", +"description": "Delete All can be used to delete all of the rules associated this client app, it should be specified with no other parameters. Once deleted, rules cannot be recovered.", +"required": false, +"schema": { +"type": "boolean" +}, +"style": "form" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/AddOrDeleteRulesRequest" +} +} +}, +"required": true +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/AddOrDeleteRulesResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/search/stream/rules/counts": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Tweets" +], +"summary": "Get stream rule counts", +"description": "Retrieves the count of rules in the active rule set for the filtered stream.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules-counts" +}, +"operationId": "getRuleCounts", +"parameters": [ +{ +"$ref": "#/components/parameters/RulesCountFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsSearchStreamRulesCountsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/{id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read", +"tweet.write", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Delete Post", +"description": "Deletes a specific Post by its ID, if owned by the authenticated user.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id" +}, +"operationId": "deletePosts", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the Post to be deleted.", +"required": true, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/TweetDeleteResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get Post by ID", +"description": "Retrieves details of a specific Post by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id" +}, +"operationId": "getPostsById", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "A single Post ID.", +"required": true, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "simple" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsIdResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/{id}/liking_users": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"like.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get Liking Users", +"description": "Retrieves a list of Users who liked a specific Post by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-tweets-id-liking_users" +}, +"operationId": "getPostsLikingUsers", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "A single Post ID.", +"required": true, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsIdLikingUsersResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/{id}/quote_tweets": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get Quoted Posts", +"description": "Retrieves a list of Posts that quote a specific Post by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets" +}, +"operationId": "getPostsQuotedPosts", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "A single Post ID.", +"required": true, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results to be returned.", +"required": false, +"schema": { +"type": "integer", +"minimum": 10, +"maximum": 100, +"format": "int32", +"default": 10 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "exclude", +"in": "query", +"description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", +"required": false, +"schema": { +"type": "array", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"replies", +"retweets" +] +}, +"example": [ +"replies", +"retweets" +] +}, +"explode": false, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsIdQuoteTweetsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/{id}/retweeted_by": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get Reposted by", +"description": "Retrieves a list of Users who reposted a specific Post by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweeted_by" +}, +"operationId": "getPostsRepostedBy", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "A single Post ID.", +"required": true, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsIdRetweetedByResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/{id}/retweets": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get Reposts", +"description": "Retrieves a list of Posts that repost a specific Post by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets" +}, +"operationId": "getPostsReposts", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "A single Post ID.", +"required": true, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2TweetsIdRetweetsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/tweets/{tweet_id}/hidden": { +"put": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.moderate.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Hide reply", +"description": "Hides or unhides a reply to a conversation owned by the authenticated user.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden" +}, +"operationId": "hidePostsReply", +"parameters": [ +{ +"name": "tweet_id", +"in": "path", +"description": "The ID of the reply that you want to hide or unhide.", +"required": true, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/TweetHideRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/TweetHideResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/usage/tweets": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Usage" +], +"summary": "Get usage", +"description": "Retrieves usage statistics for Posts over a specified number of days.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets" +}, +"operationId": "getUsage", +"parameters": [ +{ +"name": "days", +"in": "query", +"description": "The number of days for which you need usage for.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 90, +"format": "int32", +"default": 7 +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UsageFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsageTweetsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get Users by IDs", +"description": "Retrieves details of multiple Users by their IDs.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users" +}, +"operationId": "getUsersByIds", +"parameters": [ +{ +"name": "ids", +"in": "query", +"description": "A list of User IDs, comma-separated. You can specify up to 100 IDs.", +"required": true, +"example": "2244994945,6253282,12", +"schema": { +"type": "array", +"minItems": 1, +"maxItems": 100, +"items": { +"$ref": "#/components/schemas/UserId" +} +}, +"explode": false, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/by": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get Users by usernames", +"description": "Retrieves details of multiple Users by their usernames.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by" +}, +"operationId": "getUsersByUsernames", +"parameters": [ +{ +"name": "usernames", +"in": "query", +"description": "A list of usernames, comma-separated.", +"required": true, +"schema": { +"type": "array", +"minItems": 1, +"maxItems": 100, +"items": { +"type": "string", +"description": "The X handle (screen name) of this User.", +"pattern": "^[A-Za-z0-9_]{1,15}$" +}, +"example": "TwitterDev,TwitterAPI" +}, +"explode": false, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersByResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/by/username/{username}": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get User by username", +"description": "Retrieves details of a specific User by their username.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username" +}, +"operationId": "getUsersByUsername", +"parameters": [ +{ +"name": "username", +"in": "path", +"description": "A username.", +"required": true, +"example": "TwitterDev", +"schema": { +"type": "string", +"pattern": "^[A-Za-z0-9_]{1,15}$" +}, +"style": "simple" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersByUsernameUsernameResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/compliance/stream": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Stream", +"Compliance" +], +"summary": "Stream Users compliance data", +"description": "Streams all compliance data related to Users.", +"operationId": "streamUsersCompliance", +"parameters": [ +{ +"name": "backfill_minutes", +"in": "query", +"description": "The number of minutes of backfill requested.", +"required": false, +"schema": { +"type": "integer", +"minimum": 0, +"maximum": 5, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "partition", +"in": "query", +"description": "The partition number.", +"required": true, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 4, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the User Compliance events will be provided.", +"required": false, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the User Compliance events will be provided.", +"required": false, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UserComplianceStreamResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"x-twitter-streaming": true +} +}, +"/2/users/me": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get my User", +"description": "Retrieves details of the authenticated user.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me" +}, +"operationId": "getMyUser", +"parameters": [ +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersMeResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/personalized_trends": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Trends" +], +"summary": "Get personalized Trends", +"description": "Retrieves personalized trending topics for the authenticated user.", +"externalDocs": { +"url": "https://developer.x.com/" +}, +"operationId": "getUsersPersonalizedTrends", +"parameters": [ +{ +"$ref": "#/components/parameters/PersonalizedTrendFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersPersonalizedTrendsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/reposts_of_me": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"timeline.read", +"tweet.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get Reposts of me", +"description": "Retrieves a list of Posts that repost content from the authenticated user.", +"operationId": "getUsersRepostsOfMe", +"parameters": [ +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersRepostsOfMeResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/search": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Search Users", +"description": "Retrieves a list of Users matching a search query.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-search" +}, +"operationId": "searchUsers", +"parameters": [ +{ +"name": "query", +"in": "query", +"description": "TThe the query string by which to query for users.", +"required": true, +"example": "someXUser", +"schema": { +"$ref": "#/components/schemas/UserSearchQueryVnext" +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 1000, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "next_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersSearchResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get User by ID", +"description": "Retrieves details of a specific User by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id" +}, +"operationId": "getUsersById", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the User to lookup.", +"required": true, +"example": "2244994945", +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/blocking": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"block.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get blocking", +"description": "Retrieves a list of Users blocked by the specified User ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking" +}, +"operationId": "getUsersBlocking", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User for whom to return results.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 1000, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken32" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdBlockingResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/bookmarks": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"bookmark.read", +"tweet.read", +"users.read" +] +} +], +"tags": [ +"Bookmarks" +], +"summary": "Get Bookmarks", +"description": "Retrieves a list of Posts bookmarked by the authenticated user.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks" +}, +"operationId": "getUsersBookmarks", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User for whom to return results.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdBookmarksResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"bookmark.write", +"tweet.read", +"users.read" +] +} +], +"tags": [ +"Bookmarks" +], +"summary": "Create Bookmark", +"description": "Adds a post to the authenticated user’s bookmarks.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks" +}, +"operationId": "createUsersBookmark", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User for whom to add bookmarks.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/BookmarkAddRequest" +} +} +}, +"required": true +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/BookmarkMutationResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/bookmarks/folders": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"bookmark.read", +"users.read" +] +} +], +"tags": [ +"Bookmarks" +], +"summary": "Get Bookmark folders", +"description": "Retrieves a list of Bookmark folders created by the authenticated user.", +"externalDocs": { +"url": "https://developer.x.com" +}, +"operationId": "getUsersBookmarkFolders", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User for whom to return results.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/BookmarkFoldersResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/bookmarks/folders/{folder_id}": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"bookmark.read", +"tweet.read", +"users.read" +] +} +], +"tags": [ +"Bookmarks" +], +"summary": "Get Bookmarks by folder ID", +"description": "Retrieves Posts in a specific Bookmark folder by its ID for the authenticated user.", +"externalDocs": { +"url": "https://developer.x.com" +}, +"operationId": "getUsersBookmarksByFolderId", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User for whom to return results.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "folder_id", +"in": "path", +"description": "The ID of the Bookmark Folder that the authenticated User is trying to fetch Posts for.", +"required": true, +"schema": { +"$ref": "#/components/schemas/BookmarkFolderId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/BookmarkFolderPostsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/bookmarks/{tweet_id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"bookmark.write", +"tweet.read", +"users.read" +] +} +], +"tags": [ +"Bookmarks" +], +"summary": "Delete Bookmark", +"description": "Removes a Post from the authenticated user’s Bookmarks by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id" +}, +"operationId": "deleteUsersBookmark", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User whose bookmark is to be removed.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "tweet_id", +"in": "path", +"description": "The ID of the Post that the source User is removing from bookmarks.", +"required": true, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/BookmarkMutationResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/dm/block": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Block DMs", +"description": "Blocks direct messages to or from a specific User by their ID for the authenticated user.", +"externalDocs": { +"url": "https://developer.x.com/" +}, +"operationId": "blockUsersDms", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the target User that the authenticated user requesting to block dms for.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UsersDMBlockCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/dm/unblock": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"dm.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Unblock DMs", +"description": "Unblocks direct messages to or from a specific User by their ID for the authenticated user.", +"externalDocs": { +"url": "https://developer.x.com/" +}, +"operationId": "unblockUsersDms", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the target User that the authenticated user requesting to unblock dms for.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UsersDMUnBlockCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/followed_lists": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"list.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Get followed Lists", +"description": "Retrieves a list of Lists followed by a specific User by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists" +}, +"operationId": "getUsersFollowedLists", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the User to lookup.", +"required": true, +"example": "2244994945", +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationTokenLong" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/ListFieldsParameter" +}, +{ +"$ref": "#/components/parameters/ListExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdFollowedListsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"list.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Follow List", +"description": "Causes the authenticated user to follow a specific List by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/post-users-id-followed-lists" +}, +"operationId": "followList", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User that will follow the List.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListFollowedRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListFollowedResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/followed_lists/{list_id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"list.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Unfollow List", +"description": "Causes the authenticated user to unfollow a specific List by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/delete-users-id-followed-lists-list_id" +}, +"operationId": "unfollowList", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User that will unfollow the List.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "list_id", +"in": "path", +"description": "The ID of the List to unfollow.", +"required": true, +"schema": { +"$ref": "#/components/schemas/ListId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListFollowedResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/followers": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"follows.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get followers", +"description": "Retrieves a list of Users who follow a specific User by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" +}, +"operationId": "getUsersFollowers", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the User to lookup.", +"required": true, +"example": "2244994945", +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 1000, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken32" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdFollowersResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/following": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"follows.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get following", +"description": "Retrieves a list of Users followed by a specific User by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following" +}, +"operationId": "getUsersFollowing", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the User to lookup.", +"required": true, +"example": "2244994945", +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 1000, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken32" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdFollowingResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"follows.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Follow User", +"description": "Causes the authenticated user to follow a specific user by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following" +}, +"operationId": "followUser", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User that is requesting to follow the target User.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UsersFollowingCreateRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UsersFollowingCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/liked_tweets": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"like.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get liked Posts", +"description": "Retrieves a list of Posts liked by a specific User by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets" +}, +"operationId": "getUsersLikedPosts", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the User to lookup.", +"required": true, +"example": "2244994945", +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 5, +"maximum": 100, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdLikedTweetsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/likes": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"like.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Like Post", +"description": "Causes the authenticated user to Like a specific Post by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-id-likes" +}, +"operationId": "likePost", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User that is requesting to like the Post.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UsersLikesCreateRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UsersLikesCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/likes/{tweet_id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"like.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Unlike Post", +"description": "Causes the authenticated user to Unlike a specific Post by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id" +}, +"operationId": "unlikePost", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User that is requesting to unlike the Post.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "tweet_id", +"in": "path", +"description": "The ID of the Post that the User is requesting to unlike.", +"required": true, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UsersLikesDeleteResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/list_memberships": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"list.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Get List memberships", +"description": "Retrieves a list of Lists that a specific User is a member of by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" +}, +"operationId": "getUsersListMemberships", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the User to lookup.", +"required": true, +"example": "2244994945", +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationTokenLong" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/ListFieldsParameter" +}, +{ +"$ref": "#/components/parameters/ListExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdListMembershipsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/mentions": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get mentions", +"description": "Retrieves a list of Posts that mention a specific User by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions" +}, +"operationId": "getUsersMentions", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the User to lookup.", +"required": true, +"example": "2244994945", +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +}, +{ +"name": "since_id", +"in": "query", +"description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", +"required": false, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "until_id", +"in": "query", +"description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", +"required": false, +"example": "1346889436626259968", +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 5, +"maximum": 100, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", +"required": false, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdMentionsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/muting": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"mute.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Get muting", +"description": "Retrieves a list of Users muted by the authenticated user.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting" +}, +"operationId": "getUsersMuting", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User for whom to return results.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 1000, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationTokenLong" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdMutingResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"mute.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Mute User", +"description": "Causes the authenticated user to mute a specific User by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting" +}, +"operationId": "muteUser", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User that is requesting to mute the target User.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MuteUserRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MuteUserMutationResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/owned_lists": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"list.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Get owned Lists", +"description": "Retrieves a list of Lists owned by a specific User by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists" +}, +"operationId": "getUsersOwnedLists", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the User to lookup.", +"required": true, +"example": "2244994945", +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32", +"default": 100 +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get a specified 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationTokenLong" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/ListFieldsParameter" +}, +{ +"$ref": "#/components/parameters/ListExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdOwnedListsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/pinned_lists": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"list.read", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Get pinned Lists", +"description": "Retrieves a list of Lists pinned by the authenticated user.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/get-users-id-pinned_lists" +}, +"operationId": "getUsersPinnedLists", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User for whom to return results.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"$ref": "#/components/parameters/ListFieldsParameter" +}, +{ +"$ref": "#/components/parameters/ListExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdPinnedListsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"list.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Pin List", +"description": "Causes the authenticated user to pin a specific List by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/post-users-id-pinned-lists" +}, +"operationId": "pinList", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User that will pin the List.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListPinnedRequest" +} +} +}, +"required": true +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListPinnedResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/pinned_lists/{list_id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"list.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Lists" +], +"summary": "Unpin List", +"description": "Causes the authenticated user to unpin a specific List by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/delete-users-id-pinned-lists-list_id" +}, +"operationId": "unpinList", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User for whom to return results.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "list_id", +"in": "path", +"description": "The ID of the List to unpin.", +"required": true, +"schema": { +"$ref": "#/components/schemas/ListId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/ListUnpinResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/retweets": { +"post": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read", +"tweet.write", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Repost Post", +"description": "Causes the authenticated user to repost a specific Post by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets" +}, +"operationId": "repostPost", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User that is requesting to repost the Post.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +} +], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UsersRetweetsCreateRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UsersRetweetsCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/retweets/{source_tweet_id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read", +"tweet.write", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Unrepost Post", +"description": "Causes the authenticated user to unrepost a specific Post by its ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id" +}, +"operationId": "unrepostPost", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User that is requesting to repost the Post.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "source_tweet_id", +"in": "path", +"description": "The ID of the Post that the User is requesting to unretweet.", +"required": true, +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UsersRetweetsDeleteResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/timelines/reverse_chronological": { +"get": { +"security": [ +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get Timeline", +"description": "Retrieves a reverse chronological list of Posts in the authenticated User’s Timeline.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological" +}, +"operationId": "getUsersTimeline", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the authenticated source User to list Reverse Chronological Timeline Posts of.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "since_id", +"in": "query", +"description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", +"required": false, +"example": "791775337160081409", +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "until_id", +"in": "query", +"description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", +"required": false, +"example": "1346889436626259968", +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 1, +"maximum": 100, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "exclude", +"in": "query", +"description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", +"required": false, +"schema": { +"type": "array", +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"replies", +"retweets" +] +}, +"example": [ +"replies", +"retweets" +] +}, +"explode": false, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", +"required": false, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdTimelinesReverseChronologicalResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{id}/tweets": { +"get": { +"security": [ +{ +"BearerToken": [] +}, +{ +"OAuth2UserToken": [ +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Tweets" +], +"summary": "Get Posts", +"description": "Retrieves a list of posts authored by a specific User by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets" +}, +"operationId": "getUsersPosts", +"parameters": [ +{ +"name": "id", +"in": "path", +"description": "The ID of the User to lookup.", +"required": true, +"example": "2244994945", +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +}, +{ +"name": "since_id", +"in": "query", +"description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", +"required": false, +"example": "791775337160081409", +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "until_id", +"in": "query", +"description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", +"required": false, +"example": "1346889436626259968", +"schema": { +"$ref": "#/components/schemas/TweetId" +}, +"style": "form" +}, +{ +"name": "max_results", +"in": "query", +"description": "The maximum number of results.", +"required": false, +"schema": { +"type": "integer", +"minimum": 5, +"maximum": 100, +"format": "int32" +}, +"style": "form" +}, +{ +"name": "pagination_token", +"in": "query", +"description": "This parameter is used to get the next 'page' of results.", +"required": false, +"schema": { +"$ref": "#/components/schemas/PaginationToken36" +}, +"style": "form" +}, +{ +"name": "exclude", +"in": "query", +"description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", +"required": false, +"schema": { +"type": "array", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"replies", +"retweets" +] +}, +"example": [ +"replies", +"retweets" +] +}, +"explode": false, +"style": "form" +}, +{ +"name": "start_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", +"required": false, +"example": "2021-02-01T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"name": "end_time", +"in": "query", +"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", +"required": false, +"example": "2021-02-14T18:40:40.000Z", +"schema": { +"type": "string", +"format": "date-time" +}, +"style": "form" +}, +{ +"$ref": "#/components/parameters/TweetFieldsParameter" +}, +{ +"$ref": "#/components/parameters/TweetExpansionsParameter" +}, +{ +"$ref": "#/components/parameters/MediaFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PollFieldsParameter" +}, +{ +"$ref": "#/components/parameters/UserFieldsParameter" +}, +{ +"$ref": "#/components/parameters/PlaceFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2UsersIdTweetsResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{source_user_id}/following/{target_user_id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"follows.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Unfollow User", +"description": "Causes the authenticated user to unfollow a specific user by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following" +}, +"operationId": "unfollowUser", +"parameters": [ +{ +"name": "source_user_id", +"in": "path", +"description": "The ID of the authenticated source User that is requesting to unfollow the target User.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "target_user_id", +"in": "path", +"description": "The ID of the User that the source User is requesting to unfollow.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/UsersFollowingDeleteResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/users/{source_user_id}/muting/{target_user_id}": { +"delete": { +"security": [ +{ +"OAuth2UserToken": [ +"mute.write", +"tweet.read", +"users.read" +] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Users" +], +"summary": "Unmute User", +"description": "Causes the authenticated user to unmute a specific user by their ID.", +"externalDocs": { +"url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting" +}, +"operationId": "unmuteUser", +"parameters": [ +{ +"name": "source_user_id", +"in": "path", +"description": "The ID of the authenticated source User that is requesting to unmute the target User.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" +}, +"style": "simple" +}, +{ +"name": "target_user_id", +"in": "path", +"description": "The ID of the User that the source User is requesting to unmute.", +"required": true, +"schema": { +"$ref": "#/components/schemas/UserId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/MuteUserMutationResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/webhooks": { +"get": { +"security": [ +{ +"BearerToken": [] +} +], +"tags": [ +"Webhooks" +], +"summary": "Get webhook", +"description": "Get a list of webhook configs associated with a client app.", +"externalDocs": { +"url": "https://docs.x.com/x-api/webhooks/introduction" +}, +"operationId": "getWebhooks", +"parameters": [ +{ +"$ref": "#/components/parameters/WebhookConfigFieldsParameter" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Get2WebhooksResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"post": { +"security": [ +{ +"BearerToken": [] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Webhooks" +], +"summary": "Create webhook", +"description": "Creates a new webhook configuration.", +"externalDocs": { +"url": "https://docs.x.com/x-api/webhooks/introduction" +}, +"operationId": "createWebhooks", +"parameters": [], +"requestBody": { +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/WebhookConfigCreateRequest" +} +} +} +}, +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/WebhookConfigCreateResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +}, +"/2/webhooks/{webhook_id}": { +"delete": { +"security": [ +{ +"BearerToken": [] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Webhooks" +], +"summary": "Delete webhook", +"description": "Deletes an existing webhook configuration.", +"externalDocs": { +"url": "https://docs.x.com/x-api/webhooks/introduction" +}, +"operationId": "deleteWebhooks", +"parameters": [ +{ +"name": "webhook_id", +"in": "path", +"description": "The ID of the webhook to delete.", +"required": true, +"schema": { +"$ref": "#/components/schemas/WebhookConfigId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/WebhookConfigDeleteResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +}, +"put": { +"security": [ +{ +"BearerToken": [] +}, +{ +"UserToken": [] +} +], +"tags": [ +"Webhooks" +], +"summary": "Validate webhook", +"description": "Triggers a CRC check for a given webhook.", +"externalDocs": { +"url": "https://docs.x.com/x-api/webhooks/introduction" +}, +"operationId": "validateWebhooks", +"parameters": [ +{ +"name": "webhook_id", +"in": "path", +"description": "The ID of the webhook to check.", +"required": true, +"schema": { +"$ref": "#/components/schemas/WebhookConfigId" +}, +"style": "simple" +} +], +"responses": { +"200": { +"description": "The request has succeeded.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/WebhookConfigPutResponse" +} +} +} +}, +"default": { +"description": "The request has failed.", +"content": { +"application/json": { +"schema": { +"$ref": "#/components/schemas/Error" +} +}, +"application/problem+json": { +"schema": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +} +} +} +}, +"servers": [ +{ +"description": "X API", +"url": "https://api.x.com" +} +], +"tags": [ +{ +"name": "Account Activity", +"description": "Endpoints relating to retrieving, managing AAA subscriptions", +"externalDocs": { +"description": "Find out more", +"url": "https://docs.x.com/x-api/enterprise-gnip-2.0/fundamentals/account-activity" +} +}, +{ +"name": "Bookmarks", +"description": "Endpoints related to retrieving, managing bookmarks of a user", +"externalDocs": { +"description": "Find out more", +"url": "https://developer.twitter.com/en/docs/twitter-api/bookmarks" +} +}, +{ +"name": "Compliance", +"description": "Endpoints related to keeping X data in your systems compliant", +"externalDocs": { +"description": "Find out more", +"url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-tweet/introduction" +} +}, +{ +"name": "Direct Messages", +"description": "Endpoints related to retrieving, managing Direct Messages", +"externalDocs": { +"description": "Find out more", +"url": "https://developer.twitter.com/en/docs/twitter-api/direct-messages" +} +}, +{ +"name": "General", +"description": "Miscellaneous endpoints for general API functionality", +"externalDocs": { +"description": "Find out more", +"url": "https://developer.twitter.com/en/docs/twitter-api" +} +}, +{ +"name": "Lists", +"description": "Endpoints related to retrieving, managing Lists", +"externalDocs": { +"description": "Find out more", +"url": "https://developer.twitter.com/en/docs/twitter-api/lists" +} +}, +{ +"name": "Media", +"description": "Endpoints related to Media", +"externalDocs": { +"description": "Find out more", +"url": "https://developer.x.com" +} +}, +{ +"name": "MediaUpload", +"description": "Endpoints related to uploading Media", +"externalDocs": { +"description": "Find out more", +"url": "https://developer.x.com" +} +}, +{ +"name": "Spaces", +"description": "Endpoints related to retrieving, managing Spaces", +"externalDocs": { +"description": "Find out more", +"url": "https://developer.twitter.com/en/docs/twitter-api/spaces" +} +}, +{ +"name": "Stream", +"description": "Endpoints related to streaming", +"externalDocs": { +"description": "Find out more", +"url": "https://developer.x.com" +} +}, +{ +"name": "Tweets", +"description": "Endpoints related to retrieving, searching, and modifying Tweets", +"externalDocs": { +"description": "Find out more", +"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup" +} +}, +{ +"name": "Users", +"description": "Endpoints related to retrieving, managing relationships of Users", +"externalDocs": { +"description": "Find out more", +"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup" +} +} +], +"components": { +"securitySchemes": { +"BearerToken": { +"type": "http", +"scheme": "bearer" +}, +"OAuth2UserToken": { +"type": "oauth2", +"flows": { +"authorizationCode": { +"authorizationUrl": "https://api.x.com/2/oauth2/authorize", +"tokenUrl": "https://api.x.com/2/oauth2/token", +"scopes": { +"block.read": "View accounts you have blocked.", +"bookmark.read": "Read your bookmarked Posts.", +"bookmark.write": "Create and delete your bookmarks.", +"dm.read": "Read all your Direct Messages.", +"dm.write": "Send and manage your Direct Messages.", +"follows.read": "View accounts you follow and accounts following you.", +"follows.write": "Follow and unfollow accounts on your behalf.", +"like.read": "View Posts you have liked and likes you can see.", +"like.write": "Like and unlike Posts on your behalf.", +"list.read": "View Lists, members, and followers of Lists you created or are a member of, including private Lists.", +"list.write": "Create and manage Lists on your behalf.", +"media.write": "Upload media, such as photos and videos, on your behalf.", +"mute.read": "View accounts you have muted.", +"mute.write": "Mute and unmute accounts on your behalf.", +"offline.access": "Request a refresh token for the app.", +"space.read": "View all Spaces you have access to.", +"timeline.read": "View all Custom Timelines you can see, including public Custom Timelines from other developers.", +"tweet.moderate.write": "Hide and unhide replies to your Posts.", +"tweet.read": "View all Posts you can see, including those from protected accounts.", +"tweet.write": "Post and repost on your behalf.", +"users.read": "View any account you can see, including protected accounts." +} +} +} +}, +"UserToken": { +"type": "http", +"scheme": "OAuth" +} +}, +"schemas": { +"AddOrDeleteRulesRequest": { +"oneOf": [ +{ +"$ref": "#/components/schemas/AddRulesRequest" +}, +{ +"$ref": "#/components/schemas/DeleteRulesRequest" +} +] +}, +"AddOrDeleteRulesResponse": { +"type": "object", +"description": "A response from modifying user-specified stream filtering rules.", +"required": [ +"meta" +], +"properties": { +"data": { +"type": "array", +"description": "All user-specified stream filtering rules that were created.", +"items": { +"$ref": "#/components/schemas/Rule" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"meta": { +"$ref": "#/components/schemas/RulesResponseMetadata" +} +} +}, +"AddRulesRequest": { +"type": "object", +"description": "A request to add a user-specified stream filtering rule.", +"required": [ +"add" +], +"properties": { +"add": { +"type": "array", +"items": { +"$ref": "#/components/schemas/RuleNoId" +} +} +} +}, +"Aggregate": { +"type": "integer", +"description": "The sum of results returned in this response.", +"format": "int32" +}, +"AllProjectClientApps": { +"type": "array", +"description": "Client App Rule Counts for all applications in the project", +"items": { +"$ref": "#/components/schemas/AppRulesCount" +} +}, +"AllowDownloadStatus": { +"type": "object", +"properties": { +"allow_download": { +"type": "boolean", +"example": true +} +} +}, +"AltText": { +"type": "object", +"properties": { +"text": { +"type": "string", +"description": "Description of media ( <= 1000 characters )", +"maxLength": 1000, +"example": "A dancing cat" +} +} +}, +"Analytics": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"id": { +"$ref": "#/components/schemas/TweetId" +}, +"timestamped_metrics": { +"type": "array", +"title": "Timestamped Metrics", +"description": "Array containing metrics data along with the timestamps of their recording.", +"items": { +"$ref": "#/components/schemas/TimestampedMetrics" +} +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"AnimatedGif": { +"allOf": [ +{ +"$ref": "#/components/schemas/Media" +}, +{ +"type": "object", +"properties": { +"preview_image_url": { +"type": "string", +"format": "uri" +}, +"variants": { +"$ref": "#/components/schemas/Variants" +} +} +} +] +}, +"AppRulesCount": { +"type": "object", +"description": "A count of user-provided stream filtering rules at the client application level.", +"properties": { +"client_app_id": { +"$ref": "#/components/schemas/ClientAppId" +}, +"rule_count": { +"type": "integer", +"description": "Number of rules for client application", +"format": "int32" +} +} +}, +"AudiencePolicy": { +"type": "object", +"properties": { +"creator_subscriptions": { +"type": "array", +"items": { +"type": "string", +"enum": [ +"Any" +] +} +}, +"x_subscriptions": { +"type": "array", +"items": { +"type": "string", +"enum": [ +"Any" +] +} +} +} +}, +"BookmarkAddRequest": { +"type": "object", +"required": [ +"tweet_id" +], +"properties": { +"tweet_id": { +"$ref": "#/components/schemas/TweetId" +} +} +}, +"BookmarkFolderId": { +"type": "string", +"description": "The unique identifier of this Bookmark folder.", +"pattern": "^[0-9]{1,19}$", +"example": "1146654567674912769" +}, +"BookmarkFolderPostsResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"id": { +"$ref": "#/components/schemas/TweetId" +} +} +} +} +}, +"BookmarkFoldersResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"id": { +"$ref": "#/components/schemas/BookmarkFolderId" +}, +"name": { +"type": "string" +} +} +} +} +}, +"BookmarkMutationResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"bookmarked": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"CashtagEntity": { +"allOf": [ +{ +"$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" +}, +{ +"$ref": "#/components/schemas/CashtagFields" +} +] +}, +"CashtagFields": { +"type": "object", +"description": "Represent the portion of text recognized as a Cashtag, and its start and end position within the text.", +"required": [ +"tag" +], +"properties": { +"tag": { +"type": "string", +"example": "TWTR" +} +} +}, +"ClientAppId": { +"type": "string", +"description": "The ID of the client application", +"minLength": 1, +"maxLength": 19 +}, +"ClientAppUsage": { +"type": "object", +"description": "Usage per client app", +"properties": { +"client_app_id": { +"type": "string", +"description": "The unique identifier for this project", +"format": "^[0-9]{1,19}$" +}, +"usage": { +"type": "array", +"description": "The usage value", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/UsageFields" +} +}, +"usage_result_count": { +"type": "integer", +"description": "The number of results returned", +"format": "int32" +} +} +}, +"ClientDisconnectedProblem": { +"description": "Your client has gone away.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +} +] +}, +"ClientForbiddenProblem": { +"description": "A problem that indicates your client is forbidden from making this request.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +}, +{ +"type": "object", +"properties": { +"reason": { +"type": "string", +"enum": [ +"official-client-forbidden", +"client-not-enrolled" +] +}, +"registration_url": { +"type": "string", +"format": "uri" +} +} +} +] +}, +"Community": { +"type": "object", +"description": "A X Community is a curated group of Posts.", +"required": [ +"id", +"name" +], +"properties": { +"created_at": { +"type": "string", +"format": "date-time" +}, +"id": { +"$ref": "#/components/schemas/CommunityId" +}, +"name": { +"type": "string", +"description": "The name of this Community." +} +} +}, +"CommunityId": { +"type": "string", +"description": "The unique identifier of this Community.", +"pattern": "^[0-9]{1,19}$", +"example": "1146654567674912769" +}, +"ComplianceJob": { +"type": "object", +"required": [ +"id", +"type", +"created_at", +"upload_url", +"download_url", +"upload_expires_at", +"download_expires_at", +"status" +], +"properties": { +"created_at": { +"$ref": "#/components/schemas/CreatedAt" +}, +"download_expires_at": { +"$ref": "#/components/schemas/DownloadExpiration" +}, +"download_url": { +"$ref": "#/components/schemas/DownloadUrl" +}, +"id": { +"$ref": "#/components/schemas/JobId" +}, +"name": { +"$ref": "#/components/schemas/ComplianceJobName" +}, +"status": { +"$ref": "#/components/schemas/ComplianceJobStatus" +}, +"type": { +"$ref": "#/components/schemas/ComplianceJobType" +}, +"upload_expires_at": { +"$ref": "#/components/schemas/UploadExpiration" +}, +"upload_url": { +"$ref": "#/components/schemas/UploadUrl" +} +} +}, +"ComplianceJobName": { +"type": "string", +"description": "User-provided name for a compliance job.", +"maxLength": 64, +"example": "my-job" +}, +"ComplianceJobStatus": { +"type": "string", +"description": "Status of a compliance job.", +"enum": [ +"created", +"in_progress", +"failed", +"complete", +"expired" +] +}, +"ComplianceJobType": { +"type": "string", +"description": "Type of compliance job to list.", +"enum": [ +"tweets", +"users" +] +}, +"ConflictProblem": { +"description": "You cannot create a new job if one is already in progress.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +} +] +}, +"ConnectionExceptionProblem": { +"description": "A problem that indicates something is wrong with the connection.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +}, +{ +"type": "object", +"properties": { +"connection_issue": { +"type": "string", +"enum": [ +"TooManyConnections", +"ProvisioningSubscription", +"RuleConfigurationIssue", +"RulesInvalidIssue" +] +} +} +} +] +}, +"ContentExpiration": { +"type": "object", +"properties": { +"timestamp_sec": { +"type": "number", +"description": "Expiration time for content as a Unix timestamp in seconds", +"format": "long", +"example": 1740787200 +} +} +}, +"ContextAnnotation": { +"type": "object", +"description": "Annotation inferred from the Tweet text.", +"required": [ +"domain", +"entity" +], +"properties": { +"domain": { +"$ref": "#/components/schemas/ContextAnnotationDomainFields" +}, +"entity": { +"$ref": "#/components/schemas/ContextAnnotationEntityFields" +} +} +}, +"ContextAnnotationDomainFields": { +"type": "object", +"description": "Represents the data for the context annotation domain.", +"required": [ +"id" +], +"properties": { +"description": { +"type": "string", +"description": "Description of the context annotation domain." +}, +"id": { +"type": "string", +"description": "The unique id for a context annotation domain.", +"pattern": "^[0-9]{1,19}$" +}, +"name": { +"type": "string", +"description": "Name of the context annotation domain." +} +} +}, +"ContextAnnotationEntityFields": { +"type": "object", +"description": "Represents the data for the context annotation entity.", +"required": [ +"id" +], +"properties": { +"description": { +"type": "string", +"description": "Description of the context annotation entity." +}, +"id": { +"type": "string", +"description": "The unique id for a context annotation entity.", +"pattern": "^[0-9]{1,19}$" +}, +"name": { +"type": "string", +"description": "Name of the context annotation entity." +} +} +}, +"CountryCode": { +"type": "string", +"description": "A two-letter ISO 3166-1 alpha-2 country code.", +"pattern": "^[A-Z]{2}$", +"example": "US" +}, +"CreateAttachmentsMessageRequest": { +"type": "object", +"required": [ +"attachments" +], +"properties": { +"attachments": { +"$ref": "#/components/schemas/DmAttachments" +}, +"text": { +"type": "string", +"description": "Text of the message.", +"minLength": 1 +} +} +}, +"CreateComplianceJobRequest": { +"type": "object", +"description": "A request to create a new batch compliance job.", +"required": [ +"type" +], +"properties": { +"name": { +"$ref": "#/components/schemas/ComplianceJobName" +}, +"resumable": { +"type": "boolean", +"description": "If true, this endpoint will return a pre-signed URL with resumable uploads enabled." +}, +"type": { +"type": "string", +"description": "Type of compliance job to list.", +"enum": [ +"tweets", +"users" +] +} +} +}, +"CreateComplianceJobResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/ComplianceJob" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"CreateDmConversationRequest": { +"type": "object", +"required": [ +"conversation_type", +"participant_ids", +"message" +], +"properties": { +"conversation_type": { +"type": "string", +"description": "The conversation type that is being created.", +"enum": [ +"Group" +] +}, +"message": { +"$ref": "#/components/schemas/CreateMessageRequest" +}, +"participant_ids": { +"$ref": "#/components/schemas/DmParticipants" +} +}, +"additionalProperties": false +}, +"CreateDmEventResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"required": [ +"dm_conversation_id", +"dm_event_id" +], +"properties": { +"dm_conversation_id": { +"$ref": "#/components/schemas/DmConversationId" +}, +"dm_event_id": { +"$ref": "#/components/schemas/DmEventId" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"CreateMessageRequest": { +"anyOf": [ +{ +"$ref": "#/components/schemas/CreateTextMessageRequest" +}, +{ +"$ref": "#/components/schemas/CreateAttachmentsMessageRequest" +} +] +}, +"CreateNoteRequest": { +"type": "object", +"title": "Note", +"required": [ +"test_mode", +"post_id", +"info" +], +"properties": { +"info": { +"$ref": "#/components/schemas/NoteInfo" +}, +"post_id": { +"$ref": "#/components/schemas/TweetId" +}, +"test_mode": { +"type": "boolean", +"description": "If true, the note being submitted is only for testing the capability of the bot, and won't be publicly visible. If false, the note being submitted will be a new proposed note on the product." +} +}, +"additionalProperties": false +}, +"CreateNoteResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"id": { +"$ref": "#/components/schemas/NoteId" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"CreateTextMessageRequest": { +"type": "object", +"required": [ +"text" +], +"properties": { +"attachments": { +"$ref": "#/components/schemas/DmAttachments" +}, +"text": { +"type": "string", +"description": "Text of the message.", +"minLength": 1 +} +} +}, +"CreatedAt": { +"type": "string", +"description": "Creation time of the compliance job.", +"format": "date-time", +"example": "2021-01-06T18:40:40.000Z" +}, +"DeleteDmResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"deleted": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"DeleteNoteResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"required": [ +"deleted" +], +"properties": { +"deleted": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"DeleteRulesRequest": { +"type": "object", +"description": "A response from deleting user-specified stream filtering rules.", +"required": [ +"delete" +], +"properties": { +"delete": { +"type": "object", +"description": "IDs and values of all deleted user-specified stream filtering rules.", +"properties": { +"ids": { +"type": "array", +"description": "IDs of all deleted user-specified stream filtering rules.", +"items": { +"$ref": "#/components/schemas/RuleId" +} +}, +"values": { +"type": "array", +"description": "Values of all deleted user-specified stream filtering rules.", +"items": { +"$ref": "#/components/schemas/RuleValue" +} +} +} +} +} +}, +"DisallowedResourceProblem": { +"description": "A problem that indicates that the resource requested violates the precepts of this API.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +}, +{ +"type": "object", +"required": [ +"resource_id", +"resource_type", +"section" +], +"properties": { +"resource_id": { +"type": "string" +}, +"resource_type": { +"type": "string", +"enum": [ +"user", +"tweet", +"media", +"list", +"space" +] +}, +"section": { +"type": "string", +"enum": [ +"data", +"includes" +] +} +} +} +] +}, +"DisplayTextRange": { +"type": "array", +"description": "Represent a boundary range (start and end zero-based indices) for the portion of text that is displayed for a post. `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", +"minItems": 2, +"maxItems": 2, +"items": { +"type": "integer", +"minimum": 0 +} +}, +"DmAttachments": { +"type": "array", +"description": "Attachments to a DM Event.", +"items": { +"$ref": "#/components/schemas/DmMediaAttachment" +} +}, +"DmConversationId": { +"type": "string", +"description": "Unique identifier of a DM conversation. This can either be a numeric string, or a pair of numeric strings separated by a '-' character in the case of one-on-one DM Conversations.", +"pattern": "^([0-9]{1,19}-[0-9]{1,19}|[0-9]{15,19})$", +"example": "123123123-456456456" +}, +"DmEvent": { +"type": "object", +"required": [ +"id", +"event_type" +], +"properties": { +"attachments": { +"type": "object", +"description": "Specifies the type of attachments (if any) present in this DM.", +"properties": { +"card_ids": { +"type": "array", +"description": "A list of card IDs (if cards are attached).", +"minItems": 1, +"items": { +"type": "string" +} +}, +"media_keys": { +"type": "array", +"description": "A list of Media Keys for each one of the media attachments (if media are attached).", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/MediaKey" +} +} +} +}, +"cashtags": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/CashtagEntity" +} +}, +"created_at": { +"type": "string", +"format": "date-time" +}, +"dm_conversation_id": { +"$ref": "#/components/schemas/DmConversationId" +}, +"event_type": { +"type": "string", +"example": "MessageCreate" +}, +"hashtags": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/HashtagEntity" +} +}, +"id": { +"$ref": "#/components/schemas/DmEventId" +}, +"mentions": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/MentionEntity" +} +}, +"participant_ids": { +"type": "array", +"description": "A list of participants for a ParticipantsJoin or ParticipantsLeave event_type.", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/UserId" +} +}, +"referenced_tweets": { +"type": "array", +"description": "A list of Posts this DM refers to.", +"minItems": 1, +"items": { +"type": "object", +"required": [ +"id" +], +"properties": { +"id": { +"$ref": "#/components/schemas/TweetId" +} +} +} +}, +"sender_id": { +"$ref": "#/components/schemas/UserId" +}, +"text": { +"type": "string" +}, +"urls": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/UrlEntityDm" +} +} +} +}, +"DmEventId": { +"type": "string", +"description": "Unique identifier of a DM Event.", +"pattern": "^[0-9]{1,19}$", +"example": "1146654567674912769" +}, +"DmMediaAttachment": { +"type": "object", +"required": [ +"media_id" +], +"properties": { +"media_id": { +"$ref": "#/components/schemas/MediaId" +} +} +}, +"DmParticipants": { +"type": "array", +"description": "Participants for the DM Conversation.", +"minItems": 2, +"maxItems": 49, +"items": { +"$ref": "#/components/schemas/UserId" +} +}, +"DomainRestrictions": { +"type": "object", +"properties": { +"whitelist": { +"type": "array", +"description": "List of whitelisted domains", +"items": { +"type": "string" +} +} +} +}, +"DownloadExpiration": { +"type": "string", +"description": "Expiration time of the download URL.", +"format": "date-time", +"example": "2021-01-06T18:40:40.000Z" +}, +"DownloadUrl": { +"type": "string", +"description": "URL from which the user will retrieve their compliance results.", +"format": "uri" +}, +"DuplicateRuleProblem": { +"description": "The rule you have submitted is a duplicate.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +}, +{ +"type": "object", +"properties": { +"id": { +"type": "string" +}, +"value": { +"type": "string" +} +} +} +] +}, +"End": { +"type": "string", +"description": "The end time of the bucket.", +"format": "date-time" +}, +"Engagement": { +"type": "object", +"description": "An Engagement Api Response.", +"properties": { +"errors": { +"type": "array", +"minItems": 1, +"items": { +"type": "object", +"properties": { +"error": { +"type": "string" +}, +"tweets": { +"type": "array", +"items": { +"type": "string" +} +} +} +} +}, +"measurement": { +"type": "object", +"properties": { +"metrics_time_series": { +"type": "array", +"minItems": 1, +"items": { +"type": "object", +"properties": { +"tweet_id": { +"$ref": "#/components/schemas/TweetId" +}, +"value": { +"type": "object", +"properties": { +"metric_values": { +"type": "array", +"items": { +"type": "object", +"properties": { +"metric_type": { +"type": "string" +}, +"metric_value": { +"type": "number" +} +} +} +}, +"timestamp": { +"type": "object", +"properties": { +"iso8601_time": { +"type": "string" +} +} +} +} +} +} +} +}, +"metrics_total": { +"type": "array", +"minItems": 1, +"items": { +"type": "object", +"properties": { +"tweet_id": { +"$ref": "#/components/schemas/TweetId" +}, +"value": { +"type": "array", +"minItems": 1, +"items": { +"type": "object", +"properties": { +"metric_type": { +"type": "string" +}, +"metric_value": { +"type": "number" +} +} +} +} +} +} +} +} +} +} +}, +"EntityIndicesInclusiveExclusive": { +"type": "object", +"description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", +"required": [ +"start", +"end" +], +"properties": { +"end": { +"type": "integer", +"description": "Index (zero-based) at which position this entity ends. The index is exclusive.", +"minimum": 0, +"example": 61 +}, +"start": { +"type": "integer", +"description": "Index (zero-based) at which position this entity starts. The index is inclusive.", +"minimum": 0, +"example": 50 +} +} +}, +"EntityIndicesInclusiveInclusive": { +"type": "object", +"description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is inclusive.", +"required": [ +"start", +"end" +], +"properties": { +"end": { +"type": "integer", +"description": "Index (zero-based) at which position this entity ends. The index is inclusive.", +"minimum": 0, +"example": 61 +}, +"start": { +"type": "integer", +"description": "Index (zero-based) at which position this entity starts. The index is inclusive.", +"minimum": 0, +"example": 50 +} +} +}, +"Error": { +"type": "object", +"required": [ +"code", +"message" +], +"properties": { +"code": { +"type": "integer", +"format": "int32" +}, +"message": { +"type": "string" +} +} +}, +"Expansions": { +"type": "object", +"properties": { +"media": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Media" +} +}, +"places": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Place" +} +}, +"polls": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Poll" +} +}, +"topics": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Topic" +} +}, +"tweets": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"users": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +} +} +}, +"FieldUnauthorizedProblem": { +"description": "A problem that indicates that you are not allowed to see a particular field on a Tweet, User, etc.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +}, +{ +"type": "object", +"required": [ +"resource_type", +"field", +"section" +], +"properties": { +"field": { +"type": "string" +}, +"resource_type": { +"type": "string", +"enum": [ +"user", +"tweet", +"media", +"list", +"space" +] +}, +"section": { +"type": "string", +"enum": [ +"data", +"includes" +] +} +} +} +] +}, +"FilteredStreamingTweetResponse": { +"type": "object", +"description": "A Tweet or error that can be returned by the streaming Tweet API. The values returned with a successful streamed Tweet includes the user provided rules that the Tweet matched.", +"properties": { +"data": { +"$ref": "#/components/schemas/Tweet" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"matching_rules": { +"type": "array", +"description": "The list of rules which matched the Tweet", +"items": { +"type": "object", +"required": [ +"id" +], +"properties": { +"id": { +"$ref": "#/components/schemas/RuleId" +}, +"tag": { +"$ref": "#/components/schemas/RuleTag" +} +} +} +} +} +}, +"FoundMediaOrigin": { +"type": "object", +"properties": { +"id": { +"type": "string", +"description": "Unique Identifier of media within provider ( <= 24 characters ))", +"example": "u5BzatR15TZ04" +}, +"provider": { +"type": "string", +"description": "The media provider (e.g., 'giphy') that sourced the media ( <= 8 Characters )", +"example": "giphy" +} +} +}, +"FullTextEntities": { +"type": "object", +"properties": { +"annotations": { +"type": "array", +"minItems": 1, +"items": { +"description": "Annotation for entities based on the Tweet text.", +"allOf": [ +{ +"$ref": "#/components/schemas/EntityIndicesInclusiveInclusive" +}, +{ +"type": "object", +"description": "Represents the data for the annotation.", +"properties": { +"normalized_text": { +"type": "string", +"description": "Text used to determine annotation.", +"example": "Barack Obama" +}, +"probability": { +"type": "number", +"description": "Confidence factor for annotation type.", +"minimum": 0, +"maximum": 1, +"format": "double" +}, +"type": { +"type": "string", +"description": "Annotation type.", +"example": "Person" +} +} +} +] +} +}, +"cashtags": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/CashtagEntity" +} +}, +"hashtags": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/HashtagEntity" +} +}, +"mentions": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/MentionEntity" +} +}, +"urls": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/UrlEntity" +} +} +} +}, +"GenericProblem": { +"description": "A generic problem with no additional information beyond that provided by the HTTP status code.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +} +] +}, +"Geo": { +"type": "object", +"required": [ +"type", +"bbox", +"properties" +], +"properties": { +"bbox": { +"type": "array", +"minItems": 4, +"maxItems": 4, +"items": { +"type": "number", +"minimum": -180, +"maximum": 180, +"format": "double" +}, +"example": [ +-105.193475, +39.60973, +-105.053164, +39.761974 +] +}, +"geometry": { +"$ref": "#/components/schemas/Point" +}, +"properties": { +"type": "object" +}, +"type": { +"type": "string", +"enum": [ +"Feature" +] +} +} +}, +"GeoRestrictions": { +"oneOf": [ +{ +"type": "object", +"required": [ +"whitelisted_country_codes", +"blacklisted_country_codes" +], +"properties": { +"blacklisted_country_codes": { +"type": "array", +"description": "List of blacklisted country codes", +"minItems": 0, +"maxItems": 0, +"items": { +"type": "string", +"description": "Country code in ISO 3166-1 alpha-2 format", +"pattern": "^[a-zA-Z]{2}$", +"example": "us" +} +}, +"whitelisted_country_codes": { +"type": "array", +"description": "List of whitelisted country codes", +"minItems": 1, +"items": { +"type": "string", +"description": "Country code in ISO 3166-1 alpha-2 format", +"pattern": "^[a-zA-Z]{2}$", +"example": "us" +} +} +} +}, +{ +"type": "object", +"required": [ +"whitelisted_country_codes", +"blacklisted_country_codes" +], +"properties": { +"blacklisted_country_codes": { +"type": "array", +"description": "List of blacklisted country codes", +"minItems": 1, +"items": { +"type": "string", +"description": "Country code in ISO 3166-1 alpha-2 format", +"pattern": "^[a-zA-Z]{2}$", +"example": "us" +} +}, +"whitelisted_country_codes": { +"type": "array", +"description": "List of whitelisted country codes", +"minItems": 0, +"maxItems": 0, +"items": { +"type": "string", +"description": "Country code in ISO 3166-1 alpha-2 format", +"pattern": "^[a-zA-Z]{2}$", +"example": "us" +} +} +} +} +] +}, +"Get2CommunitiesIdResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Community" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2CommunitiesSearchResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Community" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +} +} +} +} +}, +"Get2ComplianceJobsIdResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/ComplianceJob" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2ComplianceJobsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/ComplianceJob" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"meta": { +"type": "object", +"properties": { +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2DmConversationsIdDmEventsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/DmEvent" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2DmConversationsWithParticipantIdDmEventsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/DmEvent" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2DmEventsEventIdResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/DmEvent" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2DmEventsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/DmEvent" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2FdxAccountsAccountidContactResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/PlaidAccountContact" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2FdxAccountsAccountidPayment-networksResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/PlaidAccountPaymentNetwork" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2FdxAccountsAccountidResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/PlaidAccount" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2FdxAccountsAccountidTransactionsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/PlaidAccountTransaction" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2FdxCustomersCurrentResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/PlaidCustomer" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2Insights28hrResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Engagement" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2InsightsHistoricalResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Engagement" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2LikesFirehoseStreamResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/LikeWithTweetAuthor" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2LikesSample10StreamResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/LikeWithTweetAuthor" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2ListsIdFollowersResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2ListsIdMembersResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2ListsIdResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/List" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2ListsIdTweetsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2MediaAnalyticsResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/MediaAnalytics" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2MediaMediaKeyResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Media" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2MediaResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Media" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2NotesSearchNotesWrittenResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Note" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2NotesSearchPostsEligibleForNotesResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2SpacesByCreatorIdsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Space" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2SpacesIdBuyersResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2SpacesIdResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Space" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2SpacesIdTweetsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2SpacesResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Space" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2SpacesSearchResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Space" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2TrendsByWoeidWoeidResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Trend" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2TweetsAnalyticsResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Analytics" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2TweetsCountsAllResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/SearchCount" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"meta": { +"type": "object", +"properties": { +"newest_id": { +"$ref": "#/components/schemas/NewestId" +}, +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"oldest_id": { +"$ref": "#/components/schemas/OldestId" +}, +"total_tweet_count": { +"$ref": "#/components/schemas/Aggregate" +} +} +} +} +}, +"Get2TweetsCountsRecentResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/SearchCount" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"meta": { +"type": "object", +"properties": { +"newest_id": { +"$ref": "#/components/schemas/NewestId" +}, +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"oldest_id": { +"$ref": "#/components/schemas/OldestId" +}, +"total_tweet_count": { +"$ref": "#/components/schemas/Aggregate" +} +} +} +} +}, +"Get2TweetsFirehoseStreamLangEnResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Tweet" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2TweetsFirehoseStreamLangJaResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Tweet" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2TweetsFirehoseStreamLangKoResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Tweet" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2TweetsFirehoseStreamLangPtResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Tweet" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2TweetsFirehoseStreamResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Tweet" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2TweetsIdLikingUsersResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2TweetsIdQuoteTweetsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2TweetsIdResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Tweet" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2TweetsIdRetweetedByResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2TweetsIdRetweetsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2TweetsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2TweetsSample10StreamResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Tweet" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2TweetsSampleStreamResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Tweet" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2TweetsSearchAllResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"newest_id": { +"$ref": "#/components/schemas/NewestId" +}, +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"oldest_id": { +"$ref": "#/components/schemas/OldestId" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2TweetsSearchRecentResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"newest_id": { +"$ref": "#/components/schemas/NewestId" +}, +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"oldest_id": { +"$ref": "#/components/schemas/OldestId" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2TweetsSearchStreamResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Tweet" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2TweetsSearchStreamRulesCountsResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/RulesCount" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2UsageTweetsResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Usage" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2UsersByResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2UsersByUsernameUsernameResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/User" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2UsersIdBlockingResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdBookmarksResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdFollowedListsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/List" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdFollowersResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdFollowingResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdLikedTweetsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdListMembershipsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/List" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdMentionsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"newest_id": { +"$ref": "#/components/schemas/NewestId" +}, +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"oldest_id": { +"$ref": "#/components/schemas/OldestId" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdMutingResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdOwnedListsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/List" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdPinnedListsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/List" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/User" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2UsersIdTimelinesReverseChronologicalResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"newest_id": { +"$ref": "#/components/schemas/NewestId" +}, +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"oldest_id": { +"$ref": "#/components/schemas/OldestId" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersIdTweetsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"newest_id": { +"$ref": "#/components/schemas/NewestId" +}, +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"oldest_id": { +"$ref": "#/components/schemas/OldestId" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersMeResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/User" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2UsersPersonalizedTrendsResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/PersonalizedTrend" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Get2UsersRepostsOfMeResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Tweet" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +}, +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"Get2UsersResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"Get2UsersSearchResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/User" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +}, +"meta": { +"type": "object", +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"previous_token": { +"$ref": "#/components/schemas/PreviousToken" +} +} +} +} +}, +"Get2WebhooksResponse": { +"type": "object", +"properties": { +"data": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/WebhookConfig" +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"meta": { +"type": "object", +"properties": { +"result_count": { +"$ref": "#/components/schemas/ResultCount" +} +} +} +} +}, +"HashtagEntity": { +"allOf": [ +{ +"$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" +}, +{ +"$ref": "#/components/schemas/HashtagFields" +} +] +}, +"HashtagFields": { +"type": "object", +"description": "Represent the portion of text recognized as a Hashtag, and its start and end position within the text.", +"required": [ +"tag" +], +"properties": { +"tag": { +"type": "string", +"description": "The text of the Hashtag.", +"example": "MondayMotivation" +} +} +}, +"HttpStatusCode": { +"type": "integer", +"description": "HTTP Status Code.", +"minimum": 100, +"maximum": 599 +}, +"InvalidRequestProblem": { +"description": "A problem that indicates this request is invalid.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +}, +{ +"type": "object", +"properties": { +"errors": { +"type": "array", +"minItems": 1, +"items": { +"type": "object", +"properties": { +"message": { +"type": "string" +}, +"parameters": { +"type": "object", +"additionalProperties": { +"type": "array", +"items": { +"type": "string" +} +} +} +} +} +} +} +} +] +}, +"InvalidRuleProblem": { +"description": "The rule you have submitted is invalid.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +} +] +}, +"JobId": { +"type": "string", +"description": "Compliance Job ID.", +"pattern": "^[0-9]{1,19}$", +"example": "1372966999991541762" +}, +"KillAllConnectionsResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"killed_connections": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"LikeComplianceSchema": { +"type": "object", +"required": [ +"delete" +], +"properties": { +"delete": { +"$ref": "#/components/schemas/UnlikeComplianceSchema" +} +} +}, +"LikeId": { +"type": "string", +"description": "The unique identifier of this Like.", +"pattern": "^[A-Za-z0-9_]{1,40}$", +"example": "8ba4f34e6235d905a46bac021d98e923" +}, +"LikeWithTweetAuthor": { +"type": "object", +"description": "A Like event, with the tweet author user and the tweet being liked", +"properties": { +"created_at": { +"type": "string", +"description": "Creation time of the Tweet.", +"format": "date-time", +"example": "2021-01-06T18:40:40.000Z" +}, +"id": { +"$ref": "#/components/schemas/LikeId" +}, +"liked_tweet_id": { +"$ref": "#/components/schemas/TweetId" +}, +"timestamp_ms": { +"type": "integer", +"description": "Timestamp in milliseconds of creation.", +"format": "int32" +}, +"tweet_author_id": { +"$ref": "#/components/schemas/UserId" +} +} +}, +"LikesComplianceStreamResponse": { +"description": "Likes compliance stream events.", +"oneOf": [ +{ +"type": "object", +"description": "Compliance event.", +"required": [ +"data" +], +"properties": { +"data": { +"$ref": "#/components/schemas/LikeComplianceSchema" +} +} +}, +{ +"type": "object", +"required": [ +"errors" +], +"properties": { +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +] +}, +"List": { +"type": "object", +"description": "A X List is a curated group of accounts.", +"required": [ +"id", +"name" +], +"properties": { +"created_at": { +"type": "string", +"format": "date-time" +}, +"description": { +"type": "string" +}, +"follower_count": { +"type": "integer" +}, +"id": { +"$ref": "#/components/schemas/ListId" +}, +"member_count": { +"type": "integer" +}, +"name": { +"type": "string", +"description": "The name of this List." +}, +"owner_id": { +"$ref": "#/components/schemas/UserId" +}, +"private": { +"type": "boolean" +} +} +}, +"ListAddUserRequest": { +"type": "object", +"required": [ +"user_id" +], +"properties": { +"user_id": { +"$ref": "#/components/schemas/UserId" +} +} +}, +"ListCreateRequest": { +"type": "object", +"required": [ +"name" +], +"properties": { +"description": { +"type": "string", +"minLength": 0, +"maxLength": 100 +}, +"name": { +"type": "string", +"minLength": 1, +"maxLength": 25 +}, +"private": { +"type": "boolean", +"default": false +} +} +}, +"ListCreateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"description": "A X List is a curated group of accounts.", +"required": [ +"id", +"name" +], +"properties": { +"id": { +"$ref": "#/components/schemas/ListId" +}, +"name": { +"type": "string", +"description": "The name of this List." +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"ListDeleteResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"deleted": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"ListFollowedRequest": { +"type": "object", +"required": [ +"list_id" +], +"properties": { +"list_id": { +"$ref": "#/components/schemas/ListId" +} +} +}, +"ListFollowedResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"following": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"ListId": { +"type": "string", +"description": "The unique identifier of this List.", +"pattern": "^[0-9]{1,19}$", +"example": "1146654567674912769" +}, +"ListMutateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"is_member": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"ListPinnedRequest": { +"type": "object", +"required": [ +"list_id" +], +"properties": { +"list_id": { +"$ref": "#/components/schemas/ListId" +} +} +}, +"ListPinnedResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"pinned": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"ListUnpinResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"pinned": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"ListUpdateRequest": { +"type": "object", +"properties": { +"description": { +"type": "string", +"minLength": 0, +"maxLength": 100 +}, +"name": { +"type": "string", +"minLength": 1, +"maxLength": 25 +}, +"private": { +"type": "boolean" +} +} +}, +"ListUpdateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"updated": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"ManagementInfo": { +"type": "object", +"properties": { +"managed": { +"type": "boolean", +"description": "Indicates if the media is managed by Media Studio", +"example": false +} +} +}, +"Media": { +"type": "object", +"required": [ +"type" +], +"properties": { +"height": { +"$ref": "#/components/schemas/MediaHeight" +}, +"media_key": { +"$ref": "#/components/schemas/MediaKey" +}, +"type": { +"type": "string" +}, +"width": { +"$ref": "#/components/schemas/MediaWidth" +} +}, +"discriminator": { +"propertyName": "type", +"mapping": { +"animated_gif": "#/components/schemas/AnimatedGif", +"photo": "#/components/schemas/Photo", +"video": "#/components/schemas/Video" +} +} +}, +"MediaAnalytics": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"media_key": { +"$ref": "#/components/schemas/MediaKey" +}, +"timestamped_metrics": { +"type": "array", +"title": "Timestamped Metrics", +"description": "Array containing metrics data along with the timestamps of their recording.", +"items": { +"$ref": "#/components/schemas/MediaTimestampedMetrics" +} +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"MediaCategory": { +"type": "string", +"description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size, video duration) and enable advanced features.", +"enum": [ +"amplify_video", +"tweet_gif", +"tweet_image", +"tweet_video", +"dm_gif", +"dm_image", +"dm_video", +"subtitles" +], +"example": "tweet_video" +}, +"MediaCategoryOneShot": { +"type": "string", +"description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size) and enable advanced features.", +"enum": [ +"tweet_image", +"dm_image", +"subtitles" +], +"example": "tweet_image" +}, +"MediaCategorySubtitles": { +"type": "string", +"description": "The media category of uploaded media to which subtitles should be added/deleted", +"enum": [ +"AmplifyVideo", +"TweetVideo" +], +"example": "TweetVideo" +}, +"MediaHeight": { +"type": "integer", +"description": "The height of the media in pixels.", +"minimum": 0 +}, +"MediaId": { +"type": "string", +"description": "The unique identifier of this Media.", +"pattern": "^[0-9]{1,19}$", +"example": "1146654567674912769" +}, +"MediaKey": { +"type": "string", +"description": "The Media Key identifier for this attachment.", +"pattern": "^([0-9]+)_([0-9]+)$" +}, +"MediaMetrics": { +"type": "object", +"properties": { +"cta_url_clicks": { +"type": "integer", +"title": "CTA URL Clicks", +"description": "Tracks the number of clicks on a call-to-action URL" +}, +"cta_watch_clicks": { +"type": "integer", +"title": "CTA Watch Clicks", +"description": "Tracks the number of clicks to watch a video or media content" +}, +"play_from_tap": { +"type": "integer", +"title": "Play From Tap", +"description": "Tracks the number of times a video or media is played from a user tap" +}, +"playback25": { +"type": "integer", +"title": "Playback 25%", +"description": "Tracks the number of times a video reaches 25% of its duration" +}, +"playback50": { +"type": "integer", +"title": "Playback 50%", +"description": "Tracks the number of times a video reaches 50% of its duration" +}, +"playback75": { +"type": "integer", +"title": "Playback 75%", +"description": "Tracks the number of times a video reaches 75% of its duration" +}, +"playback_complete": { +"type": "integer", +"title": "Playback Complete", +"description": "Tracks the number of times a video is played to completion" +}, +"playback_start": { +"type": "integer", +"title": "Playback Start", +"description": "Tracks the number of times a video playback is initiated" +}, +"video_views": { +"type": "integer", +"title": "Video Views", +"description": "Tracks the number of times a video is viewed" +}, +"watch_time_ms": { +"type": "integer", +"title": "Watch Time (ms)", +"description": "Tracks the total time spent watching a video, measured in milliseconds" +} +} +}, +"MediaPayloadBinary": { +"type": "string", +"description": "The file to upload.", +"format": "binary" +}, +"MediaPayloadByte": { +"type": "string", +"description": "The file to upload.", +"format": "byte" +}, +"MediaSegments": { +"oneOf": [ +{ +"type": "integer", +"description": "An integer value representing the media upload segment.", +"minimum": 0, +"maximum": 999, +"format": "int32" +}, +{ +"type": "string", +"description": "An integer value representing the media upload segment.", +"pattern": "^[0-9]{1,3}$", +"format": "integer" +} +] +}, +"MediaTimestampedMetrics": { +"type": "object", +"properties": { +"metrics": { +"$ref": "#/components/schemas/MediaMetrics" +}, +"timestamp": { +"type": "string", +"title": "Timestamp", +"description": "ISO8601 Time", +"example": "2025-03-17T06:30:00Z" +} +} +}, +"MediaUploadAppendRequest": { +"anyOf": [ +{ +"type": "object", +"required": [ +"media", +"segment_index" +], +"properties": { +"media": { +"$ref": "#/components/schemas/MediaPayloadBinary" +}, +"segment_index": { +"$ref": "#/components/schemas/MediaSegments" +} +} +}, +{ +"type": "object", +"required": [ +"media", +"segment_index" +], +"properties": { +"media": { +"$ref": "#/components/schemas/MediaPayloadByte" +}, +"segment_index": { +"$ref": "#/components/schemas/MediaSegments" +} +} +} +] +}, +"MediaUploadAppendResponse": { +"type": "object", +"description": "A response from getting a media upload request status.", +"required": [ +"meta" +], +"properties": { +"data": { +"type": "object", +"properties": { +"expires_at": { +"type": "integer", +"description": "Unix epoch time in seconds after when the upload session expires.", +"format": "int64" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"MediaUploadConfigRequest": { +"type": "object", +"properties": { +"additional_owners": { +"type": "array", +"items": { +"$ref": "#/components/schemas/UserId" +} +}, +"media_category": { +"$ref": "#/components/schemas/MediaCategory" +}, +"media_type": { +"type": "string", +"description": "The type of media.", +"enum": [ +"video/mp4", +"video/webm", +"video/mp2t", +"video/quicktime", +"text/srt", +"text/vtt", +"image/jpeg", +"image/gif", +"image/bmp", +"image/png", +"image/webp", +"image/pjpeg", +"image/tiff", +"model/gltf-binary", +"model/vnd.usdz+zip" +], +"example": "video/mp4" +}, +"shared": { +"type": "boolean", +"description": "Whether this media is shared or not." +}, +"total_bytes": { +"type": "integer", +"description": "The total size of the media upload in bytes.", +"minimum": 0, +"maximum": 17179869184 +} +}, +"additionalProperties": false +}, +"MediaUploadRequestOneShot": { +"type": "object", +"required": [ +"media", +"media_category" +], +"properties": { +"additional_owners": { +"type": "array", +"items": { +"$ref": "#/components/schemas/UserId" +} +}, +"media": { +"anyOf": [ +{ +"$ref": "#/components/schemas/MediaPayloadBinary" +}, +{ +"$ref": "#/components/schemas/MediaPayloadByte" +} +] +}, +"media_category": { +"$ref": "#/components/schemas/MediaCategoryOneShot" +}, +"media_type": { +"type": "string", +"description": "The type of image or subtitle.", +"enum": [ +"text/srt", +"text/vtt", +"image/jpeg", +"image/bmp", +"image/png", +"image/webp", +"image/pjpeg", +"image/tiff" +], +"example": "image/png" +}, +"shared": { +"type": "boolean", +"description": "Whether this media is shared or not.", +"default": false +} +}, +"additionalProperties": false +}, +"MediaUploadResponse": { +"type": "object", +"description": "A response from getting a media upload request status.", +"required": [ +"meta" +], +"properties": { +"data": { +"type": "object", +"required": [ +"id", +"media_key" +], +"properties": { +"expires_after_secs": { +"type": "integer", +"description": "Number of seconds after which upload session expires.", +"format": "int32" +}, +"id": { +"$ref": "#/components/schemas/MediaId" +}, +"media_key": { +"$ref": "#/components/schemas/MediaKey" +}, +"processing_info": { +"$ref": "#/components/schemas/ProcessingInfo" +}, +"size": { +"type": "integer", +"description": "Size of the upload", +"format": "int32" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"MediaWidth": { +"type": "integer", +"description": "The width of the media in pixels.", +"minimum": 0 +}, +"MentionEntity": { +"allOf": [ +{ +"$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" +}, +{ +"$ref": "#/components/schemas/MentionFields" +} +] +}, +"MentionFields": { +"type": "object", +"description": "Represent the portion of text recognized as a User mention, and its start and end position within the text.", +"required": [ +"username" +], +"properties": { +"id": { +"$ref": "#/components/schemas/UserId" +}, +"username": { +"$ref": "#/components/schemas/UserName" +} +} +}, +"MetadataCreateRequest": { +"type": "object", +"required": [ +"id" +], +"properties": { +"id": { +"$ref": "#/components/schemas/MediaId" +}, +"metadata": { +"type": "object", +"properties": { +"allow_download_status": { +"$ref": "#/components/schemas/AllowDownloadStatus" +}, +"alt_text": { +"$ref": "#/components/schemas/AltText" +}, +"audience_policy": { +"$ref": "#/components/schemas/AudiencePolicy" +}, +"content_expiration": { +"$ref": "#/components/schemas/ContentExpiration" +}, +"domain_restrictions": { +"$ref": "#/components/schemas/DomainRestrictions" +}, +"found_media_origin": { +"$ref": "#/components/schemas/FoundMediaOrigin" +}, +"geo_restrictions": { +"$ref": "#/components/schemas/GeoRestrictions" +}, +"management_info": { +"$ref": "#/components/schemas/ManagementInfo" +}, +"preview_image": { +"$ref": "#/components/schemas/PreviewImage" +}, +"sensitive_media_warning": { +"$ref": "#/components/schemas/SensitiveMediaWarning" +}, +"shared_info": { +"$ref": "#/components/schemas/SharedInfo" +}, +"sticker_info": { +"$ref": "#/components/schemas/StickerInfo" +}, +"upload_source": { +"$ref": "#/components/schemas/UploadSource" +} +} +} +} +}, +"MetadataCreateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"associated_metadata": { +"type": "object", +"properties": { +"allow_download_status": { +"$ref": "#/components/schemas/AllowDownloadStatus" +}, +"alt_text": { +"$ref": "#/components/schemas/AltText" +}, +"audience_policy": { +"$ref": "#/components/schemas/AudiencePolicy" +}, +"content_expiration": { +"$ref": "#/components/schemas/ContentExpiration" +}, +"domain_restrictions": { +"$ref": "#/components/schemas/DomainRestrictions" +}, +"found_media_origin": { +"$ref": "#/components/schemas/FoundMediaOrigin" +}, +"geo_restrictions": { +"$ref": "#/components/schemas/GeoRestrictions" +}, +"management_info": { +"$ref": "#/components/schemas/ManagementInfo" +}, +"preview_image": { +"$ref": "#/components/schemas/PreviewImage" +}, +"sensitive_media_warning": { +"$ref": "#/components/schemas/SensitiveMediaWarning" +}, +"shared_info": { +"$ref": "#/components/schemas/SharedInfo" +}, +"sticker_info": { +"$ref": "#/components/schemas/StickerInfo" +}, +"upload_source": { +"$ref": "#/components/schemas/UploadSource" +} +} +}, +"id": { +"$ref": "#/components/schemas/MediaId" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Metrics": { +"type": "object", +"properties": { +"app_install_attempts": { +"type": "integer", +"title": "App Install Attempts", +"description": "Tracks number of App Install Attempts" +}, +"app_opens": { +"type": "integer", +"title": "App Opens", +"description": "Tracks number of App opens" +}, +"detail_expands": { +"type": "integer", +"title": "Detail Expands", +"description": "Tracks number of Detail expands" +}, +"email_tweet": { +"type": "integer", +"title": "Email Tweet", +"description": "Tracks number of Email Tweet actions" +}, +"engagements": { +"type": "integer", +"title": "Engagements", +"description": "Tracks total Engagements" +}, +"follows": { +"type": "integer", +"title": "Follows", +"description": "Tracks number of Follows" +}, +"hashtag_clicks": { +"type": "integer", +"title": "Hashtag Clicks", +"description": "Tracks number of Hashtag clicks" +}, +"impressions": { +"type": "integer", +"title": "Impressions", +"description": "Tracks number of Impressions" +}, +"likes": { +"type": "integer", +"title": "Likes", +"description": "Tracks number of Likes" +}, +"link_clicks": { +"type": "integer", +"title": "Link Clicks", +"description": "Tracks number of Link clicks" +}, +"media_engagements": { +"type": "integer", +"title": "Media Engagements", +"description": "Tracks number of Media engagements" +}, +"media_views": { +"type": "integer", +"title": "Media Views", +"description": "Tracks number of Media views" +}, +"permalink_clicks": { +"type": "integer", +"title": "Permalink Clicks", +"description": "Tracks number of Permalink clicks" +}, +"profile_visits": { +"type": "integer", +"title": "Profile Visits", +"description": "Tracks number of Profile visits" +}, +"quote_tweets": { +"type": "integer", +"title": "Quote Tweets", +"description": "Tracks number of Quote Tweets" +}, +"replies": { +"type": "integer", +"title": "Replies", +"description": "Tracks number of Replies" +}, +"retweets": { +"type": "integer", +"title": "Retweets", +"description": "Tracks number of Retweets" +}, +"url_clicks": { +"type": "integer", +"title": "URL Clicks", +"description": "Tracks number of URL clicks" +}, +"user_profile_clicks": { +"type": "integer", +"title": "User Profile Clicks", +"description": "Tracks number of User Profile clicks" +} +} +}, +"MisleadingTags": { +"type": "string", +"description": "Community Note misleading tags type.", +"enum": [ +"disputed_claim_as_fact", +"factual_error", +"manipulated_media", +"misinterpreted_satire", +"missing_important_context", +"other", +"outdated_information" +] +}, +"MuteUserMutationResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"muting": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"MuteUserRequest": { +"type": "object", +"required": [ +"target_user_id" +], +"properties": { +"target_user_id": { +"$ref": "#/components/schemas/UserId" +} +} +}, +"NewestId": { +"type": "string", +"description": "The newest id in this response." +}, +"NextToken": { +"type": "string", +"description": "The next token.", +"minLength": 1 +}, +"NonCompliantRulesProblem": { +"description": "A problem that indicates the user's rule set is not compliant.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +} +] +}, +"Note": { +"type": "object", +"description": "A X Community Note is a note on a Post.", +"required": [ +"id", +"post_id", +"note_info" +], +"properties": { +"id": { +"$ref": "#/components/schemas/NoteId" +}, +"info": { +"$ref": "#/components/schemas/NoteInfo" +}, +"post_id": { +"$ref": "#/components/schemas/TweetId" +}, +"status": { +"$ref": "#/components/schemas/NoteRatingStatus" +}, +"test_result": { +"$ref": "#/components/schemas/NoteTestResult" +} +} +}, +"NoteClassification": { +"type": "string", +"description": "Community Note classification type.", +"enum": [ +"misinformed_or_potentially_misleading", +"not_misleading" +] +}, +"NoteId": { +"type": "string", +"description": "The unique identifier of this Community Note.", +"pattern": "^[0-9]{1,19}$", +"example": "1146654567674912769" +}, +"NoteInfo": { +"type": "object", +"description": "A X Community Note is a note on a Post.", +"required": [ +"text", +"classification", +"misleading_tags", +"trustworthy_sources" +], +"properties": { +"classification": { +"$ref": "#/components/schemas/NoteClassification" +}, +"misleading_tags": { +"type": "array", +"items": { +"$ref": "#/components/schemas/MisleadingTags" +} +}, +"text": { +"type": "string", +"description": "The text summary in the Community Note.", +"pattern": "^(?=.*https?://\\S+).+$" +}, +"trustworthy_sources": { +"type": "boolean", +"description": "Whether the note provided trustworthy links." +} +}, +"additionalProperties": false +}, +"NoteRatingStatus": { +"type": "string", +"description": "Community Note rating status. Only returned when test result is false", +"enum": [ +"currently_rated_helpful", +"currently_rated_not_helpful", +"firm_reject", +"insufficient_consensus", +"minimum_ratings_not_met", +"needs_more_ratings", +"needs_your_help" +] +}, +"NoteTestResult": { +"type": "object", +"description": "The test result of a community note.", +"properties": { +"evaluator_score": { +"type": "number", +"description": "The score given to a written test note.", +"format": "double" +}, +"evaluator_type": { +"type": "string", +"description": "The type of evaluator response." +} +} +}, +"NoteTweetText": { +"type": "string", +"description": "The note content of the Tweet.", +"example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" +}, +"Oauth1PermissionsProblem": { +"description": "A problem that indicates your client application does not have the required OAuth1 permissions for the requested endpoint.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +} +] +}, +"OldestId": { +"type": "string", +"description": "The oldest id in this response." +}, +"OperationalDisconnectProblem": { +"description": "You have been disconnected for operational reasons.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +}, +{ +"type": "object", +"properties": { +"disconnect_type": { +"type": "string", +"enum": [ +"OperationalDisconnect", +"UpstreamOperationalDisconnect", +"ForceDisconnect", +"UpstreamUncleanDisconnect", +"SlowReader", +"InternalError", +"ClientApplicationStateDegraded", +"InvalidRules" +] +} +} +} +] +}, +"PaginationToken32": { +"type": "string", +"description": "A base32 pagination token.", +"minLength": 16 +}, +"PaginationToken36": { +"type": "string", +"description": "A base36 pagination token.", +"minLength": 1 +}, +"PaginationTokenLong": { +"type": "string", +"description": "A 'long' pagination token.", +"minLength": 1, +"maxLength": 19 +}, +"PersonalizedTrend": { +"type": "object", +"description": "A trend.", +"properties": { +"category": { +"type": "string", +"description": "Category of this trend." +}, +"post_count": { +"type": "integer", +"description": "Number of posts pertaining to this trend." +}, +"trend_name": { +"type": "string", +"description": "Name of the trend." +}, +"trending_since": { +"type": "string", +"description": "Time since this is trending." +} +} +}, +"Photo": { +"allOf": [ +{ +"$ref": "#/components/schemas/Media" +}, +{ +"type": "object", +"properties": { +"alt_text": { +"type": "string" +}, +"url": { +"type": "string", +"format": "uri" +} +} +} +] +}, +"Place": { +"type": "object", +"required": [ +"id", +"full_name" +], +"properties": { +"contained_within": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/PlaceId" +} +}, +"country": { +"type": "string", +"description": "The full name of the county in which this place exists.", +"example": "United States" +}, +"country_code": { +"$ref": "#/components/schemas/CountryCode" +}, +"full_name": { +"type": "string", +"description": "The full name of this place.", +"example": "Lakewood, CO" +}, +"geo": { +"$ref": "#/components/schemas/Geo" +}, +"id": { +"$ref": "#/components/schemas/PlaceId" +}, +"name": { +"type": "string", +"description": "The human readable name of this place.", +"example": "Lakewood" +}, +"place_type": { +"$ref": "#/components/schemas/PlaceType" +} +} +}, +"PlaceId": { +"type": "string", +"description": "The identifier for this place.", +"example": "f7eb2fa2fea288b1" +}, +"PlaceType": { +"type": "string", +"enum": [ +"poi", +"neighborhood", +"city", +"admin", +"country", +"unknown" +], +"example": "city" +}, +"PlaidAccount": { +"type": "object", +"description": "Descriptor for a Plaid account.", +"required": [ +"accountId", +"accountCategory", +"accountNumberDisplay", +"accountType", +"currency", +"productName", +"status" +], +"properties": { +"accountCategory": { +"type": "string", +"description": "The category of the account (e.g., personal, business)." +}, +"accountId": { +"type": "string", +"description": "The Plaid account ID." +}, +"accountNumberDisplay": { +"type": "string", +"description": "The last 2-4 digits of the account number." +}, +"accountType": { +"type": "string", +"description": "The type of the account (e.g., checking, savings)." +}, +"availableBalance": { +"type": "number", +"description": "The available balance of the account." +}, +"currency": { +"$ref": "#/components/schemas/PlaidCurrency" +}, +"currentBalance": { +"type": "number", +"description": "The current balance of the account." +}, +"nickname": { +"type": "string", +"description": "The nickname of the account." +}, +"productName": { +"type": "string", +"description": "The name of the product associated with the account." +}, +"status": { +"type": "string", +"description": "The status of the account." +} +} +}, +"PlaidAccountContact": { +"type": "object", +"description": "Contact information associated with a Plaid account.", +"required": [ +"name", +"addresses", +"emails", +"telephones" +], +"properties": { +"addresses": { +"type": "array", +"description": "List of addresses associated with the account holder.", +"items": { +"$ref": "#/components/schemas/PlaidAddress" +} +}, +"emails": { +"type": "array", +"description": "List of email addresses associated with the account holder.", +"items": { +"type": "string" +} +}, +"name": { +"$ref": "#/components/schemas/PlaidName" +}, +"relationship": { +"type": "string", +"description": "Relationship of the contact to the account." +}, +"telephones": { +"type": "array", +"description": "List of telephone numbers associated with the account holder.", +"items": { +"$ref": "#/components/schemas/PlaidTelephone" +} +} +} +}, +"PlaidAccountPaymentNetwork": { +"type": "object", +"description": "Payment network details associated with the account.", +"required": [ +"identifier", +"type", +"transferIn", +"transferOut", +"bankId" +], +"properties": { +"bankId": { +"type": "string", +"description": "The bank ID associated with the account." +}, +"identifier": { +"type": "string", +"description": "The payment network identifier." +}, +"transferIn": { +"type": "boolean", +"description": "Indicates if transfers into the account are supported." +}, +"transferOut": { +"type": "boolean", +"description": "Indicates if transfers out of the account are supported." +}, +"type": { +"type": "string", +"description": "The type of payment network (e.g., ACH, SEPA)." +} +} +}, +"PlaidAccountTransaction": { +"type": "object", +"description": "Descriptor for a Plaid account.", +"required": [ +"accountCategory", +"amount", +"debitCreditMemo", +"description", +"status", +"transactionId", +"transactionTimestamp" +], +"properties": { +"accountCategory": { +"type": "string", +"description": "The category of the account (e.g., personal, business)." +}, +"amount": { +"type": "number", +"description": "The amount transacted." +}, +"debitCreditMemo": { +"type": "string", +"description": "Memo for transaction (e.g. CREDIT)" +}, +"description": { +"type": "string", +"description": "The transaction description" +}, +"postedTimestamp": { +"type": "string", +"description": "The timestamp when the transaction was posted." +}, +"status": { +"type": "string", +"description": "The status of the transaction." +}, +"transactionId": { +"type": "string", +"description": "The identifier for the transaction." +}, +"transactionTimestamp": { +"type": "string", +"description": "The timestamp when the transaction occurred." +} +} +}, +"PlaidAddress": { +"type": "object", +"description": "Address information for the account holder.", +"required": [ +"city", +"country", +"line1" +], +"properties": { +"city": { +"type": "string", +"description": "The city of the address." +}, +"country": { +"type": "string", +"description": "The country of the address (ISO 3166-1 alpha-2 code)." +}, +"line1": { +"type": "string", +"description": "The first line of the address." +}, +"line2": { +"type": "string", +"description": "The second line of the address." +}, +"postalCode": { +"type": "string", +"description": "The postal code of the address." +}, +"region": { +"type": "string", +"description": "The region or state of the address." +} +} +}, +"PlaidCurrency": { +"type": "object", +"description": "Currency information.", +"required": [ +"currencyCode" +], +"properties": { +"currencyCode": { +"type": "string", +"description": "The ISO 4217 currency code." +} +} +}, +"PlaidCustomer": { +"type": "object", +"description": "A user id for the plaid customer", +"properties": { +"customerId": { +"$ref": "#/components/schemas/UserId" +} +} +}, +"PlaidName": { +"type": "object", +"description": "Name information for the account holder.", +"required": [ +"first", +"last" +], +"properties": { +"first": { +"type": "string", +"description": "The first name of the account holder." +}, +"last": { +"type": "string", +"description": "The last name of the account holder." +} +} +}, +"PlaidTelephone": { +"type": "object", +"description": "Telephone information for the account holder.", +"required": [ +"country", +"number", +"type" +], +"properties": { +"country": { +"type": "string", +"description": "The country code for the phone number (e.g., '+1')." +}, +"number": { +"type": "string", +"description": "The phone number." +}, +"type": { +"type": "string", +"description": "The type of phone number (e.g., 'mobile')." +} +} +}, +"Point": { +"type": "object", +"description": "A [GeoJson Point](https://tools.ietf.org/html/rfc7946#section-3.1.2) geometry object.", +"required": [ +"type", +"coordinates" +], +"properties": { +"coordinates": { +"$ref": "#/components/schemas/Position" +}, +"type": { +"type": "string", +"enum": [ +"Point" +], +"example": "Point" +} +} +}, +"Poll": { +"type": "object", +"description": "Represent a Poll attached to a Tweet.", +"required": [ +"id", +"options" +], +"properties": { +"duration_minutes": { +"type": "integer", +"minimum": 5, +"maximum": 10080, +"format": "int32" +}, +"end_datetime": { +"type": "string", +"format": "date-time" +}, +"id": { +"$ref": "#/components/schemas/PollId" +}, +"options": { +"type": "array", +"minItems": 2, +"maxItems": 4, +"items": { +"$ref": "#/components/schemas/PollOption" +} +}, +"voting_status": { +"type": "string", +"enum": [ +"open", +"closed" +] +} +} +}, +"PollId": { +"type": "string", +"description": "Unique identifier of this poll.", +"pattern": "^[0-9]{1,19}$", +"example": "1365059861688410112" +}, +"PollOption": { +"type": "object", +"description": "Describes a choice in a Poll object.", +"required": [ +"position", +"label", +"votes" +], +"properties": { +"label": { +"$ref": "#/components/schemas/PollOptionLabel" +}, +"position": { +"type": "integer", +"description": "Position of this choice in the poll." +}, +"votes": { +"type": "integer", +"description": "Number of users who voted for this choice." +} +} +}, +"PollOptionLabel": { +"type": "string", +"description": "The text of a poll choice.", +"minLength": 1, +"maxLength": 25 +}, +"Position": { +"type": "array", +"description": "A [GeoJson Position](https://tools.ietf.org/html/rfc7946#section-3.1.1) in the format `[longitude,latitude]`.", +"minItems": 2, +"maxItems": 2, +"items": { +"type": "number" +}, +"example": [ +-105.18816086351444, +40.247749999999996 +] +}, +"PreviewImage": { +"type": "object", +"properties": { +"media_key": { +"type": "object", +"properties": { +"media": { +"$ref": "#/components/schemas/MediaId" +}, +"media_category": { +"type": "string", +"description": "The media category of media", +"enum": [ +"TweetImage" +], +"default": "TweetImage", +"example": "TweetImage" +} +} +} +} +}, +"PreviousToken": { +"type": "string", +"description": "The previous token.", +"minLength": 1 +}, +"Problem": { +"type": "object", +"description": "An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).", +"required": [ +"type", +"title" +], +"properties": { +"detail": { +"type": "string" +}, +"status": { +"type": "integer" +}, +"title": { +"type": "string" +}, +"type": { +"type": "string" +} +}, +"discriminator": { +"propertyName": "type", +"mapping": { +"about:blank": "#/components/schemas/GenericProblem", +"https://api.twitter.com/2/problems/client-disconnected": "#/components/schemas/ClientDisconnectedProblem", +"https://api.twitter.com/2/problems/client-forbidden": "#/components/schemas/ClientForbiddenProblem", +"https://api.twitter.com/2/problems/conflict": "#/components/schemas/ConflictProblem", +"https://api.twitter.com/2/problems/disallowed-resource": "#/components/schemas/DisallowedResourceProblem", +"https://api.twitter.com/2/problems/duplicate-rules": "#/components/schemas/DuplicateRuleProblem", +"https://api.twitter.com/2/problems/invalid-request": "#/components/schemas/InvalidRequestProblem", +"https://api.twitter.com/2/problems/invalid-rules": "#/components/schemas/InvalidRuleProblem", +"https://api.twitter.com/2/problems/noncompliant-rules": "#/components/schemas/NonCompliantRulesProblem", +"https://api.twitter.com/2/problems/not-authorized-for-field": "#/components/schemas/FieldUnauthorizedProblem", +"https://api.twitter.com/2/problems/not-authorized-for-resource": "#/components/schemas/ResourceUnauthorizedProblem", +"https://api.twitter.com/2/problems/operational-disconnect": "#/components/schemas/OperationalDisconnectProblem", +"https://api.twitter.com/2/problems/resource-not-found": "#/components/schemas/ResourceNotFoundProblem", +"https://api.twitter.com/2/problems/resource-unavailable": "#/components/schemas/ResourceUnavailableProblem", +"https://api.twitter.com/2/problems/rule-cap": "#/components/schemas/RulesCapProblem", +"https://api.twitter.com/2/problems/streaming-connection": "#/components/schemas/ConnectionExceptionProblem", +"https://api.twitter.com/2/problems/unsupported-authentication": "#/components/schemas/UnsupportedAuthenticationProblem", +"https://api.twitter.com/2/problems/usage-capped": "#/components/schemas/UsageCapExceededProblem" +} +} +}, +"ProcessingInfo": { +"type": "object", +"required": [ +"type" +], +"properties": { +"check_after_secs": { +"type": "integer", +"description": "Number of seconds to check again for status", +"format": "int32" +}, +"progress_percent": { +"type": "integer", +"description": "Percent of upload progress", +"format": "int32" +}, +"state": { +"type": "string", +"description": "State of upload", +"enum": [ +"succeeded", +"in_progress", +"pending", +"failed" +] +} +} +}, +"ReplayJobCreateResponse": { +"type": "object", +"description": "Confirmation that the replay job request was accepted.", +"required": [ +"job_id", +"created_at" +], +"properties": { +"created_at": { +"type": "string", +"description": "The UTC timestamp indicating when the replay job was created.", +"format": "date-time", +"example": "2025-04-24T20:57:15.242Z" +}, +"job_id": { +"type": "string", +"description": "The unique identifier for the initiated replay job.", +"example": "1915510368169844736" +} +} +}, +"ReplySettings": { +"type": "string", +"description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, and following.", +"pattern": "^[A-Za-z]{1,12}$", +"enum": [ +"everyone", +"mentionedUsers", +"following", +"other" +] +}, +"ReplySettingsWithVerifiedUsers": { +"type": "string", +"description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, subscribers, verified and following.", +"pattern": "^[A-Za-z]{1,12}$", +"enum": [ +"everyone", +"mentionedUsers", +"following", +"other", +"subscribers", +"verified" +] +}, +"ResourceNotFoundProblem": { +"description": "A problem that indicates that a given Tweet, User, etc. does not exist.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +}, +{ +"type": "object", +"required": [ +"parameter", +"value", +"resource_id", +"resource_type" +], +"properties": { +"parameter": { +"type": "string", +"minLength": 1 +}, +"resource_id": { +"type": "string" +}, +"resource_type": { +"type": "string", +"enum": [ +"user", +"tweet", +"media", +"list", +"space" +] +}, +"value": { +"type": "string", +"description": "Value will match the schema of the field." +} +} +} +] +}, +"ResourceUnauthorizedProblem": { +"description": "A problem that indicates you are not allowed to see a particular Tweet, User, etc.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +}, +{ +"type": "object", +"required": [ +"value", +"resource_id", +"resource_type", +"section", +"parameter" +], +"properties": { +"parameter": { +"type": "string" +}, +"resource_id": { +"type": "string" +}, +"resource_type": { +"type": "string", +"enum": [ +"user", +"tweet", +"media", +"list", +"space" +] +}, +"section": { +"type": "string", +"enum": [ +"data", +"includes" +] +}, +"value": { +"type": "string" +} +} +} +] +}, +"ResourceUnavailableProblem": { +"description": "A problem that indicates a particular Tweet, User, etc. is not available to you.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +}, +{ +"type": "object", +"required": [ +"parameter", +"resource_id", +"resource_type" +], +"properties": { +"parameter": { +"type": "string", +"minLength": 1 +}, +"resource_id": { +"type": "string" +}, +"resource_type": { +"type": "string", +"enum": [ +"user", +"tweet", +"media", +"list", +"space" +] +} +} +} +] +}, +"ResultCount": { +"type": "integer", +"description": "The number of results returned in this response.", +"format": "int32" +}, +"Rule": { +"type": "object", +"description": "A user-provided stream filtering rule.", +"required": [ +"value" +], +"properties": { +"id": { +"$ref": "#/components/schemas/RuleId" +}, +"tag": { +"$ref": "#/components/schemas/RuleTag" +}, +"value": { +"$ref": "#/components/schemas/RuleValue" +} +} +}, +"RuleId": { +"type": "string", +"description": "Unique identifier of this rule.", +"pattern": "^[0-9]{1,19}$", +"example": "120897978112909812" +}, +"RuleNoId": { +"type": "object", +"description": "A user-provided stream filtering rule.", +"required": [ +"value" +], +"properties": { +"tag": { +"$ref": "#/components/schemas/RuleTag" +}, +"value": { +"$ref": "#/components/schemas/RuleValue" +} +} +}, +"RuleTag": { +"type": "string", +"description": "A tag meant for the labeling of user provided rules.", +"example": "Non-retweeted coffee Posts" +}, +"RuleValue": { +"type": "string", +"description": "The filterlang value of the rule.", +"example": "coffee -is:retweet" +}, +"RulesCapProblem": { +"description": "You have exceeded the maximum number of rules.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +} +] +}, +"RulesCount": { +"type": "object", +"description": "A count of user-provided stream filtering rules at the application and project levels.", +"properties": { +"all_project_client_apps": { +"$ref": "#/components/schemas/AllProjectClientApps" +}, +"cap_per_client_app": { +"type": "integer", +"description": "Cap of number of rules allowed per client application", +"format": "int32" +}, +"cap_per_project": { +"type": "integer", +"description": "Cap of number of rules allowed per project", +"format": "int32" +}, +"client_app_rules_count": { +"$ref": "#/components/schemas/AppRulesCount" +}, +"project_rules_count": { +"type": "integer", +"description": "Number of rules for project", +"format": "int32" +} +} +}, +"RulesLookupResponse": { +"type": "object", +"required": [ +"meta" +], +"properties": { +"data": { +"type": "array", +"items": { +"$ref": "#/components/schemas/Rule" +} +}, +"meta": { +"$ref": "#/components/schemas/RulesResponseMetadata" +} +} +}, +"RulesRequestSummary": { +"oneOf": [ +{ +"type": "object", +"description": "A summary of the results of the addition of user-specified stream filtering rules.", +"required": [ +"created", +"not_created", +"valid", +"invalid" +], +"properties": { +"created": { +"type": "integer", +"description": "Number of user-specified stream filtering rules that were created.", +"format": "int32", +"example": 1 +}, +"invalid": { +"type": "integer", +"description": "Number of invalid user-specified stream filtering rules.", +"format": "int32", +"example": 1 +}, +"not_created": { +"type": "integer", +"description": "Number of user-specified stream filtering rules that were not created.", +"format": "int32", +"example": 1 +}, +"valid": { +"type": "integer", +"description": "Number of valid user-specified stream filtering rules.", +"format": "int32", +"example": 1 +} +} +}, +{ +"type": "object", +"required": [ +"deleted", +"not_deleted" +], +"properties": { +"deleted": { +"type": "integer", +"description": "Number of user-specified stream filtering rules that were deleted.", +"format": "int32" +}, +"not_deleted": { +"type": "integer", +"description": "Number of user-specified stream filtering rules that were not deleted.", +"format": "int32" +} +} +} +] +}, +"RulesResponseMetadata": { +"type": "object", +"required": [ +"sent" +], +"properties": { +"next_token": { +"$ref": "#/components/schemas/NextToken" +}, +"result_count": { +"type": "integer", +"description": "Number of Rules in result set.", +"format": "int32" +}, +"sent": { +"type": "string" +}, +"summary": { +"$ref": "#/components/schemas/RulesRequestSummary" +} +} +}, +"SearchCount": { +"type": "object", +"description": "Represent a Search Count Result.", +"required": [ +"end", +"start", +"tweet_count" +], +"properties": { +"end": { +"$ref": "#/components/schemas/End" +}, +"start": { +"$ref": "#/components/schemas/Start" +}, +"tweet_count": { +"$ref": "#/components/schemas/TweetCount" +} +} +}, +"SensitiveMediaWarning": { +"type": "object", +"properties": { +"adult_content": { +"type": "boolean", +"description": "Indicates if the content contains adult material", +"example": true +}, +"graphic_violence": { +"type": "boolean", +"description": "Indicates if the content depicts graphic violence", +"example": true +}, +"other": { +"type": "boolean", +"description": "Indicates if the content has other sensitive characteristics", +"example": false +} +} +}, +"SharedInfo": { +"type": "object", +"properties": { +"shared": { +"type": "boolean", +"description": "Indicates if the media is shared in direct messages", +"example": false +} +} +}, +"Space": { +"type": "object", +"description": "", +"required": [ +"id", +"state" +], +"properties": { +"created_at": { +"type": "string", +"description": "Creation time of the Space.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"creator_id": { +"$ref": "#/components/schemas/UserId" +}, +"ended_at": { +"type": "string", +"description": "End time of the Space.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"host_ids": { +"type": "array", +"description": "The user ids for the hosts of the Space.", +"items": { +"$ref": "#/components/schemas/UserId" +} +}, +"id": { +"$ref": "#/components/schemas/SpaceId" +}, +"invited_user_ids": { +"type": "array", +"description": "An array of user ids for people who were invited to a Space.", +"items": { +"$ref": "#/components/schemas/UserId" +} +}, +"is_ticketed": { +"type": "boolean", +"description": "Denotes if the Space is a ticketed Space.", +"example": "false" +}, +"lang": { +"type": "string", +"description": "The language of the Space.", +"example": "en" +}, +"participant_count": { +"type": "integer", +"description": "The number of participants in a Space.", +"format": "int32", +"example": 10 +}, +"scheduled_start": { +"type": "string", +"description": "A date time stamp for when a Space is scheduled to begin.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"speaker_ids": { +"type": "array", +"description": "An array of user ids for people who were speakers in a Space.", +"items": { +"$ref": "#/components/schemas/UserId" +} +}, +"started_at": { +"type": "string", +"description": "When the Space was started as a date string.", +"format": "date-time", +"example": "2021-7-14T04:35:55Z" +}, +"state": { +"type": "string", +"description": "The current state of the Space.", +"enum": [ +"live", +"scheduled", +"ended" +], +"example": "live" +}, +"subscriber_count": { +"type": "integer", +"description": "The number of people who have either purchased a ticket or set a reminder for this Space.", +"format": "int32", +"example": 10 +}, +"title": { +"type": "string", +"description": "The title of the Space.", +"example": "Spaces are Awesome" +}, +"topics": { +"type": "array", +"description": "The topics of a Space, as selected by its creator.", +"items": { +"type": "object", +"description": "The X Topic object.", +"required": [ +"id", +"name" +], +"properties": { +"description": { +"type": "string", +"description": "The description of the given topic." +}, +"id": { +"type": "string", +"description": "An ID suitable for use in the REST API." +}, +"name": { +"type": "string", +"description": "The name of the given topic." +} +}, +"example": { +"description": "All about technology", +"id": "848920371311001600", +"name": "Technology" +} +} +}, +"updated_at": { +"type": "string", +"description": "When the Space was last updated.", +"format": "date-time", +"example": "2021-7-14T04:35:55Z" +} +} +}, +"SpaceId": { +"type": "string", +"description": "The unique identifier of this Space.", +"pattern": "^[a-zA-Z0-9]{1,13}$", +"example": "1SLjjRYNejbKM" +}, +"Start": { +"type": "string", +"description": "The start time of the bucket.", +"format": "date-time" +}, +"Sticker": { +"type": "object", +"properties": { +"aspect_ratio": { +"type": "number", +"description": "width-to-height ratio of the media", +"format": "double", +"example": 1.78 +}, +"group_annotation_id": { +"type": "number", +"description": "A unique identifier for the group of annotations associated with the media", +"format": "long", +"example": 987654321098765 +}, +"id": { +"type": "string", +"description": "Unique identifier for sticker", +"example": "12345" +}, +"sticker_set_annotation_id": { +"type": "number", +"description": "A unique identifier for the sticker set associated with the media", +"format": "long", +"example": 123456789012345 +}, +"transform_a": { +"type": "number", +"description": "Scale or rotate the media on the x-axis", +"format": "double", +"example": 1 +}, +"transform_b": { +"type": "number", +"description": "Skew the media on the x-axis", +"format": "double", +"example": 0 +}, +"transform_c": { +"type": "number", +"description": "Skew the media on the y-axis", +"format": "double", +"example": 0 +}, +"transform_d": { +"type": "number", +"description": "Scale or rotate the media on the y-axis", +"format": "double", +"example": 1 +}, +"transform_tx": { +"type": "number", +"description": "Scale or rotate the media on the x-axis", +"format": "double", +"example": 10.5 +}, +"transform_ty": { +"type": "number", +"description": "The vertical translation (shift) value for the media", +"format": "double", +"example": -5.2 +} +} +}, +"StickerInfo": { +"type": "object", +"properties": { +"stickers": { +"type": "array", +"description": "Stickers list must not be empty and should not exceed 25", +"items": { +"$ref": "#/components/schemas/Sticker" +} +} +} +}, +"StreamingLikeResponseV2": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/LikeWithTweetAuthor" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"StreamingTweetResponse": { +"type": "object", +"properties": { +"data": { +"$ref": "#/components/schemas/Tweet" +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +}, +"includes": { +"$ref": "#/components/schemas/Expansions" +} +} +}, +"SubscriptionsCountGetResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"description": "The count of active subscriptions across all webhooks", +"required": [ +"account_name", +"provisioned_count", +"subscriptions_count_all", +"subscriptions_count_direct_messages" +], +"properties": { +"account_name": { +"type": "string", +"description": "The account name" +}, +"provisioned_count": { +"type": "string", +"description": "The limit for subscriptions for this app" +}, +"subscriptions_count_all": { +"type": "string", +"description": "The number of active subscriptions across all webhooks" +}, +"subscriptions_count_direct_messages": { +"type": "string", +"description": "The number of active direct message subscriptions" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"SubscriptionsCreateRequest": { +"type": "object" +}, +"SubscriptionsCreateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"subscribed": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"SubscriptionsDeleteResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"subscribed": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"SubscriptionsGetResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"subscribed": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"SubscriptionsListGetResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"description": "The list of active subscriptions for a specified webhook", +"required": [ +"application_id", +"webhook_id", +"webhook_url", +"subscriptions" +], +"properties": { +"application_id": { +"type": "string", +"description": "The application ID" +}, +"subscriptions": { +"type": "array", +"description": "List of active subscriptions for the webhook", +"items": { +"type": "object", +"properties": { +"user_id": { +"type": "string", +"description": "The ID of the user the webhook is subscribed to" +} +} +} +}, +"webhook_id": { +"type": "string", +"description": "The associated webhook ID" +}, +"webhook_url": { +"type": "string", +"description": "The url for the associated webhook" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"SubtitleLanguageCode": { +"type": "string", +"description": "The language code should be a BCP47 code (e.g. 'EN\", \"SP\")", +"pattern": "^[A-Z]{2}$", +"example": "EN" +}, +"Subtitles": { +"type": "object", +"properties": { +"display_name": { +"type": "string", +"description": "Language name in a human readable form", +"example": "English" +}, +"id": { +"$ref": "#/components/schemas/MediaId" +}, +"language_code": { +"$ref": "#/components/schemas/SubtitleLanguageCode" +} +} +}, +"SubtitlesCreateRequest": { +"type": "object", +"properties": { +"id": { +"$ref": "#/components/schemas/MediaId" +}, +"media_category": { +"$ref": "#/components/schemas/MediaCategorySubtitles" +}, +"subtitles": { +"$ref": "#/components/schemas/Subtitles" +} +} +}, +"SubtitlesCreateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"required": [ +"id", +"media_category", +"associated_subtitles" +], +"properties": { +"associated_subtitles": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Subtitles" +} +}, +"id": { +"$ref": "#/components/schemas/MediaId" +}, +"media_category": { +"$ref": "#/components/schemas/MediaCategorySubtitles" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"SubtitlesDeleteRequest": { +"type": "object", +"properties": { +"id": { +"$ref": "#/components/schemas/MediaId" +}, +"language_code": { +"$ref": "#/components/schemas/SubtitleLanguageCode" +}, +"media_category": { +"$ref": "#/components/schemas/MediaCategorySubtitles" +} +} +}, +"SubtitlesDeleteResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"required": [ +"deleted" +], +"properties": { +"deleted": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"TimestampedMetrics": { +"type": "object", +"properties": { +"metrics": { +"$ref": "#/components/schemas/Metrics" +}, +"timestamp": { +"type": "string", +"title": "Timestamp", +"description": "ISO8601 Time", +"example": "2025-03-17T06:30:00Z" +} +} +}, +"Topic": { +"type": "object", +"description": "The topic of a Space, as selected by its creator.", +"required": [ +"id", +"name" +], +"properties": { +"description": { +"type": "string", +"description": "The description of the given topic.", +"example": "All about technology" +}, +"id": { +"$ref": "#/components/schemas/TopicId" +}, +"name": { +"type": "string", +"description": "The name of the given topic.", +"example": "Technology" +} +} +}, +"TopicId": { +"type": "string", +"description": "Unique identifier of this Topic." +}, +"Trend": { +"type": "object", +"description": "A trend.", +"properties": { +"trend_name": { +"type": "string", +"description": "Name of the trend." +}, +"tweet_count": { +"type": "integer", +"description": "Number of Posts in this trend.", +"format": "int32" +} +} +}, +"Tweet": { +"type": "object", +"properties": { +"attachments": { +"type": "object", +"description": "Specifies the type of attachments (if any) present in this Tweet.", +"properties": { +"media_keys": { +"type": "array", +"description": "A list of Media Keys for each one of the media attachments (if media are attached).", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/MediaKey" +} +}, +"media_source_tweet_id": { +"type": "array", +"description": "A list of Posts the media on this Tweet was originally posted in. For example, if the media on a tweet is re-used in another Tweet, this refers to the original, source Tweet..", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/TweetId" +} +}, +"poll_ids": { +"type": "array", +"description": "A list of poll IDs (if polls are attached).", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/PollId" +} +} +} +}, +"author_id": { +"$ref": "#/components/schemas/UserId" +}, +"community_id": { +"$ref": "#/components/schemas/CommunityId" +}, +"context_annotations": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/ContextAnnotation" +} +}, +"conversation_id": { +"$ref": "#/components/schemas/TweetId" +}, +"created_at": { +"type": "string", +"description": "Creation time of the Tweet.", +"format": "date-time", +"example": "2021-01-06T18:40:40.000Z" +}, +"display_text_range": { +"$ref": "#/components/schemas/DisplayTextRange" +}, +"edit_controls": { +"type": "object", +"required": [ +"is_edit_eligible", +"editable_until", +"edits_remaining" +], +"properties": { +"editable_until": { +"type": "string", +"description": "Time when Tweet is no longer editable.", +"format": "date-time", +"example": "2021-01-06T18:40:40.000Z" +}, +"edits_remaining": { +"type": "integer", +"description": "Number of times this Tweet can be edited." +}, +"is_edit_eligible": { +"type": "boolean", +"description": "Indicates if this Tweet is eligible to be edited.", +"example": false +} +} +}, +"edit_history_tweet_ids": { +"type": "array", +"description": "A list of Tweet Ids in this Tweet chain.", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/TweetId" +} +}, +"entities": { +"$ref": "#/components/schemas/FullTextEntities" +}, +"geo": { +"type": "object", +"description": "The location tagged on the Tweet, if the user provided one.", +"properties": { +"coordinates": { +"$ref": "#/components/schemas/Point" +}, +"place_id": { +"$ref": "#/components/schemas/PlaceId" +} +} +}, +"id": { +"$ref": "#/components/schemas/TweetId" +}, +"in_reply_to_user_id": { +"$ref": "#/components/schemas/UserId" +}, +"lang": { +"type": "string", +"description": "Language of the Tweet, if detected by X. Returned as a BCP47 language tag.", +"example": "en" +}, +"non_public_metrics": { +"type": "object", +"description": "Nonpublic engagement metrics for the Tweet at the time of the request.", +"properties": { +"impression_count": { +"type": "integer", +"description": "Number of times this Tweet has been viewed.", +"format": "int32" +} +} +}, +"note_tweet": { +"type": "object", +"description": "The full-content of the Tweet, including text beyond 280 characters.", +"properties": { +"entities": { +"type": "object", +"properties": { +"cashtags": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/CashtagEntity" +} +}, +"hashtags": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/HashtagEntity" +} +}, +"mentions": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/MentionEntity" +} +}, +"urls": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/UrlEntity" +} +} +} +}, +"text": { +"$ref": "#/components/schemas/NoteTweetText" +} +} +}, +"organic_metrics": { +"type": "object", +"description": "Organic nonpublic engagement metrics for the Tweet at the time of the request.", +"required": [ +"impression_count", +"retweet_count", +"reply_count", +"like_count" +], +"properties": { +"impression_count": { +"type": "integer", +"description": "Number of times this Tweet has been viewed." +}, +"like_count": { +"type": "integer", +"description": "Number of times this Tweet has been liked." +}, +"reply_count": { +"type": "integer", +"description": "Number of times this Tweet has been replied to." +}, +"retweet_count": { +"type": "integer", +"description": "Number of times this Tweet has been Retweeted." +} +} +}, +"possibly_sensitive": { +"type": "boolean", +"description": "Indicates if this Tweet contains URLs marked as sensitive, for example content suitable for mature audiences.", +"example": false +}, +"promoted_metrics": { +"type": "object", +"description": "Promoted nonpublic engagement metrics for the Tweet at the time of the request.", +"properties": { +"impression_count": { +"type": "integer", +"description": "Number of times this Tweet has been viewed.", +"format": "int32" +}, +"like_count": { +"type": "integer", +"description": "Number of times this Tweet has been liked.", +"format": "int32" +}, +"reply_count": { +"type": "integer", +"description": "Number of times this Tweet has been replied to.", +"format": "int32" +}, +"retweet_count": { +"type": "integer", +"description": "Number of times this Tweet has been Retweeted.", +"format": "int32" +} +} +}, +"public_metrics": { +"type": "object", +"description": "Engagement metrics for the Tweet at the time of the request.", +"required": [ +"retweet_count", +"reply_count", +"like_count", +"impression_count", +"bookmark_count" +], +"properties": { +"bookmark_count": { +"type": "integer", +"description": "Number of times this Tweet has been bookmarked.", +"format": "int32" +}, +"impression_count": { +"type": "integer", +"description": "Number of times this Tweet has been viewed.", +"format": "int32" +}, +"like_count": { +"type": "integer", +"description": "Number of times this Tweet has been liked." +}, +"quote_count": { +"type": "integer", +"description": "Number of times this Tweet has been quoted." +}, +"reply_count": { +"type": "integer", +"description": "Number of times this Tweet has been replied to." +}, +"retweet_count": { +"type": "integer", +"description": "Number of times this Tweet has been Retweeted." +} +} +}, +"referenced_tweets": { +"type": "array", +"description": "A list of Posts this Tweet refers to. For example, if the parent Tweet is a Retweet, a Quoted Tweet or a Reply, it will include the related Tweet referenced to by its parent.", +"minItems": 1, +"items": { +"type": "object", +"required": [ +"type", +"id" +], +"properties": { +"id": { +"$ref": "#/components/schemas/TweetId" +}, +"type": { +"type": "string", +"enum": [ +"retweeted", +"quoted", +"replied_to" +] +} +} +} +}, +"reply_settings": { +"$ref": "#/components/schemas/ReplySettingsWithVerifiedUsers" +}, +"scopes": { +"type": "object", +"description": "The scopes for this tweet", +"properties": { +"followers": { +"type": "boolean", +"description": "Indicates if this Tweet is viewable by followers without the Tweet ID", +"example": false +} +} +}, +"source": { +"type": "string", +"description": "This is deprecated." +}, +"text": { +"$ref": "#/components/schemas/TweetText" +}, +"username": { +"$ref": "#/components/schemas/UserName" +}, +"withheld": { +"$ref": "#/components/schemas/TweetWithheld" +} +}, +"example": { +"author_id": "2244994945", +"created_at": "Wed Jan 06 18:40:40 +0000 2021", +"id": "1346889436626259968", +"text": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i", +"username": "XDevelopers" +} +}, +"TweetComplianceData": { +"description": "Tweet compliance data.", +"oneOf": [ +{ +"$ref": "#/components/schemas/TweetDeleteComplianceSchema" +}, +{ +"$ref": "#/components/schemas/TweetWithheldComplianceSchema" +}, +{ +"$ref": "#/components/schemas/TweetDropComplianceSchema" +}, +{ +"$ref": "#/components/schemas/TweetUndropComplianceSchema" +}, +{ +"$ref": "#/components/schemas/TweetEditComplianceSchema" +} +] +}, +"TweetComplianceSchema": { +"type": "object", +"required": [ +"tweet", +"event_at" +], +"properties": { +"event_at": { +"type": "string", +"description": "Event time.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"quote_tweet_id": { +"$ref": "#/components/schemas/TweetId" +}, +"tweet": { +"type": "object", +"required": [ +"id", +"author_id" +], +"properties": { +"author_id": { +"$ref": "#/components/schemas/UserId" +}, +"id": { +"$ref": "#/components/schemas/TweetId" +} +} +} +} +}, +"TweetComplianceStreamResponse": { +"description": "Tweet compliance stream events.", +"oneOf": [ +{ +"type": "object", +"description": "Compliance event.", +"required": [ +"data" +], +"properties": { +"data": { +"$ref": "#/components/schemas/TweetComplianceData" +} +} +}, +{ +"type": "object", +"required": [ +"errors" +], +"properties": { +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +] +}, +"TweetCount": { +"type": "integer", +"description": "The count for the bucket." +}, +"TweetCreateRequest": { +"type": "object", +"properties": { +"card_uri": { +"type": "string", +"description": "Card Uri Parameter. This is mutually exclusive from Quote Tweet Id, Poll, Media, and Direct Message Deep Link." +}, +"community_id": { +"$ref": "#/components/schemas/CommunityId" +}, +"direct_message_deep_link": { +"type": "string", +"description": "Link to take the conversation from the public timeline to a private Direct Message." +}, +"for_super_followers_only": { +"type": "boolean", +"description": "Exclusive Tweet for super followers.", +"default": false +}, +"geo": { +"type": "object", +"description": "Place ID being attached to the Tweet for geo location.", +"properties": { +"place_id": { +"type": "string" +} +}, +"additionalProperties": false +}, +"media": { +"type": "object", +"description": "Media information being attached to created Tweet. This is mutually exclusive from Quote Tweet Id, Poll, and Card URI.", +"required": [ +"media_ids" +], +"properties": { +"media_ids": { +"type": "array", +"description": "A list of Media Ids to be attached to a created Tweet.", +"minItems": 1, +"maxItems": 4, +"items": { +"$ref": "#/components/schemas/MediaId" +} +}, +"tagged_user_ids": { +"type": "array", +"description": "A list of User Ids to be tagged in the media for created Tweet.", +"minItems": 0, +"maxItems": 10, +"items": { +"$ref": "#/components/schemas/UserId" +} +} +}, +"additionalProperties": false +}, +"nullcast": { +"type": "boolean", +"description": "Nullcasted (promoted-only) Posts do not appear in the public timeline and are not served to followers.", +"default": false +}, +"poll": { +"type": "object", +"description": "Poll options for a Tweet with a poll. This is mutually exclusive from Media, Quote Tweet Id, and Card URI.", +"required": [ +"options", +"duration_minutes" +], +"properties": { +"duration_minutes": { +"type": "integer", +"description": "Duration of the poll in minutes.", +"minimum": 5, +"maximum": 10080, +"format": "int32" +}, +"options": { +"type": "array", +"minItems": 2, +"maxItems": 4, +"items": { +"type": "string", +"description": "The text of a poll choice.", +"minLength": 1, +"maxLength": 25 +} +}, +"reply_settings": { +"type": "string", +"description": "Settings to indicate who can reply to the Tweet.", +"enum": [ +"following", +"mentionedUsers", +"subscribers", +"verified" +] +} +}, +"additionalProperties": false +}, +"quote_tweet_id": { +"$ref": "#/components/schemas/TweetId" +}, +"reply": { +"type": "object", +"description": "Tweet information of the Tweet being replied to.", +"required": [ +"in_reply_to_tweet_id" +], +"properties": { +"exclude_reply_user_ids": { +"type": "array", +"description": "A list of User Ids to be excluded from the reply Tweet.", +"items": { +"$ref": "#/components/schemas/UserId" +} +}, +"in_reply_to_tweet_id": { +"$ref": "#/components/schemas/TweetId" +} +}, +"additionalProperties": false +}, +"reply_settings": { +"type": "string", +"description": "Settings to indicate who can reply to the Tweet.", +"enum": [ +"following", +"mentionedUsers", +"subscribers", +"verified" +] +}, +"text": { +"$ref": "#/components/schemas/TweetText" +} +}, +"additionalProperties": false +}, +"TweetCreateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"required": [ +"id", +"text" +], +"properties": { +"id": { +"$ref": "#/components/schemas/TweetId" +}, +"text": { +"$ref": "#/components/schemas/TweetText" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"TweetDeleteComplianceSchema": { +"type": "object", +"required": [ +"delete" +], +"properties": { +"delete": { +"$ref": "#/components/schemas/TweetComplianceSchema" +} +} +}, +"TweetDeleteResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"required": [ +"deleted" +], +"properties": { +"deleted": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"TweetDropComplianceSchema": { +"type": "object", +"required": [ +"drop" +], +"properties": { +"drop": { +"$ref": "#/components/schemas/TweetComplianceSchema" +} +} +}, +"TweetEditComplianceObjectSchema": { +"type": "object", +"required": [ +"tweet", +"event_at", +"initial_tweet_id", +"edit_tweet_ids" +], +"properties": { +"edit_tweet_ids": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/TweetId" +} +}, +"event_at": { +"type": "string", +"description": "Event time.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"initial_tweet_id": { +"$ref": "#/components/schemas/TweetId" +}, +"tweet": { +"type": "object", +"required": [ +"id" +], +"properties": { +"id": { +"$ref": "#/components/schemas/TweetId" +} +} +} +} +}, +"TweetEditComplianceSchema": { +"type": "object", +"required": [ +"tweet_edit" +], +"properties": { +"tweet_edit": { +"$ref": "#/components/schemas/TweetEditComplianceObjectSchema" +} +} +}, +"TweetHideRequest": { +"type": "object", +"required": [ +"hidden" +], +"properties": { +"hidden": { +"type": "boolean" +} +} +}, +"TweetHideResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"hidden": { +"type": "boolean" +} +} +} +} +}, +"TweetId": { +"type": "string", +"description": "Unique identifier of this Tweet. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", +"pattern": "^[0-9]{1,19}$", +"example": "1346889436626259968" +}, +"TweetLabelData": { +"description": "Tweet label data.", +"oneOf": [ +{ +"$ref": "#/components/schemas/TweetNoticeSchema" +}, +{ +"$ref": "#/components/schemas/TweetUnviewableSchema" +} +] +}, +"TweetLabelStreamResponse": { +"description": "Tweet label stream events.", +"oneOf": [ +{ +"type": "object", +"description": "Tweet Label event.", +"required": [ +"data" +], +"properties": { +"data": { +"$ref": "#/components/schemas/TweetLabelData" +} +} +}, +{ +"type": "object", +"required": [ +"errors" +], +"properties": { +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +] +}, +"TweetNotice": { +"type": "object", +"required": [ +"tweet", +"event_type", +"event_at", +"application" +], +"properties": { +"application": { +"type": "string", +"description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", +"example": "apply" +}, +"details": { +"type": "string", +"description": "Information shown on the Tweet label" +}, +"event_at": { +"type": "string", +"description": "Event time.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"event_type": { +"type": "string", +"description": "The type of label on the Tweet", +"example": "misleading" +}, +"extended_details_url": { +"type": "string", +"description": "Link to more information about this kind of label" +}, +"label_title": { +"type": "string", +"description": "Title/header of the Tweet label" +}, +"tweet": { +"type": "object", +"required": [ +"id", +"author_id" +], +"properties": { +"author_id": { +"$ref": "#/components/schemas/UserId" +}, +"id": { +"$ref": "#/components/schemas/TweetId" +} +} +} +} +}, +"TweetNoticeSchema": { +"type": "object", +"required": [ +"public_tweet_notice" +], +"properties": { +"public_tweet_notice": { +"$ref": "#/components/schemas/TweetNotice" +} +} +}, +"TweetTakedownComplianceSchema": { +"type": "object", +"required": [ +"tweet", +"withheld_in_countries", +"event_at" +], +"properties": { +"event_at": { +"type": "string", +"description": "Event time.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"quote_tweet_id": { +"$ref": "#/components/schemas/TweetId" +}, +"tweet": { +"type": "object", +"required": [ +"id", +"author_id" +], +"properties": { +"author_id": { +"$ref": "#/components/schemas/UserId" +}, +"id": { +"$ref": "#/components/schemas/TweetId" +} +} +}, +"withheld_in_countries": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/CountryCode" +} +} +} +}, +"TweetText": { +"type": "string", +"description": "The content of the Tweet.", +"example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" +}, +"TweetUndropComplianceSchema": { +"type": "object", +"required": [ +"undrop" +], +"properties": { +"undrop": { +"$ref": "#/components/schemas/TweetComplianceSchema" +} +} +}, +"TweetUnviewable": { +"type": "object", +"required": [ +"tweet", +"event_at", +"application" +], +"properties": { +"application": { +"type": "string", +"description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", +"example": "apply" +}, +"event_at": { +"type": "string", +"description": "Event time.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"tweet": { +"type": "object", +"required": [ +"id", +"author_id" +], +"properties": { +"author_id": { +"$ref": "#/components/schemas/UserId" +}, +"id": { +"$ref": "#/components/schemas/TweetId" +} +} +} +} +}, +"TweetUnviewableSchema": { +"type": "object", +"required": [ +"public_tweet_unviewable" +], +"properties": { +"public_tweet_unviewable": { +"$ref": "#/components/schemas/TweetUnviewable" +} +} +}, +"TweetWithheld": { +"type": "object", +"description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", +"required": [ +"copyright", +"country_codes" +], +"properties": { +"copyright": { +"type": "boolean", +"description": "Indicates if the content is being withheld for on the basis of copyright infringement." +}, +"country_codes": { +"type": "array", +"description": "Provides a list of countries where this content is not available.", +"minItems": 1, +"uniqueItems": true, +"items": { +"$ref": "#/components/schemas/CountryCode" +} +}, +"scope": { +"type": "string", +"description": "Indicates whether the content being withheld is the `tweet` or a `user`.", +"enum": [ +"tweet", +"user" +] +} +} +}, +"TweetWithheldComplianceSchema": { +"type": "object", +"required": [ +"withheld" +], +"properties": { +"withheld": { +"$ref": "#/components/schemas/TweetTakedownComplianceSchema" +} +} +}, +"UnlikeComplianceSchema": { +"type": "object", +"required": [ +"favorite", +"event_at" +], +"properties": { +"event_at": { +"type": "string", +"description": "Event time.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"favorite": { +"type": "object", +"required": [ +"id", +"user_id" +], +"properties": { +"id": { +"$ref": "#/components/schemas/TweetId" +}, +"user_id": { +"$ref": "#/components/schemas/UserId" +} +} +} +} +}, +"UnsupportedAuthenticationProblem": { +"description": "A problem that indicates that the authentication used is not supported.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +} +] +}, +"UploadExpiration": { +"type": "string", +"description": "Expiration time of the upload URL.", +"format": "date-time", +"example": "2021-01-06T18:40:40.000Z" +}, +"UploadSource": { +"type": "object", +"properties": { +"upload_source": { +"type": "string", +"description": "Records the source (e.g., app, device) from which the media was uploaded", +"example": "gallery" +} +} +}, +"UploadUrl": { +"type": "string", +"description": "URL to which the user will upload their Tweet or user IDs.", +"format": "uri" +}, +"Url": { +"type": "string", +"description": "A validly formatted URL.", +"format": "uri", +"example": "https://developer.twitter.com/en/docs/twitter-api" +}, +"UrlEntity": { +"description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", +"allOf": [ +{ +"$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" +}, +{ +"$ref": "#/components/schemas/UrlFields" +} +] +}, +"UrlEntityDm": { +"description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", +"allOf": [ +{ +"$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" +}, +{ +"$ref": "#/components/schemas/UrlFields" +} +] +}, +"UrlFields": { +"type": "object", +"description": "Represent the portion of text recognized as a URL.", +"required": [ +"url" +], +"properties": { +"description": { +"type": "string", +"description": "Description of the URL landing page.", +"example": "This is a description of the website." +}, +"display_url": { +"type": "string", +"description": "The URL as displayed in the X client.", +"example": "twittercommunity.com/t/introducing-…" +}, +"expanded_url": { +"$ref": "#/components/schemas/Url" +}, +"images": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/UrlImage" +} +}, +"media_key": { +"$ref": "#/components/schemas/MediaKey" +}, +"status": { +"$ref": "#/components/schemas/HttpStatusCode" +}, +"title": { +"type": "string", +"description": "Title of the page the URL points to.", +"example": "Introducing the v2 follow lookup endpoints" +}, +"unwound_url": { +"type": "string", +"description": "Fully resolved url.", +"format": "uri", +"example": "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118" +}, +"url": { +"$ref": "#/components/schemas/Url" +} +} +}, +"UrlImage": { +"type": "object", +"description": "Represent the information for the URL image.", +"properties": { +"height": { +"$ref": "#/components/schemas/MediaHeight" +}, +"url": { +"$ref": "#/components/schemas/Url" +}, +"width": { +"$ref": "#/components/schemas/MediaWidth" +} +} +}, +"Usage": { +"type": "object", +"description": "Usage per client app", +"properties": { +"cap_reset_day": { +"type": "integer", +"description": "Number of days left for the Tweet cap to reset", +"format": "int32" +}, +"daily_client_app_usage": { +"type": "array", +"description": "The daily usage breakdown for each Client Application a project", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/ClientAppUsage" +} +}, +"daily_project_usage": { +"type": "object", +"description": "The daily usage breakdown for a project", +"properties": { +"project_id": { +"type": "integer", +"description": "The unique identifier for this project", +"format": "int32" +}, +"usage": { +"type": "array", +"description": "The usage value", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/UsageFields" +} +} +} +}, +"project_cap": { +"type": "integer", +"description": "Total number of Posts that can be read in this project per month", +"format": "int32" +}, +"project_id": { +"type": "string", +"description": "The unique identifier for this project", +"format": "^[0-9]{1,19}$" +}, +"project_usage": { +"type": "integer", +"description": "The number of Posts read in this project", +"format": "int32" +} +} +}, +"UsageCapExceededProblem": { +"description": "A problem that indicates that a usage cap has been exceeded.", +"allOf": [ +{ +"$ref": "#/components/schemas/Problem" +}, +{ +"type": "object", +"properties": { +"period": { +"type": "string", +"enum": [ +"Daily", +"Monthly" +] +}, +"scope": { +"type": "string", +"enum": [ +"Account", +"Product" +] +} +} +} +] +}, +"UsageFields": { +"type": "object", +"description": "Represents the data for Usage", +"properties": { +"date": { +"type": "string", +"description": "The time period for the usage", +"format": "date-time", +"example": "2021-01-06T18:40:40.000Z" +}, +"usage": { +"type": "integer", +"description": "The usage value", +"format": "int32" +} +} +}, +"User": { +"type": "object", +"description": "The X User object.", +"required": [ +"id", +"name", +"username" +], +"properties": { +"affiliation": { +"type": "object", +"description": "Metadata about a user's affiliation.", +"properties": { +"badge_url": { +"type": "string", +"description": "The badge URL corresponding to the affiliation.", +"format": "uri" +}, +"description": { +"type": "string", +"description": "The description of the affiliation." +}, +"url": { +"type": "string", +"description": "The URL, if available, to details about an affiliation.", +"format": "uri" +}, +"user_id": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/UserId" +} +} +} +}, +"connection_status": { +"type": "array", +"description": "Returns detailed information about the relationship between two users.", +"minItems": 0, +"items": { +"type": "string", +"description": "Type of connection between users.", +"enum": [ +"follow_request_received", +"follow_request_sent", +"blocking", +"followed_by", +"following", +"muting" +] +} +}, +"created_at": { +"type": "string", +"description": "Creation time of this User.", +"format": "date-time" +}, +"description": { +"type": "string", +"description": "The text of this User's profile description (also known as bio), if the User provided one." +}, +"entities": { +"type": "object", +"description": "A list of metadata found in the User's profile description.", +"properties": { +"description": { +"$ref": "#/components/schemas/FullTextEntities" +}, +"url": { +"type": "object", +"description": "Expanded details for the URL specified in the User's profile, with start and end indices.", +"properties": { +"urls": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/UrlEntity" +} +} +} +} +} +}, +"id": { +"$ref": "#/components/schemas/UserId" +}, +"location": { +"type": "string", +"description": "The location specified in the User's profile, if the User provided one. As this is a freeform value, it may not indicate a valid location, but it may be fuzzily evaluated when performing searches with location queries." +}, +"most_recent_tweet_id": { +"$ref": "#/components/schemas/TweetId" +}, +"name": { +"type": "string", +"description": "The friendly name of this User, as shown on their profile." +}, +"pinned_tweet_id": { +"$ref": "#/components/schemas/TweetId" +}, +"profile_banner_url": { +"type": "string", +"description": "The URL to the profile banner for this User.", +"format": "uri" +}, +"profile_image_url": { +"type": "string", +"description": "The URL to the profile image for this User.", +"format": "uri" +}, +"protected": { +"type": "boolean", +"description": "Indicates if this User has chosen to protect their Posts (in other words, if this User's Posts are private)." +}, +"public_metrics": { +"type": "object", +"description": "A list of metrics for this User.", +"required": [ +"followers_count", +"following_count", +"tweet_count", +"listed_count" +], +"properties": { +"followers_count": { +"type": "integer", +"description": "Number of Users who are following this User." +}, +"following_count": { +"type": "integer", +"description": "Number of Users this User is following." +}, +"like_count": { +"type": "integer", +"description": "The number of likes created by this User." +}, +"listed_count": { +"type": "integer", +"description": "The number of lists that include this User." +}, +"tweet_count": { +"type": "integer", +"description": "The number of Posts (including Retweets) posted by this User." +} +} +}, +"receives_your_dm": { +"type": "boolean", +"description": "Indicates if you can send a DM to this User" +}, +"subscription_type": { +"type": "string", +"description": "The X Blue subscription type of the user, eg: Basic, Premium, PremiumPlus or None.", +"enum": [ +"Basic", +"Premium", +"PremiumPlus", +"None" +] +}, +"url": { +"type": "string", +"description": "The URL specified in the User's profile." +}, +"username": { +"$ref": "#/components/schemas/UserName" +}, +"verified": { +"type": "boolean", +"description": "Indicate if this User is a verified X User." +}, +"verified_type": { +"type": "string", +"description": "The X Blue verified type of the user, eg: blue, government, business or none.", +"enum": [ +"blue", +"government", +"business", +"none" +] +}, +"withheld": { +"$ref": "#/components/schemas/UserWithheld" +} +}, +"example": { +"created_at": "2013-12-14T04:35:55Z", +"id": "2244994945", +"name": "X Dev", +"protected": false, +"username": "TwitterDev" +} +}, +"UserComplianceData": { +"description": "User compliance data.", +"oneOf": [ +{ +"$ref": "#/components/schemas/UserProtectComplianceSchema" +}, +{ +"$ref": "#/components/schemas/UserUnprotectComplianceSchema" +}, +{ +"$ref": "#/components/schemas/UserDeleteComplianceSchema" +}, +{ +"$ref": "#/components/schemas/UserUndeleteComplianceSchema" +}, +{ +"$ref": "#/components/schemas/UserSuspendComplianceSchema" +}, +{ +"$ref": "#/components/schemas/UserUnsuspendComplianceSchema" +}, +{ +"$ref": "#/components/schemas/UserWithheldComplianceSchema" +}, +{ +"$ref": "#/components/schemas/UserScrubGeoSchema" +}, +{ +"$ref": "#/components/schemas/UserProfileModificationComplianceSchema" +} +] +}, +"UserComplianceSchema": { +"type": "object", +"required": [ +"user", +"event_at" +], +"properties": { +"event_at": { +"type": "string", +"description": "Event time.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"user": { +"type": "object", +"required": [ +"id" +], +"properties": { +"id": { +"$ref": "#/components/schemas/UserId" +} +} +} +} +}, +"UserComplianceStreamResponse": { +"description": "User compliance stream events.", +"oneOf": [ +{ +"type": "object", +"description": "User compliance event.", +"required": [ +"data" +], +"properties": { +"data": { +"$ref": "#/components/schemas/UserComplianceData" +} +} +}, +{ +"type": "object", +"required": [ +"errors" +], +"properties": { +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +] +}, +"UserDeleteComplianceSchema": { +"type": "object", +"required": [ +"user_delete" +], +"properties": { +"user_delete": { +"$ref": "#/components/schemas/UserComplianceSchema" +} +} +}, +"UserId": { +"type": "string", +"description": "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", +"pattern": "^[0-9]{1,19}$", +"example": "2244994945" +}, +"UserIdMatchesAuthenticatedUser": { +"type": "string", +"description": "Unique identifier of this User. The value must be the same as the authenticated user.", +"example": "2244994945" +}, +"UserName": { +"type": "string", +"description": "The X handle (screen name) of this user.", +"pattern": "^[A-Za-z0-9_]{1,15}$" +}, +"UserProfileModificationComplianceSchema": { +"type": "object", +"required": [ +"user_profile_modification" +], +"properties": { +"user_profile_modification": { +"$ref": "#/components/schemas/UserProfileModificationObjectSchema" +} +} +}, +"UserProfileModificationObjectSchema": { +"type": "object", +"required": [ +"user", +"profile_field", +"new_value", +"event_at" +], +"properties": { +"event_at": { +"type": "string", +"description": "Event time.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"new_value": { +"type": "string" +}, +"profile_field": { +"type": "string" +}, +"user": { +"type": "object", +"required": [ +"id" +], +"properties": { +"id": { +"$ref": "#/components/schemas/UserId" +} +} +} +} +}, +"UserProtectComplianceSchema": { +"type": "object", +"required": [ +"user_protect" +], +"properties": { +"user_protect": { +"$ref": "#/components/schemas/UserComplianceSchema" +} +} +}, +"UserScrubGeoObjectSchema": { +"type": "object", +"required": [ +"user", +"up_to_tweet_id", +"event_at" +], +"properties": { +"event_at": { +"type": "string", +"description": "Event time.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"up_to_tweet_id": { +"$ref": "#/components/schemas/TweetId" +}, +"user": { +"type": "object", +"required": [ +"id" +], +"properties": { +"id": { +"$ref": "#/components/schemas/UserId" +} +} +} +} +}, +"UserScrubGeoSchema": { +"type": "object", +"required": [ +"scrub_geo" +], +"properties": { +"scrub_geo": { +"$ref": "#/components/schemas/UserScrubGeoObjectSchema" +} +} +}, +"UserSearchQueryVnext": { +"type": "string", +"description": "The the search string by which to query for users.", +"pattern": "^[A-Za-z0-9_' ]{1,50}$" +}, +"UserSuspendComplianceSchema": { +"type": "object", +"required": [ +"user_suspend" +], +"properties": { +"user_suspend": { +"$ref": "#/components/schemas/UserComplianceSchema" +} +} +}, +"UserTakedownComplianceSchema": { +"type": "object", +"required": [ +"user", +"withheld_in_countries", +"event_at" +], +"properties": { +"event_at": { +"type": "string", +"description": "Event time.", +"format": "date-time", +"example": "2021-07-06T18:40:40.000Z" +}, +"user": { +"type": "object", +"required": [ +"id" +], +"properties": { +"id": { +"$ref": "#/components/schemas/UserId" +} +} +}, +"withheld_in_countries": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/CountryCode" +} +} +} +}, +"UserUndeleteComplianceSchema": { +"type": "object", +"required": [ +"user_undelete" +], +"properties": { +"user_undelete": { +"$ref": "#/components/schemas/UserComplianceSchema" +} +} +}, +"UserUnprotectComplianceSchema": { +"type": "object", +"required": [ +"user_unprotect" +], +"properties": { +"user_unprotect": { +"$ref": "#/components/schemas/UserComplianceSchema" +} +} +}, +"UserUnsuspendComplianceSchema": { +"type": "object", +"required": [ +"user_unsuspend" +], +"properties": { +"user_unsuspend": { +"$ref": "#/components/schemas/UserComplianceSchema" +} +} +}, +"UserWithheld": { +"type": "object", +"description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", +"required": [ +"country_codes" +], +"properties": { +"country_codes": { +"type": "array", +"description": "Provides a list of countries where this content is not available.", +"minItems": 1, +"uniqueItems": true, +"items": { +"$ref": "#/components/schemas/CountryCode" +} +}, +"scope": { +"type": "string", +"description": "Indicates that the content being withheld is a `user`.", +"enum": [ +"user" +] +} +} +}, +"UserWithheldComplianceSchema": { +"type": "object", +"required": [ +"user_withheld" +], +"properties": { +"user_withheld": { +"$ref": "#/components/schemas/UserTakedownComplianceSchema" +} +} +}, +"UsersDMBlockCreateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"blocked": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"UsersDMUnBlockCreateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"blocked": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"UsersFollowingCreateRequest": { +"type": "object", +"required": [ +"target_user_id" +], +"properties": { +"target_user_id": { +"$ref": "#/components/schemas/UserId" +} +} +}, +"UsersFollowingCreateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"following": { +"type": "boolean" +}, +"pending_follow": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"UsersFollowingDeleteResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"following": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"UsersLikesCreateRequest": { +"type": "object", +"required": [ +"tweet_id" +], +"properties": { +"tweet_id": { +"$ref": "#/components/schemas/TweetId" +} +} +}, +"UsersLikesCreateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"liked": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"UsersLikesDeleteResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"liked": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"UsersRetweetsCreateRequest": { +"type": "object", +"required": [ +"tweet_id" +], +"properties": { +"tweet_id": { +"$ref": "#/components/schemas/TweetId" +} +}, +"additionalProperties": false +}, +"UsersRetweetsCreateResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"id": { +"$ref": "#/components/schemas/TweetId" +}, +"retweeted": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"UsersRetweetsDeleteResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"retweeted": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"Variant": { +"type": "object", +"properties": { +"bit_rate": { +"type": "integer", +"description": "The bit rate of the media." +}, +"content_type": { +"type": "string", +"description": "The content type of the media." +}, +"url": { +"type": "string", +"description": "The url to the media.", +"format": "uri" +} +} +}, +"Variants": { +"type": "array", +"description": "An array of all available variants of the media.", +"items": { +"$ref": "#/components/schemas/Variant" +} +}, +"Video": { +"allOf": [ +{ +"$ref": "#/components/schemas/Media" +}, +{ +"type": "object", +"properties": { +"duration_ms": { +"type": "integer" +}, +"non_public_metrics": { +"type": "object", +"description": "Nonpublic engagement metrics for the Media at the time of the request.", +"properties": { +"playback_0_count": { +"type": "integer", +"description": "Number of users who made it through 0% of the video.", +"format": "int32" +}, +"playback_100_count": { +"type": "integer", +"description": "Number of users who made it through 100% of the video.", +"format": "int32" +}, +"playback_25_count": { +"type": "integer", +"description": "Number of users who made it through 25% of the video.", +"format": "int32" +}, +"playback_50_count": { +"type": "integer", +"description": "Number of users who made it through 50% of the video.", +"format": "int32" +}, +"playback_75_count": { +"type": "integer", +"description": "Number of users who made it through 75% of the video.", +"format": "int32" +} +} +}, +"organic_metrics": { +"type": "object", +"description": "Organic nonpublic engagement metrics for the Media at the time of the request.", +"properties": { +"playback_0_count": { +"type": "integer", +"description": "Number of users who made it through 0% of the video.", +"format": "int32" +}, +"playback_100_count": { +"type": "integer", +"description": "Number of users who made it through 100% of the video.", +"format": "int32" +}, +"playback_25_count": { +"type": "integer", +"description": "Number of users who made it through 25% of the video.", +"format": "int32" +}, +"playback_50_count": { +"type": "integer", +"description": "Number of users who made it through 50% of the video.", +"format": "int32" +}, +"playback_75_count": { +"type": "integer", +"description": "Number of users who made it through 75% of the video.", +"format": "int32" +}, +"view_count": { +"type": "integer", +"description": "Number of times this video has been viewed.", +"format": "int32" +} +} +}, +"preview_image_url": { +"type": "string", +"format": "uri" +}, +"promoted_metrics": { +"type": "object", +"description": "Promoted nonpublic engagement metrics for the Media at the time of the request.", +"properties": { +"playback_0_count": { +"type": "integer", +"description": "Number of users who made it through 0% of the video.", +"format": "int32" +}, +"playback_100_count": { +"type": "integer", +"description": "Number of users who made it through 100% of the video.", +"format": "int32" +}, +"playback_25_count": { +"type": "integer", +"description": "Number of users who made it through 25% of the video.", +"format": "int32" +}, +"playback_50_count": { +"type": "integer", +"description": "Number of users who made it through 50% of the video.", +"format": "int32" +}, +"playback_75_count": { +"type": "integer", +"description": "Number of users who made it through 75% of the video.", +"format": "int32" +}, +"view_count": { +"type": "integer", +"description": "Number of times this video has been viewed.", +"format": "int32" +} +} +}, +"public_metrics": { +"type": "object", +"description": "Engagement metrics for the Media at the time of the request.", +"properties": { +"view_count": { +"type": "integer", +"description": "Number of times this video has been viewed.", +"format": "int32" +} +} +}, +"variants": { +"$ref": "#/components/schemas/Variants" +} +} +} +] +}, +"WebhookConfig": { +"type": "object", +"description": "A Webhook Configuration", +"required": [ +"id", +"url", +"valid", +"created_at" +], +"properties": { +"created_at": { +"type": "string", +"format": "date-time" +}, +"id": { +"$ref": "#/components/schemas/WebhookConfigId" +}, +"url": { +"type": "string", +"description": "The callback URL of the webhook." +}, +"valid": { +"type": "boolean" +} +} +}, +"WebhookConfigCreateRequest": { +"type": "object", +"required": [ +"url" +], +"properties": { +"url": { +"type": "string", +"minLength": 1, +"maxLength": 200 +} +} +}, +"WebhookConfigCreateResponse": { +"type": "object", +"description": "A Webhook Configuration", +"required": [ +"id", +"url", +"valid", +"created_at" +], +"properties": { +"created_at": { +"type": "string", +"format": "date-time" +}, +"id": { +"$ref": "#/components/schemas/WebhookConfigId" +}, +"url": { +"type": "string", +"description": "The callback URL of the webhook." +}, +"valid": { +"type": "boolean" +} +} +}, +"WebhookConfigDeleteResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"deleted": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +}, +"WebhookConfigId": { +"type": "string", +"description": "The unique identifier of this webhook config.", +"pattern": "^[0-9]{1,19}$", +"example": "1146654567674912769" +}, +"WebhookConfigPutResponse": { +"type": "object", +"properties": { +"data": { +"type": "object", +"properties": { +"attempted": { +"type": "boolean" +} +} +}, +"errors": { +"type": "array", +"minItems": 1, +"items": { +"$ref": "#/components/schemas/Problem" +} +} +} +} +}, +"parameters": { +"AnalyticsFieldsParameter": { +"name": "analytics.fields", +"in": "query", +"description": "A comma separated list of Analytics fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Analytics object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"app_install_attempts", +"app_opens", +"bookmarks", +"detail_expands", +"email_tweet", +"engagements", +"follows", +"hashtag_clicks", +"id", +"impressions", +"likes", +"media_views", +"permalink_clicks", +"quote_tweets", +"replies", +"retweets", +"shares", +"timestamp", +"unfollows", +"url_clicks", +"user_profile_clicks" +] +}, +"example": [ +"app_install_attempts", +"app_opens", +"bookmarks", +"detail_expands", +"email_tweet", +"engagements", +"follows", +"hashtag_clicks", +"id", +"impressions", +"likes", +"media_views", +"permalink_clicks", +"quote_tweets", +"replies", +"retweets", +"shares", +"timestamp", +"unfollows", +"url_clicks", +"user_profile_clicks" +] +}, +"explode": false, +"style": "form" +}, +"CommunityFieldsParameter": { +"name": "community.fields", +"in": "query", +"description": "A comma separated list of Community fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Community object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"access", +"created_at", +"description", +"id", +"join_policy", +"member_count", +"name" +] +}, +"example": [ +"access", +"created_at", +"description", +"id", +"join_policy", +"member_count", +"name" +] +}, +"explode": false, +"style": "form" +}, +"ComplianceJobFieldsParameter": { +"name": "compliance_job.fields", +"in": "query", +"description": "A comma separated list of ComplianceJob fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a ComplianceJob object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"created_at", +"download_expires_at", +"download_url", +"id", +"name", +"resumable", +"status", +"type", +"upload_expires_at", +"upload_url" +] +}, +"example": [ +"created_at", +"download_expires_at", +"download_url", +"id", +"name", +"resumable", +"status", +"type", +"upload_expires_at", +"upload_url" +] +}, +"explode": false, +"style": "form" +}, +"DmConversationFieldsParameter": { +"name": "dm_conversation.fields", +"in": "query", +"description": "A comma separated list of DmConversation fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a DmConversation object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"id" +] +}, +"example": [ +"id" +] +}, +"explode": false, +"style": "form" +}, +"DmEventExpansionsParameter": { +"name": "expansions", +"in": "query", +"description": "A comma separated list of fields to expand.", +"schema": { +"type": "array", +"description": "The list of fields you can expand for a [DmEvent](#DmEvent) object. If the field has an ID, it can be expanded into a full object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"attachments.media_keys", +"participant_ids", +"referenced_tweets.id", +"sender_id" +] +}, +"example": [ +"attachments.media_keys", +"participant_ids", +"referenced_tweets.id", +"sender_id" +] +}, +"explode": false, +"style": "form" +}, +"DmEventFieldsParameter": { +"name": "dm_event.fields", +"in": "query", +"description": "A comma separated list of DmEvent fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a DmEvent object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"attachments", +"created_at", +"dm_conversation_id", +"entities", +"event_type", +"id", +"participant_ids", +"referenced_tweets", +"sender_id", +"text" +] +}, +"example": [ +"attachments", +"created_at", +"dm_conversation_id", +"entities", +"event_type", +"id", +"participant_ids", +"referenced_tweets", +"sender_id", +"text" +] +}, +"explode": false, +"style": "form" +}, +"EngagementFieldsParameter": { +"name": "engagement.fields", +"in": "query", +"description": "A comma separated list of Engagement fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Engagement object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"errors", +"measurement" +] +}, +"example": [ +"errors", +"measurement" +] +}, +"explode": false, +"style": "form" +}, +"LikeExpansionsParameter": { +"name": "expansions", +"in": "query", +"description": "A comma separated list of fields to expand.", +"schema": { +"type": "array", +"description": "The list of fields you can expand for a [Like](#Like) object. If the field has an ID, it can be expanded into a full object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"liked_tweet_id" +] +}, +"example": [ +"liked_tweet_id" +] +}, +"explode": false, +"style": "form" +}, +"LikeFieldsParameter": { +"name": "like.fields", +"in": "query", +"description": "A comma separated list of Like fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Like object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"created_at", +"id", +"liked_tweet_id", +"timestamp_ms" +] +}, +"example": [ +"created_at", +"id", +"liked_tweet_id", +"timestamp_ms" +] +}, +"explode": false, +"style": "form" +}, +"LikeWithTweetAuthorExpansionsParameter": { +"name": "expansions", +"in": "query", +"description": "A comma separated list of fields to expand.", +"schema": { +"type": "array", +"description": "The list of fields you can expand for a [LikeWithTweetAuthor](#LikeWithTweetAuthor) object. If the field has an ID, it can be expanded into a full object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"liked_tweet_author_id", +"liked_tweet_id" +] +}, +"example": [ +"liked_tweet_author_id", +"liked_tweet_id" +] +}, +"explode": false, +"style": "form" +}, +"LikeWithTweetAuthorFieldsParameter": { +"name": "like_with_tweet_author.fields", +"in": "query", +"description": "A comma separated list of LikeWithTweetAuthor fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a LikeWithTweetAuthor object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"created_at", +"id", +"liked_tweet_author_id", +"liked_tweet_id", +"timestamp_ms" +] +}, +"example": [ +"created_at", +"id", +"liked_tweet_author_id", +"liked_tweet_id", +"timestamp_ms" +] +}, +"explode": false, +"style": "form" +}, +"ListExpansionsParameter": { +"name": "expansions", +"in": "query", +"description": "A comma separated list of fields to expand.", +"schema": { +"type": "array", +"description": "The list of fields you can expand for a [List](#List) object. If the field has an ID, it can be expanded into a full object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"owner_id" +] +}, +"example": [ +"owner_id" +] +}, +"explode": false, +"style": "form" +}, +"ListFieldsParameter": { +"name": "list.fields", +"in": "query", +"description": "A comma separated list of List fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a List object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"created_at", +"description", +"follower_count", +"id", +"member_count", +"name", +"owner_id", +"private" +] +}, +"example": [ +"created_at", +"description", +"follower_count", +"id", +"member_count", +"name", +"owner_id", +"private" +] +}, +"explode": false, +"style": "form" +}, +"MediaAnalyticsFieldsParameter": { +"name": "media_analytics.fields", +"in": "query", +"description": "A comma separated list of MediaAnalytics fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a MediaAnalytics object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"cta_url_clicks", +"cta_watch_clicks", +"media_key", +"play_from_tap", +"playback25", +"playback50", +"playback75", +"playback_complete", +"playback_start", +"timestamp", +"video_views", +"watch_time_ms" +] +}, +"example": [ +"cta_url_clicks", +"cta_watch_clicks", +"media_key", +"play_from_tap", +"playback25", +"playback50", +"playback75", +"playback_complete", +"playback_start", +"timestamp", +"video_views", +"watch_time_ms" +] +}, +"explode": false, +"style": "form" +}, +"MediaFieldsParameter": { +"name": "media.fields", +"in": "query", +"description": "A comma separated list of Media fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Media object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"alt_text", +"duration_ms", +"height", +"media_key", +"non_public_metrics", +"organic_metrics", +"preview_image_url", +"promoted_metrics", +"public_metrics", +"type", +"url", +"variants", +"width" +] +}, +"example": [ +"alt_text", +"duration_ms", +"height", +"media_key", +"non_public_metrics", +"organic_metrics", +"preview_image_url", +"promoted_metrics", +"public_metrics", +"type", +"url", +"variants", +"width" +] +}, +"explode": false, +"style": "form" +}, +"NoteFieldsParameter": { +"name": "note.fields", +"in": "query", +"description": "A comma separated list of Note fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Note object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"id", +"info", +"status", +"test_result" +] +}, +"example": [ +"id", +"info", +"status", +"test_result" +] +}, +"explode": false, +"style": "form" +}, +"PersonalizedTrendFieldsParameter": { +"name": "personalized_trend.fields", +"in": "query", +"description": "A comma separated list of PersonalizedTrend fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a PersonalizedTrend object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"category", +"post_count", +"trend_name", +"trending_since" +] +}, +"example": [ +"category", +"post_count", +"trend_name", +"trending_since" +] +}, +"explode": false, +"style": "form" +}, +"PlaceFieldsParameter": { +"name": "place.fields", +"in": "query", +"description": "A comma separated list of Place fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Place object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"contained_within", +"country", +"country_code", +"full_name", +"geo", +"id", +"name", +"place_type" +] +}, +"example": [ +"contained_within", +"country", +"country_code", +"full_name", +"geo", +"id", +"name", +"place_type" +] +}, +"explode": false, +"style": "form" +}, +"PlaidAccountContactFieldsParameter": { +"name": "plaid_account_contact.fields", +"in": "query", +"description": "A comma separated list of PlaidAccountContact fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a PlaidAccountContact object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"addresses", +"emails", +"holders", +"telephones" +] +}, +"example": [ +"addresses", +"emails", +"holders", +"telephones" +] +}, +"explode": false, +"style": "form" +}, +"PlaidAccountFieldsParameter": { +"name": "plaid_account.fields", +"in": "query", +"description": "A comma separated list of PlaidAccount fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a PlaidAccount object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"accountCategory", +"accountId", +"accountNumberDisplay", +"accountType", +"availableBalance", +"currency", +"currentBalance", +"nickname", +"productName", +"status" +] +}, +"example": [ +"accountCategory", +"accountId", +"accountNumberDisplay", +"accountType", +"availableBalance", +"currency", +"currentBalance", +"nickname", +"productName", +"status" +] +}, +"explode": false, +"style": "form" +}, +"PlaidAccountPaymentNetworkFieldsParameter": { +"name": "plaid_account_payment_network.fields", +"in": "query", +"description": "A comma separated list of PlaidAccountPaymentNetwork fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a PlaidAccountPaymentNetwork object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"bankId", +"identifier", +"transferIn", +"transferOut", +"type" +] +}, +"example": [ +"bankId", +"identifier", +"transferIn", +"transferOut", +"type" +] +}, +"explode": false, +"style": "form" +}, +"PlaidAccountTransactionFieldsParameter": { +"name": "plaid_account_transaction.fields", +"in": "query", +"description": "A comma separated list of PlaidAccountTransaction fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a PlaidAccountTransaction object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"accountCategory", +"amount", +"debitCreditMemo", +"description", +"postedTimestamp", +"status", +"transactionId", +"transactionTimestamp" +] +}, +"example": [ +"accountCategory", +"amount", +"debitCreditMemo", +"description", +"postedTimestamp", +"status", +"transactionId", +"transactionTimestamp" +] +}, +"explode": false, +"style": "form" +}, +"PlaidCustomerFieldsParameter": { +"name": "plaid_customer.fields", +"in": "query", +"description": "A comma separated list of PlaidCustomer fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a PlaidCustomer object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"customerId" +] +}, +"example": [ +"customerId" +] +}, +"explode": false, +"style": "form" +}, +"PollFieldsParameter": { +"name": "poll.fields", +"in": "query", +"description": "A comma separated list of Poll fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Poll object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"duration_minutes", +"end_datetime", +"id", +"options", +"voting_status" +] +}, +"example": [ +"duration_minutes", +"end_datetime", +"id", +"options", +"voting_status" +] +}, +"explode": false, +"style": "form" +}, +"RulesCountFieldsParameter": { +"name": "rules_count.fields", +"in": "query", +"description": "A comma separated list of RulesCount fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a RulesCount object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"all_project_client_apps", +"cap_per_client_app", +"cap_per_project", +"client_app_rules_count", +"project_rules_count" +] +}, +"example": [ +"all_project_client_apps", +"cap_per_client_app", +"cap_per_project", +"client_app_rules_count", +"project_rules_count" +] +}, +"explode": false, +"style": "form" +}, +"SearchCountFieldsParameter": { +"name": "search_count.fields", +"in": "query", +"description": "A comma separated list of SearchCount fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a SearchCount object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"end", +"start", +"tweet_count" +] +}, +"example": [ +"end", +"start", +"tweet_count" +] +}, +"explode": false, +"style": "form" +}, +"SpaceExpansionsParameter": { +"name": "expansions", +"in": "query", +"description": "A comma separated list of fields to expand.", +"schema": { +"type": "array", +"description": "The list of fields you can expand for a [Space](#Space) object. If the field has an ID, it can be expanded into a full object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"creator_id", +"host_ids", +"invited_user_ids", +"speaker_ids", +"topic_ids" +] +}, +"example": [ +"creator_id", +"host_ids", +"invited_user_ids", +"speaker_ids", +"topic_ids" +] +}, +"explode": false, +"style": "form" +}, +"SpaceFieldsParameter": { +"name": "space.fields", +"in": "query", +"description": "A comma separated list of Space fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Space object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"created_at", +"creator_id", +"ended_at", +"host_ids", +"id", +"invited_user_ids", +"is_ticketed", +"lang", +"participant_count", +"scheduled_start", +"speaker_ids", +"started_at", +"state", +"subscriber_count", +"title", +"topic_ids", +"updated_at" +] +}, +"example": [ +"created_at", +"creator_id", +"ended_at", +"host_ids", +"id", +"invited_user_ids", +"is_ticketed", +"lang", +"participant_count", +"scheduled_start", +"speaker_ids", +"started_at", +"state", +"subscriber_count", +"title", +"topic_ids", +"updated_at" +] +}, +"explode": false, +"style": "form" +}, +"TopicFieldsParameter": { +"name": "topic.fields", +"in": "query", +"description": "A comma separated list of Topic fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Topic object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"description", +"id", +"name" +] +}, +"example": [ +"description", +"id", +"name" +] +}, +"explode": false, +"style": "form" +}, +"TrendFieldsParameter": { +"name": "trend.fields", +"in": "query", +"description": "A comma separated list of Trend fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Trend object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"trend_name", +"tweet_count" +] +}, +"example": [ +"trend_name", +"tweet_count" +] +}, +"explode": false, +"style": "form" +}, +"TweetExpansionsParameter": { +"name": "expansions", +"in": "query", +"description": "A comma separated list of fields to expand.", +"schema": { +"type": "array", +"description": "The list of fields you can expand for a [Tweet](#Tweet) object. If the field has an ID, it can be expanded into a full object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"article.cover_media", +"article.media_entities", +"attachments.media_keys", +"attachments.media_source_tweet", +"attachments.poll_ids", +"author_id", +"edit_history_tweet_ids", +"entities.mentions.username", +"geo.place_id", +"in_reply_to_user_id", +"entities.note.mentions.username", +"referenced_tweets.id", +"referenced_tweets.id.attachments.media_keys", +"referenced_tweets.id.author_id" +] +}, +"example": [ +"article.cover_media", +"article.media_entities", +"attachments.media_keys", +"attachments.media_source_tweet", +"attachments.poll_ids", +"author_id", +"edit_history_tweet_ids", +"entities.mentions.username", +"geo.place_id", +"in_reply_to_user_id", +"entities.note.mentions.username", +"referenced_tweets.id", +"referenced_tweets.id.attachments.media_keys", +"referenced_tweets.id.author_id" +] +}, +"explode": false, +"style": "form" +}, +"TweetFieldsParameter": { +"name": "tweet.fields", +"in": "query", +"description": "A comma separated list of Tweet fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Tweet object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"article", +"attachments", +"author_id", +"card_uri", +"community_id", +"context_annotations", +"conversation_id", +"created_at", +"display_text_range", +"edit_controls", +"edit_history_tweet_ids", +"entities", +"geo", +"id", +"in_reply_to_user_id", +"lang", +"media_metadata", +"non_public_metrics", +"note_tweet", +"organic_metrics", +"possibly_sensitive", +"promoted_metrics", +"public_metrics", +"referenced_tweets", +"reply_settings", +"scopes", +"source", +"text", +"withheld" +] +}, +"example": [ +"article", +"attachments", +"author_id", +"card_uri", +"community_id", +"context_annotations", +"conversation_id", +"created_at", +"display_text_range", +"edit_controls", +"edit_history_tweet_ids", +"entities", +"geo", +"id", +"in_reply_to_user_id", +"lang", +"media_metadata", +"non_public_metrics", +"note_tweet", +"organic_metrics", +"possibly_sensitive", +"promoted_metrics", +"public_metrics", +"referenced_tweets", +"reply_settings", +"scopes", +"source", +"text", +"withheld" +] +}, +"explode": false, +"style": "form" +}, +"UsageFieldsParameter": { +"name": "usage.fields", +"in": "query", +"description": "A comma separated list of Usage fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a Usage object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"cap_reset_day", +"daily_client_app_usage", +"daily_project_usage", +"project_cap", +"project_id", +"project_usage" +] +}, +"example": [ +"cap_reset_day", +"daily_client_app_usage", +"daily_project_usage", +"project_cap", +"project_id", +"project_usage" +] +}, +"explode": false, +"style": "form" +}, +"UserExpansionsParameter": { +"name": "expansions", +"in": "query", +"description": "A comma separated list of fields to expand.", +"schema": { +"type": "array", +"description": "The list of fields you can expand for a [User](#User) object. If the field has an ID, it can be expanded into a full object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"affiliation.user_id", +"most_recent_tweet_id", +"pinned_tweet_id" +] +}, +"example": [ +"affiliation.user_id", +"most_recent_tweet_id", +"pinned_tweet_id" +] +}, +"explode": false, +"style": "form" +}, +"UserFieldsParameter": { +"name": "user.fields", +"in": "query", +"description": "A comma separated list of User fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a User object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"affiliation", +"confirmed_email", +"connection_status", +"created_at", +"description", +"entities", +"id", +"is_identity_verified", +"location", +"most_recent_tweet_id", +"name", +"parody", +"pinned_tweet_id", +"profile_banner_url", +"profile_image_url", +"protected", +"public_metrics", +"receives_your_dm", +"subscription", +"subscription_type", +"url", +"username", +"verified", +"verified_followers_count", +"verified_type", +"withheld" +] +}, +"example": [ +"affiliation", +"confirmed_email", +"connection_status", +"created_at", +"description", +"entities", +"id", +"is_identity_verified", +"location", +"most_recent_tweet_id", +"name", +"parody", +"pinned_tweet_id", +"profile_banner_url", +"profile_image_url", +"protected", +"public_metrics", +"receives_your_dm", +"subscription", +"subscription_type", +"url", +"username", +"verified", +"verified_followers_count", +"verified_type", +"withheld" +] +}, +"explode": false, +"style": "form" +}, +"WebhookConfigFieldsParameter": { +"name": "webhook_config.fields", +"in": "query", +"description": "A comma separated list of WebhookConfig fields to display.", +"required": false, +"schema": { +"type": "array", +"description": "The fields available for a WebhookConfig object.", +"minItems": 1, +"uniqueItems": true, +"items": { +"type": "string", +"enum": [ +"created_at", +"id", +"url", +"valid" +] +}, +"example": [ +"created_at", +"id", +"url", +"valid" +] +}, +"explode": false, +"style": "form" +} +} +} +} From 0e4caa040dfed204538fb6649b5338aeeac73d1b Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Tue, 29 Jul 2025 11:00:48 -0700 Subject: [PATCH 31/34] Update openapi.json Signed-off-by: tcaldwell-x --- openapi.json | 42399 +++++++++++++++++++++++++------------------------ 1 file changed, 21216 insertions(+), 21183 deletions(-) diff --git a/openapi.json b/openapi.json index 4699317..c9d3618 100644 --- a/openapi.json +++ b/openapi.json @@ -1,21185 +1,21218 @@ { -"openapi": "3.0.0", -"info": { -"description": "X API v2 available endpoints", -"version": "2.145", -"title": "X API v2", -"termsOfService": "https://developer.x.com/en/developer-terms/agreement-and-policy.html", -"contact": { -"name": "X Developers", -"url": "https://developer.x.com/" -}, -"license": { -"name": "X Developer Agreement and Policy", -"url": "https://developer.x.com/en/developer-terms/agreement-and-policy.html" -} -}, -"paths": { -"/2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all": { -"post": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Account Activity" -], -"summary": "Create replay job", -"description": "Creates a replay job to retrieve activities from up to the past 5 days for all subscriptions associated with a given webhook.", -"externalDocs": { -"url": "https://docs.x.com/x-api/account-activity/introduction" -}, -"operationId": "createAccountActivityReplayJob", -"parameters": [ -{ -"name": "webhook_id", -"in": "path", -"description": "The unique identifier for the webhook configuration.", -"required": true, -"schema": { -"$ref": "#/components/schemas/WebhookConfigId" -}, -"style": "simple" -}, -{ -"name": "from_date", -"in": "query", -"description": "The oldest (starting) UTC timestamp (inclusive) from which events will be provided, in `yyyymmddhhmm` format.", -"required": true, -"schema": { -"type": "string", -"pattern": "^\\d{12}$", -"example": "202504242000" -}, -"style": "form" -}, -{ -"name": "to_date", -"in": "query", -"description": "The latest (ending) UTC timestamp (exclusive) up to which events will be provided, in `yyyymmddhhmm` format.", -"required": true, -"schema": { -"type": "string", -"pattern": "^\\d{12}$", -"example": "202504242200" -}, -"style": "form" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ReplayJobCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/account_activity/subscriptions/count": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Account Activity" -], -"summary": "Get subscription count", -"description": "Retrieves a count of currently active Account Activity subscriptions.", -"externalDocs": { -"url": "https://docs.x.com/x-api/account-activity/introduction" -}, -"operationId": "getAccountActivitySubscriptionCount", -"parameters": [], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/SubscriptionsCountGetResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/account_activity/webhooks/{webhook_id}/subscriptions/all": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.read", -"dm.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Account Activity" -], -"summary": "Validate subscription", -"description": "Checks a user’s Account Activity subscription for a given webhook.", -"externalDocs": { -"url": "https://docs.x.com/x-api/account-activity/introduction" -}, -"operationId": "validateAccountActivitySubscription", -"parameters": [ -{ -"name": "webhook_id", -"in": "path", -"description": "The webhook ID to check subscription against.", -"required": true, -"schema": { -"$ref": "#/components/schemas/WebhookConfigId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/SubscriptionsGetResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.read", -"dm.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"AAASubscriptions" -], -"summary": "Create subscription", -"description": "Creates an Account Activity subscription for the user and the given webhook.", -"externalDocs": { -"url": "https://docs.x.com/x-api/account-activity/introduction" -}, -"operationId": "createAccountActivitySubscription", -"parameters": [ -{ -"name": "webhook_id", -"in": "path", -"description": "The webhook ID to check subscription against.", -"required": true, -"schema": { -"$ref": "#/components/schemas/WebhookConfigId" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/SubscriptionsCreateRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/SubscriptionsCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/account_activity/webhooks/{webhook_id}/subscriptions/all/list": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Account Activity" -], -"summary": "Get subscriptions", -"description": "Retrieves a list of all active subscriptions for a given webhook.", -"externalDocs": { -"url": "https://docs.x.com/x-api/account-activity/introduction" -}, -"operationId": "getAccountActivitySubscriptions", -"parameters": [ -{ -"name": "webhook_id", -"in": "path", -"description": "The webhook ID to pull subscriptions for.", -"required": true, -"schema": { -"$ref": "#/components/schemas/WebhookConfigId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/SubscriptionsListGetResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all": { -"delete": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Account Activity" -], -"summary": "Delete subscription", -"description": "Deletes an Account Activity subscription for the given webhook and user ID.", -"externalDocs": { -"url": "https://docs.x.com/x-api/account-activity/introduction" -}, -"operationId": "deleteAccountActivitySubscription", -"parameters": [ -{ -"name": "webhook_id", -"in": "path", -"description": "The webhook ID to check subscription against.", -"required": true, -"schema": { -"$ref": "#/components/schemas/WebhookConfigId" -}, -"style": "simple" -}, -{ -"name": "user_id", -"in": "path", -"description": "User ID to unsubscribe from.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/SubscriptionsDeleteResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/communities/search": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Communities" -], -"summary": "Search Communities", -"description": "Retrieves a list of Communities matching the specified search query.", -"externalDocs": { -"url": "https://developer.x.com" -}, -"operationId": "searchCommunities", -"parameters": [ -{ -"name": "query", -"in": "query", -"description": "Query to search communities.", -"required": true, -"schema": { -"type": "string", -"minLength": 1, -"maxLength": 4096, -"example": "Love" -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of search results to be returned by a request.", -"required": false, -"schema": { -"type": "integer", -"minimum": 10, -"maximum": 100, -"format": "int32", -"default": 10 -}, -"style": "form" -}, -{ -"name": "next_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/NextToken" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/NextToken" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/CommunityFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2CommunitiesSearchResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/communities/{id}": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"list.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Communities" -], -"summary": "Get Community by ID", -"description": "Retrieves details of a specific Community by its ID.", -"externalDocs": { -"url": "https://developer.x.com/en/docs/x-api/communities/api-reference/get-communities-id" -}, -"operationId": "getCommunitiesById", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the Community.", -"required": true, -"schema": { -"$ref": "#/components/schemas/CommunityId" -}, -"style": "simple" -}, -{ -"$ref": "#/components/parameters/CommunityFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2CommunitiesIdResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/compliance/jobs": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Compliance" -], -"summary": "Get Compliance Jobs", -"description": "Retrieves a list of Compliance Jobs filtered by job type and optional status.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs" -}, -"operationId": "getComplianceJobs", -"parameters": [ -{ -"name": "type", -"in": "query", -"description": "Type of Compliance Job to list.", -"required": true, -"schema": { -"type": "string", -"enum": [ -"tweets", -"users" -] -}, -"style": "form" -}, -{ -"name": "status", -"in": "query", -"description": "Status of Compliance Job to list.", -"required": false, -"schema": { -"type": "string", -"enum": [ -"created", -"in_progress", -"failed", -"complete" -] -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/ComplianceJobFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2ComplianceJobsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Compliance" -], -"summary": "Create Compliance Job", -"description": "Creates a new Compliance Job for the specified job type.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs" -}, -"operationId": "createComplianceJobs", -"parameters": [], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/CreateComplianceJobRequest" -} -} -}, -"required": true -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/CreateComplianceJobResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/compliance/jobs/{id}": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Compliance" -], -"summary": "Get Compliance Job by ID", -"description": "Retrieves details of a specific Compliance Job by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id" -}, -"operationId": "getComplianceJobsById", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the Compliance Job to retrieve.", -"required": true, -"schema": { -"$ref": "#/components/schemas/JobId" -}, -"style": "simple" -}, -{ -"$ref": "#/components/parameters/ComplianceJobFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2ComplianceJobsIdResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/connections/all": { -"delete": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Connection" -], -"summary": "Terminate all connections", -"description": "Terminates all active streaming connections for the authenticated application.", -"externalDocs": { -"url": "https://developer.x.com" -}, -"operationId": "deleteAllConnections", -"parameters": [], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/KillAllConnectionsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/dm_conversations": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Direct Messages" -], -"summary": "Create DM conversation", -"description": "Initiates a new direct message conversation with specified participants.", -"operationId": "createDmConversations", -"parameters": [], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/CreateDmConversationRequest" -} -} -} -}, -"responses": { -"201": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/CreateDmEventResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/dm_conversations/with/{participant_id}/dm_events": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Direct Messages" -], -"summary": "Get DM events for a DM conversation", -"description": "Retrieves direct message events for a specific conversation.", -"operationId": "getDmEventsByParticipantId", -"parameters": [ -{ -"name": "participant_id", -"in": "path", -"description": "The ID of the participant user for the One to One DM conversation.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken32" -}, -"style": "form" -}, -{ -"name": "event_types", -"in": "query", -"description": "The set of event_types to include in the results.", -"required": false, -"schema": { -"type": "array", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"MessageCreate", -"ParticipantsJoin", -"ParticipantsLeave" -] -}, -"default": [ -"MessageCreate", -"ParticipantsLeave", -"ParticipantsJoin" -], -"example": [ -"MessageCreate", -"ParticipantsLeave" -] -}, -"explode": false, -"style": "form" -}, -{ -"$ref": "#/components/parameters/DmEventFieldsParameter" -}, -{ -"$ref": "#/components/parameters/DmEventExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2DmConversationsWithParticipantIdDmEventsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/dm_conversations/with/{participant_id}/messages": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Direct Messages" -], -"summary": "Create DM message by participant ID", -"description": "Sends a new direct message to a specific participant by their ID.", -"operationId": "createDmByParticipantId", -"parameters": [ -{ -"name": "participant_id", -"in": "path", -"description": "The ID of the recipient user that will receive the DM.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/CreateMessageRequest" -} -} -} -}, -"responses": { -"201": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/CreateDmEventResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/dm_conversations/{dm_conversation_id}/messages": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Direct Messages" -], -"summary": "Create DM message by conversation ID", -"description": "Sends a new direct message to a specific conversation by its ID.", -"operationId": "createDmByConversationId", -"parameters": [ -{ -"name": "dm_conversation_id", -"in": "path", -"description": "The DM Conversation ID.", -"required": true, -"schema": { -"type": "string" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/CreateMessageRequest" -} -} -} -}, -"responses": { -"201": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/CreateDmEventResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/dm_conversations/{id}/dm_events": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Direct Messages" -], -"summary": "Get DM events for a DM conversation", -"description": "Retrieves direct message events for a specific conversation.", -"operationId": "getDmConversationsIdDmEvents", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The DM conversation ID.", -"required": true, -"schema": { -"$ref": "#/components/schemas/DmConversationId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken32" -}, -"style": "form" -}, -{ -"name": "event_types", -"in": "query", -"description": "The set of event_types to include in the results.", -"required": false, -"schema": { -"type": "array", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"MessageCreate", -"ParticipantsJoin", -"ParticipantsLeave" -] -}, -"default": [ -"MessageCreate", -"ParticipantsLeave", -"ParticipantsJoin" -], -"example": [ -"MessageCreate", -"ParticipantsLeave" -] -}, -"explode": false, -"style": "form" -}, -{ -"$ref": "#/components/parameters/DmEventFieldsParameter" -}, -{ -"$ref": "#/components/parameters/DmEventExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2DmConversationsIdDmEventsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/dm_events": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Direct Messages" -], -"summary": "Get DM events", -"description": "Retrieves a list of recent direct message events across all conversations.", -"operationId": "getDmEvents", -"parameters": [ -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken32" -}, -"style": "form" -}, -{ -"name": "event_types", -"in": "query", -"description": "The set of event_types to include in the results.", -"required": false, -"schema": { -"type": "array", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"MessageCreate", -"ParticipantsJoin", -"ParticipantsLeave" -] -}, -"default": [ -"MessageCreate", -"ParticipantsLeave", -"ParticipantsJoin" -], -"example": [ -"MessageCreate", -"ParticipantsLeave" -] -}, -"explode": false, -"style": "form" -}, -{ -"$ref": "#/components/parameters/DmEventFieldsParameter" -}, -{ -"$ref": "#/components/parameters/DmEventExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2DmEventsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/dm_events/{event_id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.read", -"dm.write" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Direct Messages" -], -"summary": "Delete DM event", -"description": "Deletes a specific direct message event by its ID, if owned by the authenticated user.", -"operationId": "deleteDmEvents", -"parameters": [ -{ -"name": "event_id", -"in": "path", -"description": "The ID of the direct-message event to delete.", -"required": true, -"schema": { -"$ref": "#/components/schemas/DmEventId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/DeleteDmResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Direct Messages" -], -"summary": "Get DM event by ID", -"description": "Retrieves details of a specific direct message event by its ID.", -"operationId": "getDmEventsById", -"parameters": [ -{ -"name": "event_id", -"in": "path", -"description": "dm event id.", -"required": true, -"schema": { -"$ref": "#/components/schemas/DmEventId" -}, -"style": "simple" -}, -{ -"$ref": "#/components/parameters/DmEventFieldsParameter" -}, -{ -"$ref": "#/components/parameters/DmEventExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2DmEventsEventIdResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/insights/28hr": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get 28-hour Post insights", -"description": "Retrieves engagement metrics for specified Posts over the last 28 hours.", -"operationId": "getInsights28Hr", -"parameters": [ -{ -"name": "tweet_ids", -"in": "query", -"description": "List of PostIds for 28hr metrics.", -"required": true, -"schema": { -"type": "array", -"minItems": 1, -"maxItems": 25, -"uniqueItems": true, -"items": { -"$ref": "#/components/schemas/TweetId" -}, -"example": [ -"20" -] -}, -"style": "form" -}, -{ -"name": "granularity", -"in": "query", -"description": "granularity of metrics response.", -"required": true, -"schema": { -"type": "string", -"enum": [ -"Daily", -"Hourly", -"Weekly", -"Total" -], -"example": "Total" -}, -"style": "form" -}, -{ -"name": "requested_metrics", -"in": "query", -"description": "request metrics for historical request.", -"required": true, -"schema": { -"type": "array", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"AppInstallAttempts", -"AppOpens", -"DetailExpands", -"EmailTweet", -"Engagements", -"Follows", -"HashtagClicks", -"Impressions", -"Likes", -"LinkClicks", -"MediaEngagements", -"MediaViews", -"PermalinkClicks", -"ProfileVisits", -"QuoteTweets", -"Replies", -"Retweets", -"UniqueVideoViews", -"UrlClicks", -"UserProfileClicks", -"VideoCompletions", -"VideoPlayed25Percent", -"VideoPlayed50Percent", -"VideoPlayed75Percent", -"VideoStarts", -"VideoViews" -] -} -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/EngagementFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2Insights28hrResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/insights/historical": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get historical Post insights", -"description": "Retrieves historical engagement metrics for specified Posts within a defined time range.", -"operationId": "getInsightsHistorical", -"parameters": [ -{ -"name": "tweet_ids", -"in": "query", -"description": "List of PostIds for historical metrics.", -"required": true, -"schema": { -"type": "array", -"minItems": 1, -"maxItems": 25, -"uniqueItems": true, -"items": { -"$ref": "#/components/schemas/TweetId" -}, -"example": [ -"20" -] -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", -"required": true, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", -"required": true, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "granularity", -"in": "query", -"description": "granularity of metrics response.", -"required": true, -"schema": { -"type": "string", -"enum": [ -"Daily", -"Hourly", -"Weekly", -"Total" -], -"example": "Total" -}, -"style": "form" -}, -{ -"name": "requested_metrics", -"in": "query", -"description": "request metrics for historical request.", -"required": true, -"schema": { -"type": "array", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"AppInstallAttempts", -"AppOpens", -"DetailExpands", -"EmailTweet", -"Engagements", -"Follows", -"HashtagClicks", -"Impressions", -"Likes", -"LinkClicks", -"MediaEngagements", -"MediaViews", -"PermalinkClicks", -"ProfileVisits", -"QuoteTweets", -"Replies", -"Retweets", -"UniqueVideoViews", -"UrlClicks", -"UserProfileClicks", -"VideoCompletions", -"VideoPlayed25Percent", -"VideoPlayed50Percent", -"VideoPlayed75Percent", -"VideoStarts", -"VideoViews" -] -} -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/EngagementFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2InsightsHistoricalResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/likes/compliance/stream": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Compliance" -], -"summary": "Stream Likes compliance data", -"description": "Streams all compliance data related to Likes for Users.", -"operationId": "streamLikesCompliance", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Likes Compliance events will be provided.", -"required": false, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Likes Compliance events will be provided.", -"required": false, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/LikesComplianceStreamResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/likes/firehose/stream": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Likes" -], -"summary": "Stream all Likes", -"description": "Streams all public Likes in real-time.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-likes-firehose-stream" -}, -"operationId": "streamLikesFirehose", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "partition", -"in": "query", -"description": "The partition number.", -"required": true, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 20, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" -}, -{ -"$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/StreamingLikeResponseV2" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/likes/sample10/stream": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Likes" -], -"summary": "Stream sampled Likes", -"description": "Streams a 10% sample of public Likes in real-time.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/likes/firehose/api-reference/get-likes-sample10-stream" -}, -"operationId": "streamLikesSample10", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "partition", -"in": "query", -"description": "The partition number.", -"required": true, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 2, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" -}, -{ -"$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/StreamingLikeResponseV2" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/lists": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"list.read", -"list.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Create List", -"description": "Creates a new List for the authenticated user.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists" -}, -"operationId": "createLists", -"parameters": [], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListCreateRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/lists/{id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"list.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Delete List", -"description": "Deletes a specific List owned by the authenticated user by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id" -}, -"operationId": "deleteLists", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the List to delete.", -"required": true, -"schema": { -"$ref": "#/components/schemas/ListId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListDeleteResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"list.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Get List by ID", -"description": "Retrieves details of a specific List by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id" -}, -"operationId": "getListsById", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the List.", -"required": true, -"schema": { -"$ref": "#/components/schemas/ListId" -}, -"style": "simple" -}, -{ -"$ref": "#/components/parameters/ListFieldsParameter" -}, -{ -"$ref": "#/components/parameters/ListExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2ListsIdResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"put": { -"security": [ -{ -"OAuth2UserToken": [ -"list.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Update List", -"description": "Updates the details of a specific List owned by the authenticated user by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id" -}, -"operationId": "updateLists", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the List to modify.", -"required": true, -"schema": { -"$ref": "#/components/schemas/ListId" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListUpdateRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListUpdateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/lists/{id}/followers": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"list.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get List followers", -"description": "Retrieves a list of Users who follow a specific List by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" -}, -"operationId": "getListsFollowers", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the List.", -"required": true, -"schema": { -"$ref": "#/components/schemas/ListId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationTokenLong" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2ListsIdFollowersResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/lists/{id}/members": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"list.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get List members", -"description": "Retrieves a list of Users who are members of a specific List by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" -}, -"operationId": "getListsMembers", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the List.", -"required": true, -"schema": { -"$ref": "#/components/schemas/ListId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationTokenLong" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2ListsIdMembersResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"list.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Add List member", -"description": "Adds a User to a specific List by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members" -}, -"operationId": "addListsMember", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the List for which to add a member.", -"required": true, -"schema": { -"$ref": "#/components/schemas/ListId" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListAddUserRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListMutateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/lists/{id}/members/{user_id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"list.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Remove List member", -"description": "Removes a User from a specific List by its ID and the User’s ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id" -}, -"operationId": "removeListsMemberByUserId", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the List to remove a member.", -"required": true, -"schema": { -"$ref": "#/components/schemas/ListId" -}, -"style": "simple" -}, -{ -"name": "user_id", -"in": "path", -"description": "The ID of User that will be removed from the List.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListMutateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/lists/{id}/tweets": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"list.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get List Posts", -"description": "Retrieves a list of Posts associated with a specific List by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets" -}, -"operationId": "getListsPosts", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the List.", -"required": true, -"schema": { -"$ref": "#/components/schemas/ListId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2ListsIdTweetsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/media": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Media" -], -"summary": "Get Media by media keys", -"description": "Retrieves details of Media files by their media keys.", -"externalDocs": { -"url": "https://developer.x.com" -}, -"operationId": "getMediaByMediaKeys", -"parameters": [ -{ -"name": "media_keys", -"in": "query", -"description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", -"required": true, -"schema": { -"type": "array", -"minItems": 1, -"maxItems": 100, -"items": { -"$ref": "#/components/schemas/MediaKey" -} -}, -"explode": false, -"style": "form" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2MediaResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/media/analytics": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Media" -], -"summary": "Get Media analytics", -"description": "Retrieves analytics data for media.", -"operationId": "getMediaAnalytics", -"parameters": [ -{ -"name": "media_keys", -"in": "query", -"description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", -"required": true, -"schema": { -"type": "array", -"minItems": 1, -"maxItems": 100, -"items": { -"$ref": "#/components/schemas/MediaKey" -} -}, -"explode": false, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", -"required": true, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", -"required": true, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "granularity", -"in": "query", -"description": "The granularity for the search counts results.", -"required": true, -"schema": { -"type": "string", -"enum": [ -"hourly", -"daily", -"total" -], -"default": "daily" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/MediaAnalyticsFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MediaAnalytics" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/media/metadata": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"media.write" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Media" -], -"summary": "Create Media metadata", -"description": "Creates metadata for a Media file.", -"externalDocs": { -"url": "https://docs.x.com/x-api/media/media-metadata-create#metadata-create" -}, -"operationId": "createMediaMetadata", -"parameters": [], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MetadataCreateRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MetadataCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/media/subtitles": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"media.write" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Media" -], -"summary": "Delete Media subtitles", -"description": "Deletes subtitles for a specific Media file.", -"externalDocs": { -"url": "https://docs.x.com/x-api/media/media-subtitles-delete" -}, -"operationId": "deleteMediaSubtitles", -"parameters": [], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/SubtitlesDeleteRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/SubtitlesDeleteResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"media.write" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Media" -], -"summary": "Create Media subtitles", -"description": "Creates subtitles for a specific Media file.", -"externalDocs": { -"url": "https://docs.x.com/x-api/media/media-subtitles-create" -}, -"operationId": "createMediaSubtitles", -"parameters": [], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/SubtitlesCreateRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/SubtitlesCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/media/upload": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"media.write" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Media" -], -"summary": "Get Media upload status", -"description": "Retrieves the status of a Media upload by its ID.", -"externalDocs": { -"url": "https://docs.x.com/x-api/media/media-upload-status#media-upload-status" -}, -"operationId": "getMediaUploadStatus", -"parameters": [ -{ -"name": "media_id", -"in": "query", -"description": "Media id for the requested media upload status.", -"required": true, -"schema": { -"$ref": "#/components/schemas/MediaId" -}, -"style": "form" -}, -{ -"name": "command", -"in": "query", -"description": "The command for the media upload request.", -"required": false, -"schema": { -"type": "string", -"enum": [ -"STATUS" -] -}, -"style": "form" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MediaUploadResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"media.write" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Media" -], -"summary": "Upload media", -"description": "Uploads a media file for use in posts or other content.", -"externalDocs": { -"url": "https://docs.x.com/x-api/media/media-upload" -}, -"operationId": "mediaUpload", -"parameters": [], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MediaUploadRequestOneShot" -} -}, -"multipart/form-data": { -"schema": { -"$ref": "#/components/schemas/MediaUploadRequestOneShot" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MediaUploadResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/media/upload/initialize": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"media.write" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Media" -], -"summary": "Initialize media upload", -"description": "Initializes a media upload.", -"externalDocs": { -"url": "https://docs.x.com/x-api/media/media-upload" -}, -"operationId": "initializeMediaUpload", -"parameters": [], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MediaUploadConfigRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MediaUploadResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/media/upload/{id}/append": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"media.write" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Media" -], -"summary": "Append Media upload", -"description": "Appends data to a Media upload request.", -"externalDocs": { -"url": "https://docs.x.com/x-api/media/media-upload" -}, -"operationId": "appendMediaUpload", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The media identifier for the media to perform the append operation.", -"required": true, -"schema": { -"$ref": "#/components/schemas/MediaId" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MediaUploadAppendRequest" -} -}, -"multipart/form-data": { -"schema": { -"$ref": "#/components/schemas/MediaUploadAppendRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MediaUploadAppendResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/media/upload/{id}/finalize": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"media.write" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Media" -], -"summary": "Finalize Media upload", -"description": "Finalizes a Media upload request.", -"externalDocs": { -"url": "https://docs.x.com/x-api/media/media-upload" -}, -"operationId": "finalizeMediaUpload", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The media id of the targeted media to finalize.", -"required": true, -"schema": { -"$ref": "#/components/schemas/MediaId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MediaUploadResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/media/{media_key}": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Media" -], -"summary": "Get Media by media key", -"description": "Retrieves details of a specific Media file by its media key.", -"externalDocs": { -"url": "https://developer.x.com" -}, -"operationId": "getMediaByMediaKey", -"parameters": [ -{ -"name": "media_key", -"in": "path", -"description": "A single Media Key.", -"required": true, -"schema": { -"$ref": "#/components/schemas/MediaKey" -}, -"style": "simple" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2MediaMediaKeyResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/notes": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.write" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Community Notes" -], -"summary": "Create a Community Note", -"description": "Creates a community note endpoint for LLM use case.", -"externalDocs": { -"url": "https://communitynotes.x.com/guide/api/overview" -}, -"operationId": "createNotes", -"parameters": [], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/CreateNoteRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/DeleteNoteResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/notes/search/notes_written": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Community Notes" -], -"summary": "Search for Community Notes Written", -"description": "Returns all the community notes written by the user.", -"externalDocs": { -"url": "https://docs.x.com/x-api/community-notes/search-for-community-notes-written" -}, -"operationId": "searchNotesWritten", -"parameters": [ -{ -"name": "test_mode", -"in": "query", -"description": "If true, return the notes the caller wrote for the test. If false, return the notes the caller wrote on the product.", -"required": true, -"schema": { -"type": "boolean" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "Pagination token to get next set of posts eligible for notes.", -"required": false, -"schema": { -"type": "string" -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "Max results to return.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 10 -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/NoteFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2NotesSearchNotesWrittenResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/notes/search/posts_eligible_for_notes": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Community Notes" -], -"summary": "Search for Posts Eligible for Community Notes", -"description": "Returns all the posts that are eligible for community notes.", -"externalDocs": { -"url": "https://docs.x.com/x-api/community-notes/search-for-posts-eligible-for-community-notes" -}, -"operationId": "searchForEligiblePosts", -"parameters": [ -{ -"name": "test_mode", -"in": "query", -"description": "If true, return a list of posts that are for the test. If false, return a list of posts that the bots can write proposed notes on the product.", -"required": true, -"schema": { -"type": "boolean" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "Pagination token to get next set of posts eligible for notes.", -"required": false, -"schema": { -"type": "string" -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "Max results to return.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 10 -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2NotesSearchPostsEligibleForNotesResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/notes/{id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.write" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Community Notes" -], -"summary": "Delete a Community Note", -"description": "Deletes a community note.", -"externalDocs": { -"url": "https://communitynotes.x.com/guide/api/overview" -}, -"operationId": "deleteNotes", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The community note id to delete.", -"required": true, -"schema": { -"$ref": "#/components/schemas/NoteId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/CreateNoteResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/openapi.json": { -"get": { -"tags": [ -"General" -], -"summary": "Get OpenAPI Spec.", -"description": "Retrieves the full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", -"operationId": "getOpenApiSpec", -"parameters": [], -"responses": { -"200": { -"description": "The request was successful", -"content": { -"application/json": { -"schema": { -"type": "object" -} -} -} -} -} -} -}, -"/2/spaces": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"space.read", -"tweet.read", -"users.read" -] -} -], -"tags": [ -"Spaces" -], -"summary": "Get Spaces by IDs", -"description": "Retrieves details of multiple Spaces by their IDs.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces" -}, -"operationId": "getSpacesByIds", -"parameters": [ -{ -"name": "ids", -"in": "query", -"description": "The list of Space IDs to return.", -"required": true, -"schema": { -"type": "array", -"minItems": 1, -"maxItems": 100, -"items": { -"type": "string", -"description": "The unique identifier of this Space.", -"pattern": "^[a-zA-Z0-9]{1,13}$", -"example": "1SLjjRYNejbKM" -} -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/SpaceFieldsParameter" -}, -{ -"$ref": "#/components/parameters/SpaceExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TopicFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2SpacesResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/spaces/by/creator_ids": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"space.read", -"tweet.read", -"users.read" -] -} -], -"tags": [ -"Spaces" -], -"summary": "Get Spaces by creator IDs", -"description": "Retrieves details of Spaces created by specified User IDs.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids" -}, -"operationId": "getSpacesByCreatorIds", -"parameters": [ -{ -"name": "user_ids", -"in": "query", -"description": "The IDs of Users to search through.", -"required": true, -"schema": { -"type": "array", -"minItems": 1, -"maxItems": 100, -"items": { -"$ref": "#/components/schemas/UserId" -} -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/SpaceFieldsParameter" -}, -{ -"$ref": "#/components/parameters/SpaceExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TopicFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2SpacesByCreatorIdsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/spaces/search": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"space.read", -"tweet.read", -"users.read" -] -} -], -"tags": [ -"Spaces" -], -"summary": "Search Spaces", -"description": "Retrieves a list of Spaces matching the specified search query.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search" -}, -"operationId": "searchSpaces", -"parameters": [ -{ -"name": "query", -"in": "query", -"description": "The search query.", -"required": true, -"example": "crypto", -"schema": { -"type": "string", -"minLength": 1, -"maxLength": 2048, -"example": "crypto" -}, -"style": "form" -}, -{ -"name": "state", -"in": "query", -"description": "The state of Spaces to search for.", -"required": false, -"schema": { -"type": "string", -"enum": [ -"live", -"scheduled", -"all" -], -"default": "all" -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "The number of results to return.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/SpaceFieldsParameter" -}, -{ -"$ref": "#/components/parameters/SpaceExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TopicFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2SpacesSearchResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/spaces/{id}": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"space.read", -"tweet.read", -"users.read" -] -} -], -"tags": [ -"Spaces" -], -"summary": "Get space by ID", -"description": "Retrieves details of a specific space by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id" -}, -"operationId": "getSpacesById", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the Space to be retrieved.", -"required": true, -"example": "1YqKDqWqdPLsV", -"schema": { -"type": "string", -"description": "The unique identifier of this Space.", -"pattern": "^[a-zA-Z0-9]{1,13}$", -"example": "1SLjjRYNejbKM" -}, -"style": "simple" -}, -{ -"$ref": "#/components/parameters/SpaceFieldsParameter" -}, -{ -"$ref": "#/components/parameters/SpaceExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TopicFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2SpacesIdResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/spaces/{id}/buyers": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"space.read", -"tweet.read", -"users.read" -] -} -], -"tags": [ -"Spaces", -"Tweets" -], -"summary": "Get Space ticket buyers", -"description": "Retrieves a list of Users who purchased tickets to a specific Space by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers" -}, -"operationId": "getSpacesBuyers", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the Space to be retrieved.", -"required": true, -"example": "1YqKDqWqdPLsV", -"schema": { -"type": "string", -"description": "The unique identifier of this Space.", -"pattern": "^[a-zA-Z0-9]{1,13}$", -"example": "1SLjjRYNejbKM" -}, -"style": "simple" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken32" -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2SpacesIdBuyersResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/spaces/{id}/tweets": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"space.read", -"tweet.read", -"users.read" -] -} -], -"tags": [ -"Spaces", -"Tweets" -], -"summary": "Get Space Posts", -"description": "Retrieves a list of Posts shared in a specific Space by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets" -}, -"operationId": "getSpacesPosts", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the Space to be retrieved.", -"required": true, -"example": "1YqKDqWqdPLsV", -"schema": { -"type": "string", -"description": "The unique identifier of this Space.", -"pattern": "^[a-zA-Z0-9]{1,13}$", -"example": "1SLjjRYNejbKM" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The number of Posts to fetch from the provided space. If not provided, the value will default to the maximum of 100.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100, -"example": 25 -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2SpacesIdTweetsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/trends/by/woeid/{woeid}": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Trends" -], -"summary": "Get Trends by WOEID", -"description": "Retrieves trending topics for a specific location identified by its WOEID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/trends/api-reference/get-trends-by-woeid" -}, -"operationId": "getTrendsByWoeid", -"parameters": [ -{ -"name": "woeid", -"in": "path", -"description": "The WOEID of the place to lookup a trend for.", -"required": true, -"example": "2244994945", -"schema": { -"type": "integer", -"format": "int32" -}, -"style": "simple" -}, -{ -"name": "max_trends", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 50, -"format": "int32", -"default": 20 -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TrendFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TrendsByWoeidWoeidResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get Posts by IDs", -"description": "Retrieves details of multiple Posts by their IDs.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets" -}, -"operationId": "getPostsByIds", -"parameters": [ -{ -"name": "ids", -"in": "query", -"description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", -"required": true, -"schema": { -"type": "array", -"minItems": 1, -"maxItems": 100, -"items": { -"$ref": "#/components/schemas/TweetId" -} -}, -"explode": false, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read", -"tweet.write", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Create Post", -"description": "Creates a new Post for the authenticated user.", -"externalDocs": { -"url": "https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets" -}, -"operationId": "createPosts", -"parameters": [], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/TweetCreateRequest" -} -} -}, -"required": true -}, -"responses": { -"201": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/TweetCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/analytics": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get Post analytics", -"description": "Retrieves analytics data for specified Posts within a defined time range.", -"operationId": "getPostsAnalytics", -"parameters": [ -{ -"name": "ids", -"in": "query", -"description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", -"required": true, -"schema": { -"type": "array", -"minItems": 1, -"maxItems": 100, -"items": { -"$ref": "#/components/schemas/TweetId" -} -}, -"explode": false, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", -"required": true, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", -"required": true, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "granularity", -"in": "query", -"description": "The granularity for the search counts results.", -"required": true, -"schema": { -"type": "string", -"enum": [ -"hourly", -"daily", -"weekly", -"total" -], -"default": "total" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/AnalyticsFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Analytics" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/compliance/stream": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Compliance" -], -"summary": "Stream Posts compliance data", -"description": "Streams all compliance data related to Posts.", -"operationId": "streamPostsCompliance", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "partition", -"in": "query", -"description": "The partition number.", -"required": true, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 4, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post Compliance events will be provided.", -"required": false, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Post Compliance events will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/TweetComplianceStreamResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/tweets/counts/all": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get count of all Posts", -"description": "Retrieves the count of Posts matching a search query from the full archive.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" -}, -"operationId": "getPostsCountsAll", -"parameters": [ -{ -"name": "query", -"in": "query", -"description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", -"required": true, -"schema": { -"type": "string", -"minLength": 1, -"maxLength": 4096, -"example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", -"required": false, -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", -"required": false, -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "since_id", -"in": "query", -"description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", -"required": false, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "until_id", -"in": "query", -"description": "Returns results with a Post ID less than (that is, older than) the specified ID.", -"required": false, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "next_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "granularity", -"in": "query", -"description": "The granularity for the search counts results.", -"required": false, -"schema": { -"type": "string", -"enum": [ -"minute", -"hour", -"day" -], -"default": "hour" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/SearchCountFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsCountsAllResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/counts/recent": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get count of recent Posts", -"description": "Retrieves the count of Posts from the last 7 days matching a search query.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent" -}, -"operationId": "getPostsCountsRecent", -"parameters": [ -{ -"name": "query", -"in": "query", -"description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", -"required": true, -"schema": { -"type": "string", -"minLength": 1, -"maxLength": 4096, -"example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", -"required": false, -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", -"required": false, -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "since_id", -"in": "query", -"description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", -"required": false, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "until_id", -"in": "query", -"description": "Returns results with a Post ID less than (that is, older than) the specified ID.", -"required": false, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "next_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "granularity", -"in": "query", -"description": "The granularity for the search counts results.", -"required": false, -"schema": { -"type": "string", -"enum": [ -"minute", -"hour", -"day" -], -"default": "hour" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/SearchCountFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsCountsRecentResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/firehose/stream": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Tweets" -], -"summary": "Stream all Posts", -"description": "Streams all public Posts in real-time.", -"operationId": "streamPostsFirehose", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "partition", -"in": "query", -"description": "The partition number.", -"required": true, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 20, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/StreamingTweetResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/tweets/firehose/stream/lang/en": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Tweets" -], -"summary": "Stream English Posts", -"description": "Streams all public English-language Posts in real-time.", -"operationId": "streamPostsFirehoseEn", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "partition", -"in": "query", -"description": "The partition number.", -"required": true, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 8, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/StreamingTweetResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/tweets/firehose/stream/lang/ja": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Tweets" -], -"summary": "Stream Japanese Posts", -"description": "Streams all public Japanese-language Posts in real-time.", -"operationId": "streamPostsFirehoseJa", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "partition", -"in": "query", -"description": "The partition number.", -"required": true, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 2, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/StreamingTweetResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/tweets/firehose/stream/lang/ko": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Tweets" -], -"summary": "Stream Korean Posts", -"description": "Streams all public Korean-language Posts in real-time.", -"operationId": "streamPostsFirehoseKo", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "partition", -"in": "query", -"description": "The partition number.", -"required": true, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 2, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/StreamingTweetResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/tweets/firehose/stream/lang/pt": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Tweets" -], -"summary": "Stream Portuguese Posts", -"description": "Streams all public Portuguese-language Posts in real-time.", -"operationId": "streamPostsFirehosePt", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "partition", -"in": "query", -"description": "The partition number.", -"required": true, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 2, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/StreamingTweetResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/tweets/label/stream": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Compliance" -], -"summary": "Stream Post labels", -"description": "Streams all labeling events applied to Posts.", -"operationId": "streamLabelsCompliance", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post labels will be provided.", -"required": false, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Post labels will be provided.", -"required": false, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/TweetLabelStreamResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/tweets/sample/stream": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Tweets" -], -"summary": "Stream sampled Posts", -"description": "Streams a 1% sample of public Posts in real-time.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/api-reference/get-tweets-sample-stream" -}, -"operationId": "streamPostsSample", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/StreamingTweetResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/tweets/sample10/stream": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Tweets" -], -"summary": "Stream 10% sampled Posts", -"description": "Streams a 10% sample of public Posts in real-time.", -"operationId": "streamPostsSample10", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "partition", -"in": "query", -"description": "The partition number.", -"required": true, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 2, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsSample10StreamResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/tweets/search/all": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Search all Posts", -"description": "Retrieves Posts from the full archive matching a search query.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" -}, -"operationId": "searchPostsAll", -"parameters": [ -{ -"name": "query", -"in": "query", -"description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", -"required": true, -"schema": { -"type": "string", -"minLength": 1, -"maxLength": 4096, -"example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", -"required": false, -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", -"required": false, -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "since_id", -"in": "query", -"description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", -"required": false, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "until_id", -"in": "query", -"description": "Returns results with a Post ID less than (that is, older than) the specified ID.", -"required": false, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of search results to be returned by a request.", -"required": false, -"schema": { -"type": "integer", -"minimum": 10, -"maximum": 500, -"format": "int32", -"default": 10 -}, -"style": "form" -}, -{ -"name": "next_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "sort_order", -"in": "query", -"description": "This order in which to return results.", -"required": false, -"schema": { -"type": "string", -"enum": [ -"recency", -"relevancy" -] -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsSearchAllResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/search/recent": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Search recent Posts", -"description": "Retrieves Posts from the last 7 days matching a search query.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent" -}, -"operationId": "searchPostsRecent", -"parameters": [ -{ -"name": "query", -"in": "query", -"description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", -"required": true, -"schema": { -"type": "string", -"minLength": 1, -"maxLength": 4096, -"example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", -"required": false, -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", -"required": false, -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "since_id", -"in": "query", -"description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", -"required": false, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "until_id", -"in": "query", -"description": "Returns results with a Post ID less than (that is, older than) the specified ID.", -"required": false, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of search results to be returned by a request.", -"required": false, -"schema": { -"type": "integer", -"minimum": 10, -"maximum": 100, -"format": "int32", -"default": 10 -}, -"style": "form" -}, -{ -"name": "next_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "sort_order", -"in": "query", -"description": "This order in which to return results.", -"required": false, -"schema": { -"type": "string", -"enum": [ -"recency", -"relevancy" -] -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsSearchRecentResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/search/stream": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Tweets" -], -"summary": "Stream filtered Posts", -"description": "Streams Posts in real-time matching the active rule set.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream" -}, -"operationId": "streamPosts", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided.", -"required": false, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/FilteredStreamingTweetResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/tweets/search/stream/rules": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Tweets" -], -"summary": "Get stream rules", -"description": "Retrieves the active rule set or a subset of rules for the filtered stream.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules" -}, -"operationId": "getRules", -"parameters": [ -{ -"name": "ids", -"in": "query", -"description": "A comma-separated list of Rule IDs.", -"required": false, -"schema": { -"type": "array", -"items": { -"$ref": "#/components/schemas/RuleId" -} -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 1000, -"format": "int32", -"default": 1000 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This value is populated by passing the 'next_token' returned in a request to paginate through results.", -"required": false, -"schema": { -"type": "string", -"minLength": 16, -"maxLength": 16 -}, -"style": "form" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/RulesLookupResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Tweets" -], -"summary": "Update stream rules", -"description": "Adds or deletes rules from the active rule set for the filtered stream.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/post-tweets-search-stream-rules" -}, -"operationId": "updateRules", -"parameters": [ -{ -"name": "dry_run", -"in": "query", -"description": "Dry Run can be used with both the add and delete action, with the expected result given, but without actually taking any action in the system (meaning the end state will always be as it was when the request was submitted). This is particularly useful to validate rule changes.", -"required": false, -"schema": { -"type": "boolean" -}, -"style": "form" -}, -{ -"name": "delete_all", -"in": "query", -"description": "Delete All can be used to delete all of the rules associated this client app, it should be specified with no other parameters. Once deleted, rules cannot be recovered.", -"required": false, -"schema": { -"type": "boolean" -}, -"style": "form" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/AddOrDeleteRulesRequest" -} -} -}, -"required": true -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/AddOrDeleteRulesResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/search/stream/rules/counts": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Tweets" -], -"summary": "Get stream rule counts", -"description": "Retrieves the count of rules in the active rule set for the filtered stream.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules-counts" -}, -"operationId": "getRuleCounts", -"parameters": [ -{ -"$ref": "#/components/parameters/RulesCountFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsSearchStreamRulesCountsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/{id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read", -"tweet.write", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Delete Post", -"description": "Deletes a specific Post by its ID, if owned by the authenticated user.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id" -}, -"operationId": "deletePosts", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the Post to be deleted.", -"required": true, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/TweetDeleteResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get Post by ID", -"description": "Retrieves details of a specific Post by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id" -}, -"operationId": "getPostsById", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "A single Post ID.", -"required": true, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "simple" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsIdResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/{id}/liking_users": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"like.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get Liking Users", -"description": "Retrieves a list of Users who liked a specific Post by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-tweets-id-liking_users" -}, -"operationId": "getPostsLikingUsers", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "A single Post ID.", -"required": true, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsIdLikingUsersResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/{id}/quote_tweets": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get Quoted Posts", -"description": "Retrieves a list of Posts that quote a specific Post by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets" -}, -"operationId": "getPostsQuotedPosts", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "A single Post ID.", -"required": true, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results to be returned.", -"required": false, -"schema": { -"type": "integer", -"minimum": 10, -"maximum": 100, -"format": "int32", -"default": 10 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "exclude", -"in": "query", -"description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", -"required": false, -"schema": { -"type": "array", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"replies", -"retweets" -] -}, -"example": [ -"replies", -"retweets" -] -}, -"explode": false, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsIdQuoteTweetsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/{id}/retweeted_by": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get Reposted by", -"description": "Retrieves a list of Users who reposted a specific Post by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweeted_by" -}, -"operationId": "getPostsRepostedBy", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "A single Post ID.", -"required": true, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsIdRetweetedByResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/{id}/retweets": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get Reposts", -"description": "Retrieves a list of Posts that repost a specific Post by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets" -}, -"operationId": "getPostsReposts", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "A single Post ID.", -"required": true, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2TweetsIdRetweetsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/tweets/{tweet_id}/hidden": { -"put": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.moderate.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Hide reply", -"description": "Hides or unhides a reply to a conversation owned by the authenticated user.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden" -}, -"operationId": "hidePostsReply", -"parameters": [ -{ -"name": "tweet_id", -"in": "path", -"description": "The ID of the reply that you want to hide or unhide.", -"required": true, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/TweetHideRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/TweetHideResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/usage/tweets": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Usage" -], -"summary": "Get usage", -"description": "Retrieves usage statistics for Posts over a specified number of days.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets" -}, -"operationId": "getUsage", -"parameters": [ -{ -"name": "days", -"in": "query", -"description": "The number of days for which you need usage for.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 90, -"format": "int32", -"default": 7 -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UsageFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsageTweetsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get Users by IDs", -"description": "Retrieves details of multiple Users by their IDs.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users" -}, -"operationId": "getUsersByIds", -"parameters": [ -{ -"name": "ids", -"in": "query", -"description": "A list of User IDs, comma-separated. You can specify up to 100 IDs.", -"required": true, -"example": "2244994945,6253282,12", -"schema": { -"type": "array", -"minItems": 1, -"maxItems": 100, -"items": { -"$ref": "#/components/schemas/UserId" -} -}, -"explode": false, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/by": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get Users by usernames", -"description": "Retrieves details of multiple Users by their usernames.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by" -}, -"operationId": "getUsersByUsernames", -"parameters": [ -{ -"name": "usernames", -"in": "query", -"description": "A list of usernames, comma-separated.", -"required": true, -"schema": { -"type": "array", -"minItems": 1, -"maxItems": 100, -"items": { -"type": "string", -"description": "The X handle (screen name) of this User.", -"pattern": "^[A-Za-z0-9_]{1,15}$" -}, -"example": "TwitterDev,TwitterAPI" -}, -"explode": false, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersByResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/by/username/{username}": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get User by username", -"description": "Retrieves details of a specific User by their username.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username" -}, -"operationId": "getUsersByUsername", -"parameters": [ -{ -"name": "username", -"in": "path", -"description": "A username.", -"required": true, -"example": "TwitterDev", -"schema": { -"type": "string", -"pattern": "^[A-Za-z0-9_]{1,15}$" -}, -"style": "simple" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersByUsernameUsernameResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/compliance/stream": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Stream", -"Compliance" -], -"summary": "Stream Users compliance data", -"description": "Streams all compliance data related to Users.", -"operationId": "streamUsersCompliance", -"parameters": [ -{ -"name": "backfill_minutes", -"in": "query", -"description": "The number of minutes of backfill requested.", -"required": false, -"schema": { -"type": "integer", -"minimum": 0, -"maximum": 5, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "partition", -"in": "query", -"description": "The partition number.", -"required": true, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 4, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the User Compliance events will be provided.", -"required": false, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the User Compliance events will be provided.", -"required": false, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UserComplianceStreamResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"x-twitter-streaming": true -} -}, -"/2/users/me": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get my User", -"description": "Retrieves details of the authenticated user.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me" -}, -"operationId": "getMyUser", -"parameters": [ -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersMeResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/personalized_trends": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Trends" -], -"summary": "Get personalized Trends", -"description": "Retrieves personalized trending topics for the authenticated user.", -"externalDocs": { -"url": "https://developer.x.com/" -}, -"operationId": "getUsersPersonalizedTrends", -"parameters": [ -{ -"$ref": "#/components/parameters/PersonalizedTrendFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersPersonalizedTrendsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/reposts_of_me": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"timeline.read", -"tweet.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get Reposts of me", -"description": "Retrieves a list of Posts that repost content from the authenticated user.", -"operationId": "getUsersRepostsOfMe", -"parameters": [ -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersRepostsOfMeResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/search": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Search Users", -"description": "Retrieves a list of Users matching a search query.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-search" -}, -"operationId": "searchUsers", -"parameters": [ -{ -"name": "query", -"in": "query", -"description": "TThe the query string by which to query for users.", -"required": true, -"example": "someXUser", -"schema": { -"$ref": "#/components/schemas/UserSearchQueryVnext" -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 1000, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "next_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersSearchResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get User by ID", -"description": "Retrieves details of a specific User by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id" -}, -"operationId": "getUsersById", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the User to lookup.", -"required": true, -"example": "2244994945", -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/blocking": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"block.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get blocking", -"description": "Retrieves a list of Users blocked by the specified User ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking" -}, -"operationId": "getUsersBlocking", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User for whom to return results.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 1000, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken32" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdBlockingResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/bookmarks": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"bookmark.read", -"tweet.read", -"users.read" -] -} -], -"tags": [ -"Bookmarks" -], -"summary": "Get Bookmarks", -"description": "Retrieves a list of Posts bookmarked by the authenticated user.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks" -}, -"operationId": "getUsersBookmarks", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User for whom to return results.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdBookmarksResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"bookmark.write", -"tweet.read", -"users.read" -] -} -], -"tags": [ -"Bookmarks" -], -"summary": "Create Bookmark", -"description": "Adds a post to the authenticated user’s bookmarks.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks" -}, -"operationId": "createUsersBookmark", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User for whom to add bookmarks.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/BookmarkAddRequest" -} -} -}, -"required": true -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/BookmarkMutationResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/bookmarks/folders": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"bookmark.read", -"users.read" -] -} -], -"tags": [ -"Bookmarks" -], -"summary": "Get Bookmark folders", -"description": "Retrieves a list of Bookmark folders created by the authenticated user.", -"externalDocs": { -"url": "https://developer.x.com" -}, -"operationId": "getUsersBookmarkFolders", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User for whom to return results.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/BookmarkFoldersResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/bookmarks/folders/{folder_id}": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"bookmark.read", -"tweet.read", -"users.read" -] -} -], -"tags": [ -"Bookmarks" -], -"summary": "Get Bookmarks by folder ID", -"description": "Retrieves Posts in a specific Bookmark folder by its ID for the authenticated user.", -"externalDocs": { -"url": "https://developer.x.com" -}, -"operationId": "getUsersBookmarksByFolderId", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User for whom to return results.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "folder_id", -"in": "path", -"description": "The ID of the Bookmark Folder that the authenticated User is trying to fetch Posts for.", -"required": true, -"schema": { -"$ref": "#/components/schemas/BookmarkFolderId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/BookmarkFolderPostsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/bookmarks/{tweet_id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"bookmark.write", -"tweet.read", -"users.read" -] -} -], -"tags": [ -"Bookmarks" -], -"summary": "Delete Bookmark", -"description": "Removes a Post from the authenticated user’s Bookmarks by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id" -}, -"operationId": "deleteUsersBookmark", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User whose bookmark is to be removed.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "tweet_id", -"in": "path", -"description": "The ID of the Post that the source User is removing from bookmarks.", -"required": true, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/BookmarkMutationResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/dm/block": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Block DMs", -"description": "Blocks direct messages to or from a specific User by their ID for the authenticated user.", -"externalDocs": { -"url": "https://developer.x.com/" -}, -"operationId": "blockUsersDms", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the target User that the authenticated user requesting to block dms for.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UsersDMBlockCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/dm/unblock": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"dm.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Unblock DMs", -"description": "Unblocks direct messages to or from a specific User by their ID for the authenticated user.", -"externalDocs": { -"url": "https://developer.x.com/" -}, -"operationId": "unblockUsersDms", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the target User that the authenticated user requesting to unblock dms for.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UsersDMUnBlockCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/followed_lists": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"list.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Get followed Lists", -"description": "Retrieves a list of Lists followed by a specific User by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists" -}, -"operationId": "getUsersFollowedLists", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the User to lookup.", -"required": true, -"example": "2244994945", -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationTokenLong" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/ListFieldsParameter" -}, -{ -"$ref": "#/components/parameters/ListExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdFollowedListsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"list.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Follow List", -"description": "Causes the authenticated user to follow a specific List by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/post-users-id-followed-lists" -}, -"operationId": "followList", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User that will follow the List.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListFollowedRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListFollowedResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/followed_lists/{list_id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"list.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Unfollow List", -"description": "Causes the authenticated user to unfollow a specific List by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/delete-users-id-followed-lists-list_id" -}, -"operationId": "unfollowList", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User that will unfollow the List.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "list_id", -"in": "path", -"description": "The ID of the List to unfollow.", -"required": true, -"schema": { -"$ref": "#/components/schemas/ListId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListFollowedResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/followers": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"follows.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get followers", -"description": "Retrieves a list of Users who follow a specific User by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" -}, -"operationId": "getUsersFollowers", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the User to lookup.", -"required": true, -"example": "2244994945", -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 1000, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken32" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdFollowersResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/following": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"follows.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get following", -"description": "Retrieves a list of Users followed by a specific User by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following" -}, -"operationId": "getUsersFollowing", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the User to lookup.", -"required": true, -"example": "2244994945", -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 1000, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken32" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdFollowingResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"follows.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Follow User", -"description": "Causes the authenticated user to follow a specific user by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following" -}, -"operationId": "followUser", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User that is requesting to follow the target User.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UsersFollowingCreateRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UsersFollowingCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/liked_tweets": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"like.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get liked Posts", -"description": "Retrieves a list of Posts liked by a specific User by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets" -}, -"operationId": "getUsersLikedPosts", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the User to lookup.", -"required": true, -"example": "2244994945", -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 5, -"maximum": 100, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdLikedTweetsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/likes": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"like.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Like Post", -"description": "Causes the authenticated user to Like a specific Post by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-id-likes" -}, -"operationId": "likePost", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User that is requesting to like the Post.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UsersLikesCreateRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UsersLikesCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/likes/{tweet_id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"like.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Unlike Post", -"description": "Causes the authenticated user to Unlike a specific Post by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id" -}, -"operationId": "unlikePost", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User that is requesting to unlike the Post.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "tweet_id", -"in": "path", -"description": "The ID of the Post that the User is requesting to unlike.", -"required": true, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UsersLikesDeleteResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/list_memberships": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"list.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Get List memberships", -"description": "Retrieves a list of Lists that a specific User is a member of by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" -}, -"operationId": "getUsersListMemberships", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the User to lookup.", -"required": true, -"example": "2244994945", -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationTokenLong" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/ListFieldsParameter" -}, -{ -"$ref": "#/components/parameters/ListExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdListMembershipsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/mentions": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get mentions", -"description": "Retrieves a list of Posts that mention a specific User by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions" -}, -"operationId": "getUsersMentions", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the User to lookup.", -"required": true, -"example": "2244994945", -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -}, -{ -"name": "since_id", -"in": "query", -"description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", -"required": false, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "until_id", -"in": "query", -"description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", -"required": false, -"example": "1346889436626259968", -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 5, -"maximum": 100, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", -"required": false, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdMentionsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/muting": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"mute.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Get muting", -"description": "Retrieves a list of Users muted by the authenticated user.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting" -}, -"operationId": "getUsersMuting", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User for whom to return results.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 1000, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationTokenLong" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdMutingResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"mute.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Mute User", -"description": "Causes the authenticated user to mute a specific User by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting" -}, -"operationId": "muteUser", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User that is requesting to mute the target User.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MuteUserRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MuteUserMutationResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/owned_lists": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"list.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Get owned Lists", -"description": "Retrieves a list of Lists owned by a specific User by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists" -}, -"operationId": "getUsersOwnedLists", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the User to lookup.", -"required": true, -"example": "2244994945", -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32", -"default": 100 -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get a specified 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationTokenLong" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/ListFieldsParameter" -}, -{ -"$ref": "#/components/parameters/ListExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdOwnedListsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/pinned_lists": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"list.read", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Get pinned Lists", -"description": "Retrieves a list of Lists pinned by the authenticated user.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/get-users-id-pinned_lists" -}, -"operationId": "getUsersPinnedLists", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User for whom to return results.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"$ref": "#/components/parameters/ListFieldsParameter" -}, -{ -"$ref": "#/components/parameters/ListExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdPinnedListsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"list.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Pin List", -"description": "Causes the authenticated user to pin a specific List by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/post-users-id-pinned-lists" -}, -"operationId": "pinList", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User that will pin the List.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListPinnedRequest" -} -} -}, -"required": true -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListPinnedResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/pinned_lists/{list_id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"list.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Lists" -], -"summary": "Unpin List", -"description": "Causes the authenticated user to unpin a specific List by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/delete-users-id-pinned-lists-list_id" -}, -"operationId": "unpinList", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User for whom to return results.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "list_id", -"in": "path", -"description": "The ID of the List to unpin.", -"required": true, -"schema": { -"$ref": "#/components/schemas/ListId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/ListUnpinResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/retweets": { -"post": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read", -"tweet.write", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Repost Post", -"description": "Causes the authenticated user to repost a specific Post by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets" -}, -"operationId": "repostPost", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User that is requesting to repost the Post.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -} -], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UsersRetweetsCreateRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UsersRetweetsCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/retweets/{source_tweet_id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read", -"tweet.write", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Unrepost Post", -"description": "Causes the authenticated user to unrepost a specific Post by its ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id" -}, -"operationId": "unrepostPost", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User that is requesting to repost the Post.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "source_tweet_id", -"in": "path", -"description": "The ID of the Post that the User is requesting to unretweet.", -"required": true, -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UsersRetweetsDeleteResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/timelines/reverse_chronological": { -"get": { -"security": [ -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get Timeline", -"description": "Retrieves a reverse chronological list of Posts in the authenticated User’s Timeline.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological" -}, -"operationId": "getUsersTimeline", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the authenticated source User to list Reverse Chronological Timeline Posts of.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "since_id", -"in": "query", -"description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", -"required": false, -"example": "791775337160081409", -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "until_id", -"in": "query", -"description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", -"required": false, -"example": "1346889436626259968", -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 1, -"maximum": 100, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "exclude", -"in": "query", -"description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", -"required": false, -"schema": { -"type": "array", -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"replies", -"retweets" -] -}, -"example": [ -"replies", -"retweets" -] -}, -"explode": false, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", -"required": false, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdTimelinesReverseChronologicalResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{id}/tweets": { -"get": { -"security": [ -{ -"BearerToken": [] -}, -{ -"OAuth2UserToken": [ -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Tweets" -], -"summary": "Get Posts", -"description": "Retrieves a list of posts authored by a specific User by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets" -}, -"operationId": "getUsersPosts", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "The ID of the User to lookup.", -"required": true, -"example": "2244994945", -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -}, -{ -"name": "since_id", -"in": "query", -"description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", -"required": false, -"example": "791775337160081409", -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "until_id", -"in": "query", -"description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", -"required": false, -"example": "1346889436626259968", -"schema": { -"$ref": "#/components/schemas/TweetId" -}, -"style": "form" -}, -{ -"name": "max_results", -"in": "query", -"description": "The maximum number of results.", -"required": false, -"schema": { -"type": "integer", -"minimum": 5, -"maximum": 100, -"format": "int32" -}, -"style": "form" -}, -{ -"name": "pagination_token", -"in": "query", -"description": "This parameter is used to get the next 'page' of results.", -"required": false, -"schema": { -"$ref": "#/components/schemas/PaginationToken36" -}, -"style": "form" -}, -{ -"name": "exclude", -"in": "query", -"description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", -"required": false, -"schema": { -"type": "array", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"replies", -"retweets" -] -}, -"example": [ -"replies", -"retweets" -] -}, -"explode": false, -"style": "form" -}, -{ -"name": "start_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", -"required": false, -"example": "2021-02-01T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"name": "end_time", -"in": "query", -"description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", -"required": false, -"example": "2021-02-14T18:40:40.000Z", -"schema": { -"type": "string", -"format": "date-time" -}, -"style": "form" -}, -{ -"$ref": "#/components/parameters/TweetFieldsParameter" -}, -{ -"$ref": "#/components/parameters/TweetExpansionsParameter" -}, -{ -"$ref": "#/components/parameters/MediaFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PollFieldsParameter" -}, -{ -"$ref": "#/components/parameters/UserFieldsParameter" -}, -{ -"$ref": "#/components/parameters/PlaceFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2UsersIdTweetsResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{source_user_id}/following/{target_user_id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"follows.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Unfollow User", -"description": "Causes the authenticated user to unfollow a specific user by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following" -}, -"operationId": "unfollowUser", -"parameters": [ -{ -"name": "source_user_id", -"in": "path", -"description": "The ID of the authenticated source User that is requesting to unfollow the target User.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "target_user_id", -"in": "path", -"description": "The ID of the User that the source User is requesting to unfollow.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/UsersFollowingDeleteResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/users/{source_user_id}/muting/{target_user_id}": { -"delete": { -"security": [ -{ -"OAuth2UserToken": [ -"mute.write", -"tweet.read", -"users.read" -] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Users" -], -"summary": "Unmute User", -"description": "Causes the authenticated user to unmute a specific user by their ID.", -"externalDocs": { -"url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting" -}, -"operationId": "unmuteUser", -"parameters": [ -{ -"name": "source_user_id", -"in": "path", -"description": "The ID of the authenticated source User that is requesting to unmute the target User.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" -}, -"style": "simple" -}, -{ -"name": "target_user_id", -"in": "path", -"description": "The ID of the User that the source User is requesting to unmute.", -"required": true, -"schema": { -"$ref": "#/components/schemas/UserId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/MuteUserMutationResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/webhooks": { -"get": { -"security": [ -{ -"BearerToken": [] -} -], -"tags": [ -"Webhooks" -], -"summary": "Get webhook", -"description": "Get a list of webhook configs associated with a client app.", -"externalDocs": { -"url": "https://docs.x.com/x-api/webhooks/introduction" -}, -"operationId": "getWebhooks", -"parameters": [ -{ -"$ref": "#/components/parameters/WebhookConfigFieldsParameter" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Get2WebhooksResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"post": { -"security": [ -{ -"BearerToken": [] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Webhooks" -], -"summary": "Create webhook", -"description": "Creates a new webhook configuration.", -"externalDocs": { -"url": "https://docs.x.com/x-api/webhooks/introduction" -}, -"operationId": "createWebhooks", -"parameters": [], -"requestBody": { -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/WebhookConfigCreateRequest" -} -} -} -}, -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/WebhookConfigCreateResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -}, -"/2/webhooks/{webhook_id}": { -"delete": { -"security": [ -{ -"BearerToken": [] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Webhooks" -], -"summary": "Delete webhook", -"description": "Deletes an existing webhook configuration.", -"externalDocs": { -"url": "https://docs.x.com/x-api/webhooks/introduction" -}, -"operationId": "deleteWebhooks", -"parameters": [ -{ -"name": "webhook_id", -"in": "path", -"description": "The ID of the webhook to delete.", -"required": true, -"schema": { -"$ref": "#/components/schemas/WebhookConfigId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/WebhookConfigDeleteResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -}, -"put": { -"security": [ -{ -"BearerToken": [] -}, -{ -"UserToken": [] -} -], -"tags": [ -"Webhooks" -], -"summary": "Validate webhook", -"description": "Triggers a CRC check for a given webhook.", -"externalDocs": { -"url": "https://docs.x.com/x-api/webhooks/introduction" -}, -"operationId": "validateWebhooks", -"parameters": [ -{ -"name": "webhook_id", -"in": "path", -"description": "The ID of the webhook to check.", -"required": true, -"schema": { -"$ref": "#/components/schemas/WebhookConfigId" -}, -"style": "simple" -} -], -"responses": { -"200": { -"description": "The request has succeeded.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/WebhookConfigPutResponse" -} -} -} -}, -"default": { -"description": "The request has failed.", -"content": { -"application/json": { -"schema": { -"$ref": "#/components/schemas/Error" -} -}, -"application/problem+json": { -"schema": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -} -} -} -}, -"servers": [ -{ -"description": "X API", -"url": "https://api.x.com" -} -], -"tags": [ -{ -"name": "Account Activity", -"description": "Endpoints relating to retrieving, managing AAA subscriptions", -"externalDocs": { -"description": "Find out more", -"url": "https://docs.x.com/x-api/enterprise-gnip-2.0/fundamentals/account-activity" -} -}, -{ -"name": "Bookmarks", -"description": "Endpoints related to retrieving, managing bookmarks of a user", -"externalDocs": { -"description": "Find out more", -"url": "https://developer.twitter.com/en/docs/twitter-api/bookmarks" -} -}, -{ -"name": "Compliance", -"description": "Endpoints related to keeping X data in your systems compliant", -"externalDocs": { -"description": "Find out more", -"url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-tweet/introduction" -} -}, -{ -"name": "Direct Messages", -"description": "Endpoints related to retrieving, managing Direct Messages", -"externalDocs": { -"description": "Find out more", -"url": "https://developer.twitter.com/en/docs/twitter-api/direct-messages" -} -}, -{ -"name": "General", -"description": "Miscellaneous endpoints for general API functionality", -"externalDocs": { -"description": "Find out more", -"url": "https://developer.twitter.com/en/docs/twitter-api" -} -}, -{ -"name": "Lists", -"description": "Endpoints related to retrieving, managing Lists", -"externalDocs": { -"description": "Find out more", -"url": "https://developer.twitter.com/en/docs/twitter-api/lists" -} -}, -{ -"name": "Media", -"description": "Endpoints related to Media", -"externalDocs": { -"description": "Find out more", -"url": "https://developer.x.com" -} -}, -{ -"name": "MediaUpload", -"description": "Endpoints related to uploading Media", -"externalDocs": { -"description": "Find out more", -"url": "https://developer.x.com" -} -}, -{ -"name": "Spaces", -"description": "Endpoints related to retrieving, managing Spaces", -"externalDocs": { -"description": "Find out more", -"url": "https://developer.twitter.com/en/docs/twitter-api/spaces" -} -}, -{ -"name": "Stream", -"description": "Endpoints related to streaming", -"externalDocs": { -"description": "Find out more", -"url": "https://developer.x.com" -} -}, -{ -"name": "Tweets", -"description": "Endpoints related to retrieving, searching, and modifying Tweets", -"externalDocs": { -"description": "Find out more", -"url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup" -} -}, -{ -"name": "Users", -"description": "Endpoints related to retrieving, managing relationships of Users", -"externalDocs": { -"description": "Find out more", -"url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup" -} -} -], -"components": { -"securitySchemes": { -"BearerToken": { -"type": "http", -"scheme": "bearer" -}, -"OAuth2UserToken": { -"type": "oauth2", -"flows": { -"authorizationCode": { -"authorizationUrl": "https://api.x.com/2/oauth2/authorize", -"tokenUrl": "https://api.x.com/2/oauth2/token", -"scopes": { -"block.read": "View accounts you have blocked.", -"bookmark.read": "Read your bookmarked Posts.", -"bookmark.write": "Create and delete your bookmarks.", -"dm.read": "Read all your Direct Messages.", -"dm.write": "Send and manage your Direct Messages.", -"follows.read": "View accounts you follow and accounts following you.", -"follows.write": "Follow and unfollow accounts on your behalf.", -"like.read": "View Posts you have liked and likes you can see.", -"like.write": "Like and unlike Posts on your behalf.", -"list.read": "View Lists, members, and followers of Lists you created or are a member of, including private Lists.", -"list.write": "Create and manage Lists on your behalf.", -"media.write": "Upload media, such as photos and videos, on your behalf.", -"mute.read": "View accounts you have muted.", -"mute.write": "Mute and unmute accounts on your behalf.", -"offline.access": "Request a refresh token for the app.", -"space.read": "View all Spaces you have access to.", -"timeline.read": "View all Custom Timelines you can see, including public Custom Timelines from other developers.", -"tweet.moderate.write": "Hide and unhide replies to your Posts.", -"tweet.read": "View all Posts you can see, including those from protected accounts.", -"tweet.write": "Post and repost on your behalf.", -"users.read": "View any account you can see, including protected accounts." -} -} -} -}, -"UserToken": { -"type": "http", -"scheme": "OAuth" -} -}, -"schemas": { -"AddOrDeleteRulesRequest": { -"oneOf": [ -{ -"$ref": "#/components/schemas/AddRulesRequest" -}, -{ -"$ref": "#/components/schemas/DeleteRulesRequest" -} -] -}, -"AddOrDeleteRulesResponse": { -"type": "object", -"description": "A response from modifying user-specified stream filtering rules.", -"required": [ -"meta" -], -"properties": { -"data": { -"type": "array", -"description": "All user-specified stream filtering rules that were created.", -"items": { -"$ref": "#/components/schemas/Rule" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"meta": { -"$ref": "#/components/schemas/RulesResponseMetadata" -} -} -}, -"AddRulesRequest": { -"type": "object", -"description": "A request to add a user-specified stream filtering rule.", -"required": [ -"add" -], -"properties": { -"add": { -"type": "array", -"items": { -"$ref": "#/components/schemas/RuleNoId" -} -} -} -}, -"Aggregate": { -"type": "integer", -"description": "The sum of results returned in this response.", -"format": "int32" -}, -"AllProjectClientApps": { -"type": "array", -"description": "Client App Rule Counts for all applications in the project", -"items": { -"$ref": "#/components/schemas/AppRulesCount" -} -}, -"AllowDownloadStatus": { -"type": "object", -"properties": { -"allow_download": { -"type": "boolean", -"example": true -} -} -}, -"AltText": { -"type": "object", -"properties": { -"text": { -"type": "string", -"description": "Description of media ( <= 1000 characters )", -"maxLength": 1000, -"example": "A dancing cat" -} -} -}, -"Analytics": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"id": { -"$ref": "#/components/schemas/TweetId" -}, -"timestamped_metrics": { -"type": "array", -"title": "Timestamped Metrics", -"description": "Array containing metrics data along with the timestamps of their recording.", -"items": { -"$ref": "#/components/schemas/TimestampedMetrics" -} -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"AnimatedGif": { -"allOf": [ -{ -"$ref": "#/components/schemas/Media" -}, -{ -"type": "object", -"properties": { -"preview_image_url": { -"type": "string", -"format": "uri" -}, -"variants": { -"$ref": "#/components/schemas/Variants" -} -} -} -] -}, -"AppRulesCount": { -"type": "object", -"description": "A count of user-provided stream filtering rules at the client application level.", -"properties": { -"client_app_id": { -"$ref": "#/components/schemas/ClientAppId" -}, -"rule_count": { -"type": "integer", -"description": "Number of rules for client application", -"format": "int32" -} -} -}, -"AudiencePolicy": { -"type": "object", -"properties": { -"creator_subscriptions": { -"type": "array", -"items": { -"type": "string", -"enum": [ -"Any" -] -} -}, -"x_subscriptions": { -"type": "array", -"items": { -"type": "string", -"enum": [ -"Any" -] -} -} -} -}, -"BookmarkAddRequest": { -"type": "object", -"required": [ -"tweet_id" -], -"properties": { -"tweet_id": { -"$ref": "#/components/schemas/TweetId" -} -} -}, -"BookmarkFolderId": { -"type": "string", -"description": "The unique identifier of this Bookmark folder.", -"pattern": "^[0-9]{1,19}$", -"example": "1146654567674912769" -}, -"BookmarkFolderPostsResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"id": { -"$ref": "#/components/schemas/TweetId" -} -} -} -} -}, -"BookmarkFoldersResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"id": { -"$ref": "#/components/schemas/BookmarkFolderId" -}, -"name": { -"type": "string" -} -} -} -} -}, -"BookmarkMutationResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"bookmarked": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"CashtagEntity": { -"allOf": [ -{ -"$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" -}, -{ -"$ref": "#/components/schemas/CashtagFields" -} -] -}, -"CashtagFields": { -"type": "object", -"description": "Represent the portion of text recognized as a Cashtag, and its start and end position within the text.", -"required": [ -"tag" -], -"properties": { -"tag": { -"type": "string", -"example": "TWTR" -} -} -}, -"ClientAppId": { -"type": "string", -"description": "The ID of the client application", -"minLength": 1, -"maxLength": 19 -}, -"ClientAppUsage": { -"type": "object", -"description": "Usage per client app", -"properties": { -"client_app_id": { -"type": "string", -"description": "The unique identifier for this project", -"format": "^[0-9]{1,19}$" -}, -"usage": { -"type": "array", -"description": "The usage value", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/UsageFields" -} -}, -"usage_result_count": { -"type": "integer", -"description": "The number of results returned", -"format": "int32" -} -} -}, -"ClientDisconnectedProblem": { -"description": "Your client has gone away.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -} -] -}, -"ClientForbiddenProblem": { -"description": "A problem that indicates your client is forbidden from making this request.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -}, -{ -"type": "object", -"properties": { -"reason": { -"type": "string", -"enum": [ -"official-client-forbidden", -"client-not-enrolled" -] -}, -"registration_url": { -"type": "string", -"format": "uri" -} -} -} -] -}, -"Community": { -"type": "object", -"description": "A X Community is a curated group of Posts.", -"required": [ -"id", -"name" -], -"properties": { -"created_at": { -"type": "string", -"format": "date-time" -}, -"id": { -"$ref": "#/components/schemas/CommunityId" -}, -"name": { -"type": "string", -"description": "The name of this Community." -} -} -}, -"CommunityId": { -"type": "string", -"description": "The unique identifier of this Community.", -"pattern": "^[0-9]{1,19}$", -"example": "1146654567674912769" -}, -"ComplianceJob": { -"type": "object", -"required": [ -"id", -"type", -"created_at", -"upload_url", -"download_url", -"upload_expires_at", -"download_expires_at", -"status" -], -"properties": { -"created_at": { -"$ref": "#/components/schemas/CreatedAt" -}, -"download_expires_at": { -"$ref": "#/components/schemas/DownloadExpiration" -}, -"download_url": { -"$ref": "#/components/schemas/DownloadUrl" -}, -"id": { -"$ref": "#/components/schemas/JobId" -}, -"name": { -"$ref": "#/components/schemas/ComplianceJobName" -}, -"status": { -"$ref": "#/components/schemas/ComplianceJobStatus" -}, -"type": { -"$ref": "#/components/schemas/ComplianceJobType" -}, -"upload_expires_at": { -"$ref": "#/components/schemas/UploadExpiration" -}, -"upload_url": { -"$ref": "#/components/schemas/UploadUrl" -} -} -}, -"ComplianceJobName": { -"type": "string", -"description": "User-provided name for a compliance job.", -"maxLength": 64, -"example": "my-job" -}, -"ComplianceJobStatus": { -"type": "string", -"description": "Status of a compliance job.", -"enum": [ -"created", -"in_progress", -"failed", -"complete", -"expired" -] -}, -"ComplianceJobType": { -"type": "string", -"description": "Type of compliance job to list.", -"enum": [ -"tweets", -"users" -] -}, -"ConflictProblem": { -"description": "You cannot create a new job if one is already in progress.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -} -] -}, -"ConnectionExceptionProblem": { -"description": "A problem that indicates something is wrong with the connection.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -}, -{ -"type": "object", -"properties": { -"connection_issue": { -"type": "string", -"enum": [ -"TooManyConnections", -"ProvisioningSubscription", -"RuleConfigurationIssue", -"RulesInvalidIssue" -] -} -} -} -] -}, -"ContentExpiration": { -"type": "object", -"properties": { -"timestamp_sec": { -"type": "number", -"description": "Expiration time for content as a Unix timestamp in seconds", -"format": "long", -"example": 1740787200 -} -} -}, -"ContextAnnotation": { -"type": "object", -"description": "Annotation inferred from the Tweet text.", -"required": [ -"domain", -"entity" -], -"properties": { -"domain": { -"$ref": "#/components/schemas/ContextAnnotationDomainFields" -}, -"entity": { -"$ref": "#/components/schemas/ContextAnnotationEntityFields" -} -} -}, -"ContextAnnotationDomainFields": { -"type": "object", -"description": "Represents the data for the context annotation domain.", -"required": [ -"id" -], -"properties": { -"description": { -"type": "string", -"description": "Description of the context annotation domain." -}, -"id": { -"type": "string", -"description": "The unique id for a context annotation domain.", -"pattern": "^[0-9]{1,19}$" -}, -"name": { -"type": "string", -"description": "Name of the context annotation domain." -} -} -}, -"ContextAnnotationEntityFields": { -"type": "object", -"description": "Represents the data for the context annotation entity.", -"required": [ -"id" -], -"properties": { -"description": { -"type": "string", -"description": "Description of the context annotation entity." -}, -"id": { -"type": "string", -"description": "The unique id for a context annotation entity.", -"pattern": "^[0-9]{1,19}$" -}, -"name": { -"type": "string", -"description": "Name of the context annotation entity." -} -} -}, -"CountryCode": { -"type": "string", -"description": "A two-letter ISO 3166-1 alpha-2 country code.", -"pattern": "^[A-Z]{2}$", -"example": "US" -}, -"CreateAttachmentsMessageRequest": { -"type": "object", -"required": [ -"attachments" -], -"properties": { -"attachments": { -"$ref": "#/components/schemas/DmAttachments" -}, -"text": { -"type": "string", -"description": "Text of the message.", -"minLength": 1 -} -} -}, -"CreateComplianceJobRequest": { -"type": "object", -"description": "A request to create a new batch compliance job.", -"required": [ -"type" -], -"properties": { -"name": { -"$ref": "#/components/schemas/ComplianceJobName" -}, -"resumable": { -"type": "boolean", -"description": "If true, this endpoint will return a pre-signed URL with resumable uploads enabled." -}, -"type": { -"type": "string", -"description": "Type of compliance job to list.", -"enum": [ -"tweets", -"users" -] -} -} -}, -"CreateComplianceJobResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/ComplianceJob" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"CreateDmConversationRequest": { -"type": "object", -"required": [ -"conversation_type", -"participant_ids", -"message" -], -"properties": { -"conversation_type": { -"type": "string", -"description": "The conversation type that is being created.", -"enum": [ -"Group" -] -}, -"message": { -"$ref": "#/components/schemas/CreateMessageRequest" -}, -"participant_ids": { -"$ref": "#/components/schemas/DmParticipants" -} -}, -"additionalProperties": false -}, -"CreateDmEventResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"required": [ -"dm_conversation_id", -"dm_event_id" -], -"properties": { -"dm_conversation_id": { -"$ref": "#/components/schemas/DmConversationId" -}, -"dm_event_id": { -"$ref": "#/components/schemas/DmEventId" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"CreateMessageRequest": { -"anyOf": [ -{ -"$ref": "#/components/schemas/CreateTextMessageRequest" -}, -{ -"$ref": "#/components/schemas/CreateAttachmentsMessageRequest" -} -] -}, -"CreateNoteRequest": { -"type": "object", -"title": "Note", -"required": [ -"test_mode", -"post_id", -"info" -], -"properties": { -"info": { -"$ref": "#/components/schemas/NoteInfo" -}, -"post_id": { -"$ref": "#/components/schemas/TweetId" -}, -"test_mode": { -"type": "boolean", -"description": "If true, the note being submitted is only for testing the capability of the bot, and won't be publicly visible. If false, the note being submitted will be a new proposed note on the product." -} -}, -"additionalProperties": false -}, -"CreateNoteResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"id": { -"$ref": "#/components/schemas/NoteId" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"CreateTextMessageRequest": { -"type": "object", -"required": [ -"text" -], -"properties": { -"attachments": { -"$ref": "#/components/schemas/DmAttachments" -}, -"text": { -"type": "string", -"description": "Text of the message.", -"minLength": 1 -} -} -}, -"CreatedAt": { -"type": "string", -"description": "Creation time of the compliance job.", -"format": "date-time", -"example": "2021-01-06T18:40:40.000Z" -}, -"DeleteDmResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"deleted": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"DeleteNoteResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"required": [ -"deleted" -], -"properties": { -"deleted": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"DeleteRulesRequest": { -"type": "object", -"description": "A response from deleting user-specified stream filtering rules.", -"required": [ -"delete" -], -"properties": { -"delete": { -"type": "object", -"description": "IDs and values of all deleted user-specified stream filtering rules.", -"properties": { -"ids": { -"type": "array", -"description": "IDs of all deleted user-specified stream filtering rules.", -"items": { -"$ref": "#/components/schemas/RuleId" -} -}, -"values": { -"type": "array", -"description": "Values of all deleted user-specified stream filtering rules.", -"items": { -"$ref": "#/components/schemas/RuleValue" -} -} -} -} -} -}, -"DisallowedResourceProblem": { -"description": "A problem that indicates that the resource requested violates the precepts of this API.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -}, -{ -"type": "object", -"required": [ -"resource_id", -"resource_type", -"section" -], -"properties": { -"resource_id": { -"type": "string" -}, -"resource_type": { -"type": "string", -"enum": [ -"user", -"tweet", -"media", -"list", -"space" -] -}, -"section": { -"type": "string", -"enum": [ -"data", -"includes" -] -} -} -} -] -}, -"DisplayTextRange": { -"type": "array", -"description": "Represent a boundary range (start and end zero-based indices) for the portion of text that is displayed for a post. `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", -"minItems": 2, -"maxItems": 2, -"items": { -"type": "integer", -"minimum": 0 -} -}, -"DmAttachments": { -"type": "array", -"description": "Attachments to a DM Event.", -"items": { -"$ref": "#/components/schemas/DmMediaAttachment" -} -}, -"DmConversationId": { -"type": "string", -"description": "Unique identifier of a DM conversation. This can either be a numeric string, or a pair of numeric strings separated by a '-' character in the case of one-on-one DM Conversations.", -"pattern": "^([0-9]{1,19}-[0-9]{1,19}|[0-9]{15,19})$", -"example": "123123123-456456456" -}, -"DmEvent": { -"type": "object", -"required": [ -"id", -"event_type" -], -"properties": { -"attachments": { -"type": "object", -"description": "Specifies the type of attachments (if any) present in this DM.", -"properties": { -"card_ids": { -"type": "array", -"description": "A list of card IDs (if cards are attached).", -"minItems": 1, -"items": { -"type": "string" -} -}, -"media_keys": { -"type": "array", -"description": "A list of Media Keys for each one of the media attachments (if media are attached).", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/MediaKey" -} -} -} -}, -"cashtags": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/CashtagEntity" -} -}, -"created_at": { -"type": "string", -"format": "date-time" -}, -"dm_conversation_id": { -"$ref": "#/components/schemas/DmConversationId" -}, -"event_type": { -"type": "string", -"example": "MessageCreate" -}, -"hashtags": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/HashtagEntity" -} -}, -"id": { -"$ref": "#/components/schemas/DmEventId" -}, -"mentions": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/MentionEntity" -} -}, -"participant_ids": { -"type": "array", -"description": "A list of participants for a ParticipantsJoin or ParticipantsLeave event_type.", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/UserId" -} -}, -"referenced_tweets": { -"type": "array", -"description": "A list of Posts this DM refers to.", -"minItems": 1, -"items": { -"type": "object", -"required": [ -"id" -], -"properties": { -"id": { -"$ref": "#/components/schemas/TweetId" -} -} -} -}, -"sender_id": { -"$ref": "#/components/schemas/UserId" -}, -"text": { -"type": "string" -}, -"urls": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/UrlEntityDm" -} -} -} -}, -"DmEventId": { -"type": "string", -"description": "Unique identifier of a DM Event.", -"pattern": "^[0-9]{1,19}$", -"example": "1146654567674912769" -}, -"DmMediaAttachment": { -"type": "object", -"required": [ -"media_id" -], -"properties": { -"media_id": { -"$ref": "#/components/schemas/MediaId" -} -} -}, -"DmParticipants": { -"type": "array", -"description": "Participants for the DM Conversation.", -"minItems": 2, -"maxItems": 49, -"items": { -"$ref": "#/components/schemas/UserId" -} -}, -"DomainRestrictions": { -"type": "object", -"properties": { -"whitelist": { -"type": "array", -"description": "List of whitelisted domains", -"items": { -"type": "string" -} -} -} -}, -"DownloadExpiration": { -"type": "string", -"description": "Expiration time of the download URL.", -"format": "date-time", -"example": "2021-01-06T18:40:40.000Z" -}, -"DownloadUrl": { -"type": "string", -"description": "URL from which the user will retrieve their compliance results.", -"format": "uri" -}, -"DuplicateRuleProblem": { -"description": "The rule you have submitted is a duplicate.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -}, -{ -"type": "object", -"properties": { -"id": { -"type": "string" -}, -"value": { -"type": "string" -} -} -} -] -}, -"End": { -"type": "string", -"description": "The end time of the bucket.", -"format": "date-time" -}, -"Engagement": { -"type": "object", -"description": "An Engagement Api Response.", -"properties": { -"errors": { -"type": "array", -"minItems": 1, -"items": { -"type": "object", -"properties": { -"error": { -"type": "string" -}, -"tweets": { -"type": "array", -"items": { -"type": "string" -} -} -} -} -}, -"measurement": { -"type": "object", -"properties": { -"metrics_time_series": { -"type": "array", -"minItems": 1, -"items": { -"type": "object", -"properties": { -"tweet_id": { -"$ref": "#/components/schemas/TweetId" -}, -"value": { -"type": "object", -"properties": { -"metric_values": { -"type": "array", -"items": { -"type": "object", -"properties": { -"metric_type": { -"type": "string" -}, -"metric_value": { -"type": "number" -} -} -} -}, -"timestamp": { -"type": "object", -"properties": { -"iso8601_time": { -"type": "string" -} -} -} -} -} -} -} -}, -"metrics_total": { -"type": "array", -"minItems": 1, -"items": { -"type": "object", -"properties": { -"tweet_id": { -"$ref": "#/components/schemas/TweetId" -}, -"value": { -"type": "array", -"minItems": 1, -"items": { -"type": "object", -"properties": { -"metric_type": { -"type": "string" -}, -"metric_value": { -"type": "number" -} -} -} -} -} -} -} -} -} -} -}, -"EntityIndicesInclusiveExclusive": { -"type": "object", -"description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", -"required": [ -"start", -"end" -], -"properties": { -"end": { -"type": "integer", -"description": "Index (zero-based) at which position this entity ends. The index is exclusive.", -"minimum": 0, -"example": 61 -}, -"start": { -"type": "integer", -"description": "Index (zero-based) at which position this entity starts. The index is inclusive.", -"minimum": 0, -"example": 50 -} -} -}, -"EntityIndicesInclusiveInclusive": { -"type": "object", -"description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is inclusive.", -"required": [ -"start", -"end" -], -"properties": { -"end": { -"type": "integer", -"description": "Index (zero-based) at which position this entity ends. The index is inclusive.", -"minimum": 0, -"example": 61 -}, -"start": { -"type": "integer", -"description": "Index (zero-based) at which position this entity starts. The index is inclusive.", -"minimum": 0, -"example": 50 -} -} -}, -"Error": { -"type": "object", -"required": [ -"code", -"message" -], -"properties": { -"code": { -"type": "integer", -"format": "int32" -}, -"message": { -"type": "string" -} -} -}, -"Expansions": { -"type": "object", -"properties": { -"media": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Media" -} -}, -"places": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Place" -} -}, -"polls": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Poll" -} -}, -"topics": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Topic" -} -}, -"tweets": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"users": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -} -} -}, -"FieldUnauthorizedProblem": { -"description": "A problem that indicates that you are not allowed to see a particular field on a Tweet, User, etc.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -}, -{ -"type": "object", -"required": [ -"resource_type", -"field", -"section" -], -"properties": { -"field": { -"type": "string" -}, -"resource_type": { -"type": "string", -"enum": [ -"user", -"tweet", -"media", -"list", -"space" -] -}, -"section": { -"type": "string", -"enum": [ -"data", -"includes" -] -} -} -} -] -}, -"FilteredStreamingTweetResponse": { -"type": "object", -"description": "A Tweet or error that can be returned by the streaming Tweet API. The values returned with a successful streamed Tweet includes the user provided rules that the Tweet matched.", -"properties": { -"data": { -"$ref": "#/components/schemas/Tweet" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"matching_rules": { -"type": "array", -"description": "The list of rules which matched the Tweet", -"items": { -"type": "object", -"required": [ -"id" -], -"properties": { -"id": { -"$ref": "#/components/schemas/RuleId" -}, -"tag": { -"$ref": "#/components/schemas/RuleTag" -} -} -} -} -} -}, -"FoundMediaOrigin": { -"type": "object", -"properties": { -"id": { -"type": "string", -"description": "Unique Identifier of media within provider ( <= 24 characters ))", -"example": "u5BzatR15TZ04" -}, -"provider": { -"type": "string", -"description": "The media provider (e.g., 'giphy') that sourced the media ( <= 8 Characters )", -"example": "giphy" -} -} -}, -"FullTextEntities": { -"type": "object", -"properties": { -"annotations": { -"type": "array", -"minItems": 1, -"items": { -"description": "Annotation for entities based on the Tweet text.", -"allOf": [ -{ -"$ref": "#/components/schemas/EntityIndicesInclusiveInclusive" -}, -{ -"type": "object", -"description": "Represents the data for the annotation.", -"properties": { -"normalized_text": { -"type": "string", -"description": "Text used to determine annotation.", -"example": "Barack Obama" -}, -"probability": { -"type": "number", -"description": "Confidence factor for annotation type.", -"minimum": 0, -"maximum": 1, -"format": "double" -}, -"type": { -"type": "string", -"description": "Annotation type.", -"example": "Person" -} -} -} -] -} -}, -"cashtags": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/CashtagEntity" -} -}, -"hashtags": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/HashtagEntity" -} -}, -"mentions": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/MentionEntity" -} -}, -"urls": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/UrlEntity" -} -} -} -}, -"GenericProblem": { -"description": "A generic problem with no additional information beyond that provided by the HTTP status code.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -} -] -}, -"Geo": { -"type": "object", -"required": [ -"type", -"bbox", -"properties" -], -"properties": { -"bbox": { -"type": "array", -"minItems": 4, -"maxItems": 4, -"items": { -"type": "number", -"minimum": -180, -"maximum": 180, -"format": "double" -}, -"example": [ --105.193475, -39.60973, --105.053164, -39.761974 -] -}, -"geometry": { -"$ref": "#/components/schemas/Point" -}, -"properties": { -"type": "object" -}, -"type": { -"type": "string", -"enum": [ -"Feature" -] -} -} -}, -"GeoRestrictions": { -"oneOf": [ -{ -"type": "object", -"required": [ -"whitelisted_country_codes", -"blacklisted_country_codes" -], -"properties": { -"blacklisted_country_codes": { -"type": "array", -"description": "List of blacklisted country codes", -"minItems": 0, -"maxItems": 0, -"items": { -"type": "string", -"description": "Country code in ISO 3166-1 alpha-2 format", -"pattern": "^[a-zA-Z]{2}$", -"example": "us" -} -}, -"whitelisted_country_codes": { -"type": "array", -"description": "List of whitelisted country codes", -"minItems": 1, -"items": { -"type": "string", -"description": "Country code in ISO 3166-1 alpha-2 format", -"pattern": "^[a-zA-Z]{2}$", -"example": "us" -} -} -} -}, -{ -"type": "object", -"required": [ -"whitelisted_country_codes", -"blacklisted_country_codes" -], -"properties": { -"blacklisted_country_codes": { -"type": "array", -"description": "List of blacklisted country codes", -"minItems": 1, -"items": { -"type": "string", -"description": "Country code in ISO 3166-1 alpha-2 format", -"pattern": "^[a-zA-Z]{2}$", -"example": "us" -} -}, -"whitelisted_country_codes": { -"type": "array", -"description": "List of whitelisted country codes", -"minItems": 0, -"maxItems": 0, -"items": { -"type": "string", -"description": "Country code in ISO 3166-1 alpha-2 format", -"pattern": "^[a-zA-Z]{2}$", -"example": "us" -} -} -} -} -] -}, -"Get2CommunitiesIdResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Community" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2CommunitiesSearchResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Community" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -} -} -} -} -}, -"Get2ComplianceJobsIdResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/ComplianceJob" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2ComplianceJobsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/ComplianceJob" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"meta": { -"type": "object", -"properties": { -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2DmConversationsIdDmEventsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/DmEvent" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2DmConversationsWithParticipantIdDmEventsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/DmEvent" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2DmEventsEventIdResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/DmEvent" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2DmEventsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/DmEvent" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2FdxAccountsAccountidContactResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/PlaidAccountContact" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2FdxAccountsAccountidPayment-networksResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/PlaidAccountPaymentNetwork" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2FdxAccountsAccountidResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/PlaidAccount" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2FdxAccountsAccountidTransactionsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/PlaidAccountTransaction" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2FdxCustomersCurrentResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/PlaidCustomer" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2Insights28hrResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Engagement" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2InsightsHistoricalResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Engagement" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2LikesFirehoseStreamResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/LikeWithTweetAuthor" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2LikesSample10StreamResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/LikeWithTweetAuthor" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2ListsIdFollowersResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2ListsIdMembersResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2ListsIdResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/List" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2ListsIdTweetsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2MediaAnalyticsResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/MediaAnalytics" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2MediaMediaKeyResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Media" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2MediaResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Media" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2NotesSearchNotesWrittenResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Note" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2NotesSearchPostsEligibleForNotesResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2SpacesByCreatorIdsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Space" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2SpacesIdBuyersResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2SpacesIdResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Space" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2SpacesIdTweetsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2SpacesResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Space" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2SpacesSearchResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Space" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2TrendsByWoeidWoeidResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Trend" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2TweetsAnalyticsResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Analytics" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2TweetsCountsAllResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/SearchCount" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"meta": { -"type": "object", -"properties": { -"newest_id": { -"$ref": "#/components/schemas/NewestId" -}, -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"oldest_id": { -"$ref": "#/components/schemas/OldestId" -}, -"total_tweet_count": { -"$ref": "#/components/schemas/Aggregate" -} -} -} -} -}, -"Get2TweetsCountsRecentResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/SearchCount" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"meta": { -"type": "object", -"properties": { -"newest_id": { -"$ref": "#/components/schemas/NewestId" -}, -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"oldest_id": { -"$ref": "#/components/schemas/OldestId" -}, -"total_tweet_count": { -"$ref": "#/components/schemas/Aggregate" -} -} -} -} -}, -"Get2TweetsFirehoseStreamLangEnResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Tweet" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2TweetsFirehoseStreamLangJaResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Tweet" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2TweetsFirehoseStreamLangKoResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Tweet" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2TweetsFirehoseStreamLangPtResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Tweet" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2TweetsFirehoseStreamResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Tweet" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2TweetsIdLikingUsersResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2TweetsIdQuoteTweetsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2TweetsIdResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Tweet" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2TweetsIdRetweetedByResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2TweetsIdRetweetsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2TweetsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2TweetsSample10StreamResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Tweet" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2TweetsSampleStreamResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Tweet" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2TweetsSearchAllResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"newest_id": { -"$ref": "#/components/schemas/NewestId" -}, -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"oldest_id": { -"$ref": "#/components/schemas/OldestId" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2TweetsSearchRecentResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"newest_id": { -"$ref": "#/components/schemas/NewestId" -}, -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"oldest_id": { -"$ref": "#/components/schemas/OldestId" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2TweetsSearchStreamResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Tweet" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2TweetsSearchStreamRulesCountsResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/RulesCount" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2UsageTweetsResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Usage" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2UsersByResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2UsersByUsernameUsernameResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/User" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2UsersIdBlockingResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdBookmarksResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdFollowedListsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/List" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdFollowersResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdFollowingResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdLikedTweetsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdListMembershipsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/List" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdMentionsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"newest_id": { -"$ref": "#/components/schemas/NewestId" -}, -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"oldest_id": { -"$ref": "#/components/schemas/OldestId" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdMutingResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdOwnedListsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/List" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdPinnedListsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/List" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/User" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2UsersIdTimelinesReverseChronologicalResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"newest_id": { -"$ref": "#/components/schemas/NewestId" -}, -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"oldest_id": { -"$ref": "#/components/schemas/OldestId" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersIdTweetsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"newest_id": { -"$ref": "#/components/schemas/NewestId" -}, -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"oldest_id": { -"$ref": "#/components/schemas/OldestId" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersMeResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/User" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2UsersPersonalizedTrendsResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/PersonalizedTrend" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Get2UsersRepostsOfMeResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Tweet" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -}, -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"Get2UsersResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"Get2UsersSearchResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/User" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -}, -"meta": { -"type": "object", -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"previous_token": { -"$ref": "#/components/schemas/PreviousToken" -} -} -} -} -}, -"Get2WebhooksResponse": { -"type": "object", -"properties": { -"data": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/WebhookConfig" -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"meta": { -"type": "object", -"properties": { -"result_count": { -"$ref": "#/components/schemas/ResultCount" -} -} -} -} -}, -"HashtagEntity": { -"allOf": [ -{ -"$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" -}, -{ -"$ref": "#/components/schemas/HashtagFields" -} -] -}, -"HashtagFields": { -"type": "object", -"description": "Represent the portion of text recognized as a Hashtag, and its start and end position within the text.", -"required": [ -"tag" -], -"properties": { -"tag": { -"type": "string", -"description": "The text of the Hashtag.", -"example": "MondayMotivation" -} -} -}, -"HttpStatusCode": { -"type": "integer", -"description": "HTTP Status Code.", -"minimum": 100, -"maximum": 599 -}, -"InvalidRequestProblem": { -"description": "A problem that indicates this request is invalid.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -}, -{ -"type": "object", -"properties": { -"errors": { -"type": "array", -"minItems": 1, -"items": { -"type": "object", -"properties": { -"message": { -"type": "string" -}, -"parameters": { -"type": "object", -"additionalProperties": { -"type": "array", -"items": { -"type": "string" -} -} -} -} -} -} -} -} -] -}, -"InvalidRuleProblem": { -"description": "The rule you have submitted is invalid.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -} -] -}, -"JobId": { -"type": "string", -"description": "Compliance Job ID.", -"pattern": "^[0-9]{1,19}$", -"example": "1372966999991541762" -}, -"KillAllConnectionsResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"killed_connections": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"LikeComplianceSchema": { -"type": "object", -"required": [ -"delete" -], -"properties": { -"delete": { -"$ref": "#/components/schemas/UnlikeComplianceSchema" -} -} -}, -"LikeId": { -"type": "string", -"description": "The unique identifier of this Like.", -"pattern": "^[A-Za-z0-9_]{1,40}$", -"example": "8ba4f34e6235d905a46bac021d98e923" -}, -"LikeWithTweetAuthor": { -"type": "object", -"description": "A Like event, with the tweet author user and the tweet being liked", -"properties": { -"created_at": { -"type": "string", -"description": "Creation time of the Tweet.", -"format": "date-time", -"example": "2021-01-06T18:40:40.000Z" -}, -"id": { -"$ref": "#/components/schemas/LikeId" -}, -"liked_tweet_id": { -"$ref": "#/components/schemas/TweetId" -}, -"timestamp_ms": { -"type": "integer", -"description": "Timestamp in milliseconds of creation.", -"format": "int32" -}, -"tweet_author_id": { -"$ref": "#/components/schemas/UserId" -} -} -}, -"LikesComplianceStreamResponse": { -"description": "Likes compliance stream events.", -"oneOf": [ -{ -"type": "object", -"description": "Compliance event.", -"required": [ -"data" -], -"properties": { -"data": { -"$ref": "#/components/schemas/LikeComplianceSchema" -} -} -}, -{ -"type": "object", -"required": [ -"errors" -], -"properties": { -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -] -}, -"List": { -"type": "object", -"description": "A X List is a curated group of accounts.", -"required": [ -"id", -"name" -], -"properties": { -"created_at": { -"type": "string", -"format": "date-time" -}, -"description": { -"type": "string" -}, -"follower_count": { -"type": "integer" -}, -"id": { -"$ref": "#/components/schemas/ListId" -}, -"member_count": { -"type": "integer" -}, -"name": { -"type": "string", -"description": "The name of this List." -}, -"owner_id": { -"$ref": "#/components/schemas/UserId" -}, -"private": { -"type": "boolean" -} -} -}, -"ListAddUserRequest": { -"type": "object", -"required": [ -"user_id" -], -"properties": { -"user_id": { -"$ref": "#/components/schemas/UserId" -} -} -}, -"ListCreateRequest": { -"type": "object", -"required": [ -"name" -], -"properties": { -"description": { -"type": "string", -"minLength": 0, -"maxLength": 100 -}, -"name": { -"type": "string", -"minLength": 1, -"maxLength": 25 -}, -"private": { -"type": "boolean", -"default": false -} -} -}, -"ListCreateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"description": "A X List is a curated group of accounts.", -"required": [ -"id", -"name" -], -"properties": { -"id": { -"$ref": "#/components/schemas/ListId" -}, -"name": { -"type": "string", -"description": "The name of this List." -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"ListDeleteResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"deleted": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"ListFollowedRequest": { -"type": "object", -"required": [ -"list_id" -], -"properties": { -"list_id": { -"$ref": "#/components/schemas/ListId" -} -} -}, -"ListFollowedResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"following": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"ListId": { -"type": "string", -"description": "The unique identifier of this List.", -"pattern": "^[0-9]{1,19}$", -"example": "1146654567674912769" -}, -"ListMutateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"is_member": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"ListPinnedRequest": { -"type": "object", -"required": [ -"list_id" -], -"properties": { -"list_id": { -"$ref": "#/components/schemas/ListId" -} -} -}, -"ListPinnedResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"pinned": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"ListUnpinResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"pinned": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"ListUpdateRequest": { -"type": "object", -"properties": { -"description": { -"type": "string", -"minLength": 0, -"maxLength": 100 -}, -"name": { -"type": "string", -"minLength": 1, -"maxLength": 25 -}, -"private": { -"type": "boolean" -} -} -}, -"ListUpdateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"updated": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"ManagementInfo": { -"type": "object", -"properties": { -"managed": { -"type": "boolean", -"description": "Indicates if the media is managed by Media Studio", -"example": false -} -} -}, -"Media": { -"type": "object", -"required": [ -"type" -], -"properties": { -"height": { -"$ref": "#/components/schemas/MediaHeight" -}, -"media_key": { -"$ref": "#/components/schemas/MediaKey" -}, -"type": { -"type": "string" -}, -"width": { -"$ref": "#/components/schemas/MediaWidth" -} -}, -"discriminator": { -"propertyName": "type", -"mapping": { -"animated_gif": "#/components/schemas/AnimatedGif", -"photo": "#/components/schemas/Photo", -"video": "#/components/schemas/Video" -} -} -}, -"MediaAnalytics": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"media_key": { -"$ref": "#/components/schemas/MediaKey" -}, -"timestamped_metrics": { -"type": "array", -"title": "Timestamped Metrics", -"description": "Array containing metrics data along with the timestamps of their recording.", -"items": { -"$ref": "#/components/schemas/MediaTimestampedMetrics" -} -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"MediaCategory": { -"type": "string", -"description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size, video duration) and enable advanced features.", -"enum": [ -"amplify_video", -"tweet_gif", -"tweet_image", -"tweet_video", -"dm_gif", -"dm_image", -"dm_video", -"subtitles" -], -"example": "tweet_video" -}, -"MediaCategoryOneShot": { -"type": "string", -"description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size) and enable advanced features.", -"enum": [ -"tweet_image", -"dm_image", -"subtitles" -], -"example": "tweet_image" -}, -"MediaCategorySubtitles": { -"type": "string", -"description": "The media category of uploaded media to which subtitles should be added/deleted", -"enum": [ -"AmplifyVideo", -"TweetVideo" -], -"example": "TweetVideo" -}, -"MediaHeight": { -"type": "integer", -"description": "The height of the media in pixels.", -"minimum": 0 -}, -"MediaId": { -"type": "string", -"description": "The unique identifier of this Media.", -"pattern": "^[0-9]{1,19}$", -"example": "1146654567674912769" -}, -"MediaKey": { -"type": "string", -"description": "The Media Key identifier for this attachment.", -"pattern": "^([0-9]+)_([0-9]+)$" -}, -"MediaMetrics": { -"type": "object", -"properties": { -"cta_url_clicks": { -"type": "integer", -"title": "CTA URL Clicks", -"description": "Tracks the number of clicks on a call-to-action URL" -}, -"cta_watch_clicks": { -"type": "integer", -"title": "CTA Watch Clicks", -"description": "Tracks the number of clicks to watch a video or media content" -}, -"play_from_tap": { -"type": "integer", -"title": "Play From Tap", -"description": "Tracks the number of times a video or media is played from a user tap" -}, -"playback25": { -"type": "integer", -"title": "Playback 25%", -"description": "Tracks the number of times a video reaches 25% of its duration" -}, -"playback50": { -"type": "integer", -"title": "Playback 50%", -"description": "Tracks the number of times a video reaches 50% of its duration" -}, -"playback75": { -"type": "integer", -"title": "Playback 75%", -"description": "Tracks the number of times a video reaches 75% of its duration" -}, -"playback_complete": { -"type": "integer", -"title": "Playback Complete", -"description": "Tracks the number of times a video is played to completion" -}, -"playback_start": { -"type": "integer", -"title": "Playback Start", -"description": "Tracks the number of times a video playback is initiated" -}, -"video_views": { -"type": "integer", -"title": "Video Views", -"description": "Tracks the number of times a video is viewed" -}, -"watch_time_ms": { -"type": "integer", -"title": "Watch Time (ms)", -"description": "Tracks the total time spent watching a video, measured in milliseconds" -} -} -}, -"MediaPayloadBinary": { -"type": "string", -"description": "The file to upload.", -"format": "binary" -}, -"MediaPayloadByte": { -"type": "string", -"description": "The file to upload.", -"format": "byte" -}, -"MediaSegments": { -"oneOf": [ -{ -"type": "integer", -"description": "An integer value representing the media upload segment.", -"minimum": 0, -"maximum": 999, -"format": "int32" -}, -{ -"type": "string", -"description": "An integer value representing the media upload segment.", -"pattern": "^[0-9]{1,3}$", -"format": "integer" -} -] -}, -"MediaTimestampedMetrics": { -"type": "object", -"properties": { -"metrics": { -"$ref": "#/components/schemas/MediaMetrics" -}, -"timestamp": { -"type": "string", -"title": "Timestamp", -"description": "ISO8601 Time", -"example": "2025-03-17T06:30:00Z" -} -} -}, -"MediaUploadAppendRequest": { -"anyOf": [ -{ -"type": "object", -"required": [ -"media", -"segment_index" -], -"properties": { -"media": { -"$ref": "#/components/schemas/MediaPayloadBinary" -}, -"segment_index": { -"$ref": "#/components/schemas/MediaSegments" -} -} -}, -{ -"type": "object", -"required": [ -"media", -"segment_index" -], -"properties": { -"media": { -"$ref": "#/components/schemas/MediaPayloadByte" -}, -"segment_index": { -"$ref": "#/components/schemas/MediaSegments" -} -} -} -] -}, -"MediaUploadAppendResponse": { -"type": "object", -"description": "A response from getting a media upload request status.", -"required": [ -"meta" -], -"properties": { -"data": { -"type": "object", -"properties": { -"expires_at": { -"type": "integer", -"description": "Unix epoch time in seconds after when the upload session expires.", -"format": "int64" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"MediaUploadConfigRequest": { -"type": "object", -"properties": { -"additional_owners": { -"type": "array", -"items": { -"$ref": "#/components/schemas/UserId" -} -}, -"media_category": { -"$ref": "#/components/schemas/MediaCategory" -}, -"media_type": { -"type": "string", -"description": "The type of media.", -"enum": [ -"video/mp4", -"video/webm", -"video/mp2t", -"video/quicktime", -"text/srt", -"text/vtt", -"image/jpeg", -"image/gif", -"image/bmp", -"image/png", -"image/webp", -"image/pjpeg", -"image/tiff", -"model/gltf-binary", -"model/vnd.usdz+zip" -], -"example": "video/mp4" -}, -"shared": { -"type": "boolean", -"description": "Whether this media is shared or not." -}, -"total_bytes": { -"type": "integer", -"description": "The total size of the media upload in bytes.", -"minimum": 0, -"maximum": 17179869184 -} -}, -"additionalProperties": false -}, -"MediaUploadRequestOneShot": { -"type": "object", -"required": [ -"media", -"media_category" -], -"properties": { -"additional_owners": { -"type": "array", -"items": { -"$ref": "#/components/schemas/UserId" -} -}, -"media": { -"anyOf": [ -{ -"$ref": "#/components/schemas/MediaPayloadBinary" -}, -{ -"$ref": "#/components/schemas/MediaPayloadByte" -} -] -}, -"media_category": { -"$ref": "#/components/schemas/MediaCategoryOneShot" -}, -"media_type": { -"type": "string", -"description": "The type of image or subtitle.", -"enum": [ -"text/srt", -"text/vtt", -"image/jpeg", -"image/bmp", -"image/png", -"image/webp", -"image/pjpeg", -"image/tiff" -], -"example": "image/png" -}, -"shared": { -"type": "boolean", -"description": "Whether this media is shared or not.", -"default": false -} -}, -"additionalProperties": false -}, -"MediaUploadResponse": { -"type": "object", -"description": "A response from getting a media upload request status.", -"required": [ -"meta" -], -"properties": { -"data": { -"type": "object", -"required": [ -"id", -"media_key" -], -"properties": { -"expires_after_secs": { -"type": "integer", -"description": "Number of seconds after which upload session expires.", -"format": "int32" -}, -"id": { -"$ref": "#/components/schemas/MediaId" -}, -"media_key": { -"$ref": "#/components/schemas/MediaKey" -}, -"processing_info": { -"$ref": "#/components/schemas/ProcessingInfo" -}, -"size": { -"type": "integer", -"description": "Size of the upload", -"format": "int32" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"MediaWidth": { -"type": "integer", -"description": "The width of the media in pixels.", -"minimum": 0 -}, -"MentionEntity": { -"allOf": [ -{ -"$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" -}, -{ -"$ref": "#/components/schemas/MentionFields" -} -] -}, -"MentionFields": { -"type": "object", -"description": "Represent the portion of text recognized as a User mention, and its start and end position within the text.", -"required": [ -"username" -], -"properties": { -"id": { -"$ref": "#/components/schemas/UserId" -}, -"username": { -"$ref": "#/components/schemas/UserName" -} -} -}, -"MetadataCreateRequest": { -"type": "object", -"required": [ -"id" -], -"properties": { -"id": { -"$ref": "#/components/schemas/MediaId" -}, -"metadata": { -"type": "object", -"properties": { -"allow_download_status": { -"$ref": "#/components/schemas/AllowDownloadStatus" -}, -"alt_text": { -"$ref": "#/components/schemas/AltText" -}, -"audience_policy": { -"$ref": "#/components/schemas/AudiencePolicy" -}, -"content_expiration": { -"$ref": "#/components/schemas/ContentExpiration" -}, -"domain_restrictions": { -"$ref": "#/components/schemas/DomainRestrictions" -}, -"found_media_origin": { -"$ref": "#/components/schemas/FoundMediaOrigin" -}, -"geo_restrictions": { -"$ref": "#/components/schemas/GeoRestrictions" -}, -"management_info": { -"$ref": "#/components/schemas/ManagementInfo" -}, -"preview_image": { -"$ref": "#/components/schemas/PreviewImage" -}, -"sensitive_media_warning": { -"$ref": "#/components/schemas/SensitiveMediaWarning" -}, -"shared_info": { -"$ref": "#/components/schemas/SharedInfo" -}, -"sticker_info": { -"$ref": "#/components/schemas/StickerInfo" -}, -"upload_source": { -"$ref": "#/components/schemas/UploadSource" -} -} -} -} -}, -"MetadataCreateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"associated_metadata": { -"type": "object", -"properties": { -"allow_download_status": { -"$ref": "#/components/schemas/AllowDownloadStatus" -}, -"alt_text": { -"$ref": "#/components/schemas/AltText" -}, -"audience_policy": { -"$ref": "#/components/schemas/AudiencePolicy" -}, -"content_expiration": { -"$ref": "#/components/schemas/ContentExpiration" -}, -"domain_restrictions": { -"$ref": "#/components/schemas/DomainRestrictions" -}, -"found_media_origin": { -"$ref": "#/components/schemas/FoundMediaOrigin" -}, -"geo_restrictions": { -"$ref": "#/components/schemas/GeoRestrictions" -}, -"management_info": { -"$ref": "#/components/schemas/ManagementInfo" -}, -"preview_image": { -"$ref": "#/components/schemas/PreviewImage" -}, -"sensitive_media_warning": { -"$ref": "#/components/schemas/SensitiveMediaWarning" -}, -"shared_info": { -"$ref": "#/components/schemas/SharedInfo" -}, -"sticker_info": { -"$ref": "#/components/schemas/StickerInfo" -}, -"upload_source": { -"$ref": "#/components/schemas/UploadSource" -} -} -}, -"id": { -"$ref": "#/components/schemas/MediaId" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Metrics": { -"type": "object", -"properties": { -"app_install_attempts": { -"type": "integer", -"title": "App Install Attempts", -"description": "Tracks number of App Install Attempts" -}, -"app_opens": { -"type": "integer", -"title": "App Opens", -"description": "Tracks number of App opens" -}, -"detail_expands": { -"type": "integer", -"title": "Detail Expands", -"description": "Tracks number of Detail expands" -}, -"email_tweet": { -"type": "integer", -"title": "Email Tweet", -"description": "Tracks number of Email Tweet actions" -}, -"engagements": { -"type": "integer", -"title": "Engagements", -"description": "Tracks total Engagements" -}, -"follows": { -"type": "integer", -"title": "Follows", -"description": "Tracks number of Follows" -}, -"hashtag_clicks": { -"type": "integer", -"title": "Hashtag Clicks", -"description": "Tracks number of Hashtag clicks" -}, -"impressions": { -"type": "integer", -"title": "Impressions", -"description": "Tracks number of Impressions" -}, -"likes": { -"type": "integer", -"title": "Likes", -"description": "Tracks number of Likes" -}, -"link_clicks": { -"type": "integer", -"title": "Link Clicks", -"description": "Tracks number of Link clicks" -}, -"media_engagements": { -"type": "integer", -"title": "Media Engagements", -"description": "Tracks number of Media engagements" -}, -"media_views": { -"type": "integer", -"title": "Media Views", -"description": "Tracks number of Media views" -}, -"permalink_clicks": { -"type": "integer", -"title": "Permalink Clicks", -"description": "Tracks number of Permalink clicks" -}, -"profile_visits": { -"type": "integer", -"title": "Profile Visits", -"description": "Tracks number of Profile visits" -}, -"quote_tweets": { -"type": "integer", -"title": "Quote Tweets", -"description": "Tracks number of Quote Tweets" -}, -"replies": { -"type": "integer", -"title": "Replies", -"description": "Tracks number of Replies" -}, -"retweets": { -"type": "integer", -"title": "Retweets", -"description": "Tracks number of Retweets" -}, -"url_clicks": { -"type": "integer", -"title": "URL Clicks", -"description": "Tracks number of URL clicks" -}, -"user_profile_clicks": { -"type": "integer", -"title": "User Profile Clicks", -"description": "Tracks number of User Profile clicks" -} -} -}, -"MisleadingTags": { -"type": "string", -"description": "Community Note misleading tags type.", -"enum": [ -"disputed_claim_as_fact", -"factual_error", -"manipulated_media", -"misinterpreted_satire", -"missing_important_context", -"other", -"outdated_information" -] -}, -"MuteUserMutationResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"muting": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"MuteUserRequest": { -"type": "object", -"required": [ -"target_user_id" -], -"properties": { -"target_user_id": { -"$ref": "#/components/schemas/UserId" -} -} -}, -"NewestId": { -"type": "string", -"description": "The newest id in this response." -}, -"NextToken": { -"type": "string", -"description": "The next token.", -"minLength": 1 -}, -"NonCompliantRulesProblem": { -"description": "A problem that indicates the user's rule set is not compliant.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -} -] -}, -"Note": { -"type": "object", -"description": "A X Community Note is a note on a Post.", -"required": [ -"id", -"post_id", -"note_info" -], -"properties": { -"id": { -"$ref": "#/components/schemas/NoteId" -}, -"info": { -"$ref": "#/components/schemas/NoteInfo" -}, -"post_id": { -"$ref": "#/components/schemas/TweetId" -}, -"status": { -"$ref": "#/components/schemas/NoteRatingStatus" -}, -"test_result": { -"$ref": "#/components/schemas/NoteTestResult" -} -} -}, -"NoteClassification": { -"type": "string", -"description": "Community Note classification type.", -"enum": [ -"misinformed_or_potentially_misleading", -"not_misleading" -] -}, -"NoteId": { -"type": "string", -"description": "The unique identifier of this Community Note.", -"pattern": "^[0-9]{1,19}$", -"example": "1146654567674912769" -}, -"NoteInfo": { -"type": "object", -"description": "A X Community Note is a note on a Post.", -"required": [ -"text", -"classification", -"misleading_tags", -"trustworthy_sources" -], -"properties": { -"classification": { -"$ref": "#/components/schemas/NoteClassification" -}, -"misleading_tags": { -"type": "array", -"items": { -"$ref": "#/components/schemas/MisleadingTags" -} -}, -"text": { -"type": "string", -"description": "The text summary in the Community Note.", -"pattern": "^(?=.*https?://\\S+).+$" -}, -"trustworthy_sources": { -"type": "boolean", -"description": "Whether the note provided trustworthy links." -} -}, -"additionalProperties": false -}, -"NoteRatingStatus": { -"type": "string", -"description": "Community Note rating status. Only returned when test result is false", -"enum": [ -"currently_rated_helpful", -"currently_rated_not_helpful", -"firm_reject", -"insufficient_consensus", -"minimum_ratings_not_met", -"needs_more_ratings", -"needs_your_help" -] -}, -"NoteTestResult": { -"type": "object", -"description": "The test result of a community note.", -"properties": { -"evaluator_score": { -"type": "number", -"description": "The score given to a written test note.", -"format": "double" -}, -"evaluator_type": { -"type": "string", -"description": "The type of evaluator response." -} -} -}, -"NoteTweetText": { -"type": "string", -"description": "The note content of the Tweet.", -"example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" -}, -"Oauth1PermissionsProblem": { -"description": "A problem that indicates your client application does not have the required OAuth1 permissions for the requested endpoint.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -} -] -}, -"OldestId": { -"type": "string", -"description": "The oldest id in this response." -}, -"OperationalDisconnectProblem": { -"description": "You have been disconnected for operational reasons.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -}, -{ -"type": "object", -"properties": { -"disconnect_type": { -"type": "string", -"enum": [ -"OperationalDisconnect", -"UpstreamOperationalDisconnect", -"ForceDisconnect", -"UpstreamUncleanDisconnect", -"SlowReader", -"InternalError", -"ClientApplicationStateDegraded", -"InvalidRules" -] -} -} -} -] -}, -"PaginationToken32": { -"type": "string", -"description": "A base32 pagination token.", -"minLength": 16 -}, -"PaginationToken36": { -"type": "string", -"description": "A base36 pagination token.", -"minLength": 1 -}, -"PaginationTokenLong": { -"type": "string", -"description": "A 'long' pagination token.", -"minLength": 1, -"maxLength": 19 -}, -"PersonalizedTrend": { -"type": "object", -"description": "A trend.", -"properties": { -"category": { -"type": "string", -"description": "Category of this trend." -}, -"post_count": { -"type": "integer", -"description": "Number of posts pertaining to this trend." -}, -"trend_name": { -"type": "string", -"description": "Name of the trend." -}, -"trending_since": { -"type": "string", -"description": "Time since this is trending." -} -} -}, -"Photo": { -"allOf": [ -{ -"$ref": "#/components/schemas/Media" -}, -{ -"type": "object", -"properties": { -"alt_text": { -"type": "string" -}, -"url": { -"type": "string", -"format": "uri" -} -} -} -] -}, -"Place": { -"type": "object", -"required": [ -"id", -"full_name" -], -"properties": { -"contained_within": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/PlaceId" -} -}, -"country": { -"type": "string", -"description": "The full name of the county in which this place exists.", -"example": "United States" -}, -"country_code": { -"$ref": "#/components/schemas/CountryCode" -}, -"full_name": { -"type": "string", -"description": "The full name of this place.", -"example": "Lakewood, CO" -}, -"geo": { -"$ref": "#/components/schemas/Geo" -}, -"id": { -"$ref": "#/components/schemas/PlaceId" -}, -"name": { -"type": "string", -"description": "The human readable name of this place.", -"example": "Lakewood" -}, -"place_type": { -"$ref": "#/components/schemas/PlaceType" -} -} -}, -"PlaceId": { -"type": "string", -"description": "The identifier for this place.", -"example": "f7eb2fa2fea288b1" -}, -"PlaceType": { -"type": "string", -"enum": [ -"poi", -"neighborhood", -"city", -"admin", -"country", -"unknown" -], -"example": "city" -}, -"PlaidAccount": { -"type": "object", -"description": "Descriptor for a Plaid account.", -"required": [ -"accountId", -"accountCategory", -"accountNumberDisplay", -"accountType", -"currency", -"productName", -"status" -], -"properties": { -"accountCategory": { -"type": "string", -"description": "The category of the account (e.g., personal, business)." -}, -"accountId": { -"type": "string", -"description": "The Plaid account ID." -}, -"accountNumberDisplay": { -"type": "string", -"description": "The last 2-4 digits of the account number." -}, -"accountType": { -"type": "string", -"description": "The type of the account (e.g., checking, savings)." -}, -"availableBalance": { -"type": "number", -"description": "The available balance of the account." -}, -"currency": { -"$ref": "#/components/schemas/PlaidCurrency" -}, -"currentBalance": { -"type": "number", -"description": "The current balance of the account." -}, -"nickname": { -"type": "string", -"description": "The nickname of the account." -}, -"productName": { -"type": "string", -"description": "The name of the product associated with the account." -}, -"status": { -"type": "string", -"description": "The status of the account." -} -} -}, -"PlaidAccountContact": { -"type": "object", -"description": "Contact information associated with a Plaid account.", -"required": [ -"name", -"addresses", -"emails", -"telephones" -], -"properties": { -"addresses": { -"type": "array", -"description": "List of addresses associated with the account holder.", -"items": { -"$ref": "#/components/schemas/PlaidAddress" -} -}, -"emails": { -"type": "array", -"description": "List of email addresses associated with the account holder.", -"items": { -"type": "string" -} -}, -"name": { -"$ref": "#/components/schemas/PlaidName" -}, -"relationship": { -"type": "string", -"description": "Relationship of the contact to the account." -}, -"telephones": { -"type": "array", -"description": "List of telephone numbers associated with the account holder.", -"items": { -"$ref": "#/components/schemas/PlaidTelephone" -} -} -} -}, -"PlaidAccountPaymentNetwork": { -"type": "object", -"description": "Payment network details associated with the account.", -"required": [ -"identifier", -"type", -"transferIn", -"transferOut", -"bankId" -], -"properties": { -"bankId": { -"type": "string", -"description": "The bank ID associated with the account." -}, -"identifier": { -"type": "string", -"description": "The payment network identifier." -}, -"transferIn": { -"type": "boolean", -"description": "Indicates if transfers into the account are supported." -}, -"transferOut": { -"type": "boolean", -"description": "Indicates if transfers out of the account are supported." -}, -"type": { -"type": "string", -"description": "The type of payment network (e.g., ACH, SEPA)." -} -} -}, -"PlaidAccountTransaction": { -"type": "object", -"description": "Descriptor for a Plaid account.", -"required": [ -"accountCategory", -"amount", -"debitCreditMemo", -"description", -"status", -"transactionId", -"transactionTimestamp" -], -"properties": { -"accountCategory": { -"type": "string", -"description": "The category of the account (e.g., personal, business)." -}, -"amount": { -"type": "number", -"description": "The amount transacted." -}, -"debitCreditMemo": { -"type": "string", -"description": "Memo for transaction (e.g. CREDIT)" -}, -"description": { -"type": "string", -"description": "The transaction description" -}, -"postedTimestamp": { -"type": "string", -"description": "The timestamp when the transaction was posted." -}, -"status": { -"type": "string", -"description": "The status of the transaction." -}, -"transactionId": { -"type": "string", -"description": "The identifier for the transaction." -}, -"transactionTimestamp": { -"type": "string", -"description": "The timestamp when the transaction occurred." -} -} -}, -"PlaidAddress": { -"type": "object", -"description": "Address information for the account holder.", -"required": [ -"city", -"country", -"line1" -], -"properties": { -"city": { -"type": "string", -"description": "The city of the address." -}, -"country": { -"type": "string", -"description": "The country of the address (ISO 3166-1 alpha-2 code)." -}, -"line1": { -"type": "string", -"description": "The first line of the address." -}, -"line2": { -"type": "string", -"description": "The second line of the address." -}, -"postalCode": { -"type": "string", -"description": "The postal code of the address." -}, -"region": { -"type": "string", -"description": "The region or state of the address." -} -} -}, -"PlaidCurrency": { -"type": "object", -"description": "Currency information.", -"required": [ -"currencyCode" -], -"properties": { -"currencyCode": { -"type": "string", -"description": "The ISO 4217 currency code." -} -} -}, -"PlaidCustomer": { -"type": "object", -"description": "A user id for the plaid customer", -"properties": { -"customerId": { -"$ref": "#/components/schemas/UserId" -} -} -}, -"PlaidName": { -"type": "object", -"description": "Name information for the account holder.", -"required": [ -"first", -"last" -], -"properties": { -"first": { -"type": "string", -"description": "The first name of the account holder." -}, -"last": { -"type": "string", -"description": "The last name of the account holder." -} -} -}, -"PlaidTelephone": { -"type": "object", -"description": "Telephone information for the account holder.", -"required": [ -"country", -"number", -"type" -], -"properties": { -"country": { -"type": "string", -"description": "The country code for the phone number (e.g., '+1')." -}, -"number": { -"type": "string", -"description": "The phone number." -}, -"type": { -"type": "string", -"description": "The type of phone number (e.g., 'mobile')." -} -} -}, -"Point": { -"type": "object", -"description": "A [GeoJson Point](https://tools.ietf.org/html/rfc7946#section-3.1.2) geometry object.", -"required": [ -"type", -"coordinates" -], -"properties": { -"coordinates": { -"$ref": "#/components/schemas/Position" -}, -"type": { -"type": "string", -"enum": [ -"Point" -], -"example": "Point" -} -} -}, -"Poll": { -"type": "object", -"description": "Represent a Poll attached to a Tweet.", -"required": [ -"id", -"options" -], -"properties": { -"duration_minutes": { -"type": "integer", -"minimum": 5, -"maximum": 10080, -"format": "int32" -}, -"end_datetime": { -"type": "string", -"format": "date-time" -}, -"id": { -"$ref": "#/components/schemas/PollId" -}, -"options": { -"type": "array", -"minItems": 2, -"maxItems": 4, -"items": { -"$ref": "#/components/schemas/PollOption" -} -}, -"voting_status": { -"type": "string", -"enum": [ -"open", -"closed" -] -} -} -}, -"PollId": { -"type": "string", -"description": "Unique identifier of this poll.", -"pattern": "^[0-9]{1,19}$", -"example": "1365059861688410112" -}, -"PollOption": { -"type": "object", -"description": "Describes a choice in a Poll object.", -"required": [ -"position", -"label", -"votes" -], -"properties": { -"label": { -"$ref": "#/components/schemas/PollOptionLabel" -}, -"position": { -"type": "integer", -"description": "Position of this choice in the poll." -}, -"votes": { -"type": "integer", -"description": "Number of users who voted for this choice." -} -} -}, -"PollOptionLabel": { -"type": "string", -"description": "The text of a poll choice.", -"minLength": 1, -"maxLength": 25 -}, -"Position": { -"type": "array", -"description": "A [GeoJson Position](https://tools.ietf.org/html/rfc7946#section-3.1.1) in the format `[longitude,latitude]`.", -"minItems": 2, -"maxItems": 2, -"items": { -"type": "number" -}, -"example": [ --105.18816086351444, -40.247749999999996 -] -}, -"PreviewImage": { -"type": "object", -"properties": { -"media_key": { -"type": "object", -"properties": { -"media": { -"$ref": "#/components/schemas/MediaId" -}, -"media_category": { -"type": "string", -"description": "The media category of media", -"enum": [ -"TweetImage" -], -"default": "TweetImage", -"example": "TweetImage" -} -} -} -} -}, -"PreviousToken": { -"type": "string", -"description": "The previous token.", -"minLength": 1 -}, -"Problem": { -"type": "object", -"description": "An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).", -"required": [ -"type", -"title" -], -"properties": { -"detail": { -"type": "string" -}, -"status": { -"type": "integer" -}, -"title": { -"type": "string" -}, -"type": { -"type": "string" -} -}, -"discriminator": { -"propertyName": "type", -"mapping": { -"about:blank": "#/components/schemas/GenericProblem", -"https://api.twitter.com/2/problems/client-disconnected": "#/components/schemas/ClientDisconnectedProblem", -"https://api.twitter.com/2/problems/client-forbidden": "#/components/schemas/ClientForbiddenProblem", -"https://api.twitter.com/2/problems/conflict": "#/components/schemas/ConflictProblem", -"https://api.twitter.com/2/problems/disallowed-resource": "#/components/schemas/DisallowedResourceProblem", -"https://api.twitter.com/2/problems/duplicate-rules": "#/components/schemas/DuplicateRuleProblem", -"https://api.twitter.com/2/problems/invalid-request": "#/components/schemas/InvalidRequestProblem", -"https://api.twitter.com/2/problems/invalid-rules": "#/components/schemas/InvalidRuleProblem", -"https://api.twitter.com/2/problems/noncompliant-rules": "#/components/schemas/NonCompliantRulesProblem", -"https://api.twitter.com/2/problems/not-authorized-for-field": "#/components/schemas/FieldUnauthorizedProblem", -"https://api.twitter.com/2/problems/not-authorized-for-resource": "#/components/schemas/ResourceUnauthorizedProblem", -"https://api.twitter.com/2/problems/operational-disconnect": "#/components/schemas/OperationalDisconnectProblem", -"https://api.twitter.com/2/problems/resource-not-found": "#/components/schemas/ResourceNotFoundProblem", -"https://api.twitter.com/2/problems/resource-unavailable": "#/components/schemas/ResourceUnavailableProblem", -"https://api.twitter.com/2/problems/rule-cap": "#/components/schemas/RulesCapProblem", -"https://api.twitter.com/2/problems/streaming-connection": "#/components/schemas/ConnectionExceptionProblem", -"https://api.twitter.com/2/problems/unsupported-authentication": "#/components/schemas/UnsupportedAuthenticationProblem", -"https://api.twitter.com/2/problems/usage-capped": "#/components/schemas/UsageCapExceededProblem" -} -} -}, -"ProcessingInfo": { -"type": "object", -"required": [ -"type" -], -"properties": { -"check_after_secs": { -"type": "integer", -"description": "Number of seconds to check again for status", -"format": "int32" -}, -"progress_percent": { -"type": "integer", -"description": "Percent of upload progress", -"format": "int32" -}, -"state": { -"type": "string", -"description": "State of upload", -"enum": [ -"succeeded", -"in_progress", -"pending", -"failed" -] -} -} -}, -"ReplayJobCreateResponse": { -"type": "object", -"description": "Confirmation that the replay job request was accepted.", -"required": [ -"job_id", -"created_at" -], -"properties": { -"created_at": { -"type": "string", -"description": "The UTC timestamp indicating when the replay job was created.", -"format": "date-time", -"example": "2025-04-24T20:57:15.242Z" -}, -"job_id": { -"type": "string", -"description": "The unique identifier for the initiated replay job.", -"example": "1915510368169844736" -} -} -}, -"ReplySettings": { -"type": "string", -"description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, and following.", -"pattern": "^[A-Za-z]{1,12}$", -"enum": [ -"everyone", -"mentionedUsers", -"following", -"other" -] -}, -"ReplySettingsWithVerifiedUsers": { -"type": "string", -"description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, subscribers, verified and following.", -"pattern": "^[A-Za-z]{1,12}$", -"enum": [ -"everyone", -"mentionedUsers", -"following", -"other", -"subscribers", -"verified" -] -}, -"ResourceNotFoundProblem": { -"description": "A problem that indicates that a given Tweet, User, etc. does not exist.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -}, -{ -"type": "object", -"required": [ -"parameter", -"value", -"resource_id", -"resource_type" -], -"properties": { -"parameter": { -"type": "string", -"minLength": 1 -}, -"resource_id": { -"type": "string" -}, -"resource_type": { -"type": "string", -"enum": [ -"user", -"tweet", -"media", -"list", -"space" -] -}, -"value": { -"type": "string", -"description": "Value will match the schema of the field." -} -} -} -] -}, -"ResourceUnauthorizedProblem": { -"description": "A problem that indicates you are not allowed to see a particular Tweet, User, etc.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -}, -{ -"type": "object", -"required": [ -"value", -"resource_id", -"resource_type", -"section", -"parameter" -], -"properties": { -"parameter": { -"type": "string" -}, -"resource_id": { -"type": "string" -}, -"resource_type": { -"type": "string", -"enum": [ -"user", -"tweet", -"media", -"list", -"space" -] -}, -"section": { -"type": "string", -"enum": [ -"data", -"includes" -] -}, -"value": { -"type": "string" -} -} -} -] -}, -"ResourceUnavailableProblem": { -"description": "A problem that indicates a particular Tweet, User, etc. is not available to you.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -}, -{ -"type": "object", -"required": [ -"parameter", -"resource_id", -"resource_type" -], -"properties": { -"parameter": { -"type": "string", -"minLength": 1 -}, -"resource_id": { -"type": "string" -}, -"resource_type": { -"type": "string", -"enum": [ -"user", -"tweet", -"media", -"list", -"space" -] -} -} -} -] -}, -"ResultCount": { -"type": "integer", -"description": "The number of results returned in this response.", -"format": "int32" -}, -"Rule": { -"type": "object", -"description": "A user-provided stream filtering rule.", -"required": [ -"value" -], -"properties": { -"id": { -"$ref": "#/components/schemas/RuleId" -}, -"tag": { -"$ref": "#/components/schemas/RuleTag" -}, -"value": { -"$ref": "#/components/schemas/RuleValue" -} -} -}, -"RuleId": { -"type": "string", -"description": "Unique identifier of this rule.", -"pattern": "^[0-9]{1,19}$", -"example": "120897978112909812" -}, -"RuleNoId": { -"type": "object", -"description": "A user-provided stream filtering rule.", -"required": [ -"value" -], -"properties": { -"tag": { -"$ref": "#/components/schemas/RuleTag" -}, -"value": { -"$ref": "#/components/schemas/RuleValue" -} -} -}, -"RuleTag": { -"type": "string", -"description": "A tag meant for the labeling of user provided rules.", -"example": "Non-retweeted coffee Posts" -}, -"RuleValue": { -"type": "string", -"description": "The filterlang value of the rule.", -"example": "coffee -is:retweet" -}, -"RulesCapProblem": { -"description": "You have exceeded the maximum number of rules.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -} -] -}, -"RulesCount": { -"type": "object", -"description": "A count of user-provided stream filtering rules at the application and project levels.", -"properties": { -"all_project_client_apps": { -"$ref": "#/components/schemas/AllProjectClientApps" -}, -"cap_per_client_app": { -"type": "integer", -"description": "Cap of number of rules allowed per client application", -"format": "int32" -}, -"cap_per_project": { -"type": "integer", -"description": "Cap of number of rules allowed per project", -"format": "int32" -}, -"client_app_rules_count": { -"$ref": "#/components/schemas/AppRulesCount" -}, -"project_rules_count": { -"type": "integer", -"description": "Number of rules for project", -"format": "int32" -} -} -}, -"RulesLookupResponse": { -"type": "object", -"required": [ -"meta" -], -"properties": { -"data": { -"type": "array", -"items": { -"$ref": "#/components/schemas/Rule" -} -}, -"meta": { -"$ref": "#/components/schemas/RulesResponseMetadata" -} -} -}, -"RulesRequestSummary": { -"oneOf": [ -{ -"type": "object", -"description": "A summary of the results of the addition of user-specified stream filtering rules.", -"required": [ -"created", -"not_created", -"valid", -"invalid" -], -"properties": { -"created": { -"type": "integer", -"description": "Number of user-specified stream filtering rules that were created.", -"format": "int32", -"example": 1 -}, -"invalid": { -"type": "integer", -"description": "Number of invalid user-specified stream filtering rules.", -"format": "int32", -"example": 1 -}, -"not_created": { -"type": "integer", -"description": "Number of user-specified stream filtering rules that were not created.", -"format": "int32", -"example": 1 -}, -"valid": { -"type": "integer", -"description": "Number of valid user-specified stream filtering rules.", -"format": "int32", -"example": 1 -} -} -}, -{ -"type": "object", -"required": [ -"deleted", -"not_deleted" -], -"properties": { -"deleted": { -"type": "integer", -"description": "Number of user-specified stream filtering rules that were deleted.", -"format": "int32" -}, -"not_deleted": { -"type": "integer", -"description": "Number of user-specified stream filtering rules that were not deleted.", -"format": "int32" -} -} -} -] -}, -"RulesResponseMetadata": { -"type": "object", -"required": [ -"sent" -], -"properties": { -"next_token": { -"$ref": "#/components/schemas/NextToken" -}, -"result_count": { -"type": "integer", -"description": "Number of Rules in result set.", -"format": "int32" -}, -"sent": { -"type": "string" -}, -"summary": { -"$ref": "#/components/schemas/RulesRequestSummary" -} -} -}, -"SearchCount": { -"type": "object", -"description": "Represent a Search Count Result.", -"required": [ -"end", -"start", -"tweet_count" -], -"properties": { -"end": { -"$ref": "#/components/schemas/End" -}, -"start": { -"$ref": "#/components/schemas/Start" -}, -"tweet_count": { -"$ref": "#/components/schemas/TweetCount" -} -} -}, -"SensitiveMediaWarning": { -"type": "object", -"properties": { -"adult_content": { -"type": "boolean", -"description": "Indicates if the content contains adult material", -"example": true -}, -"graphic_violence": { -"type": "boolean", -"description": "Indicates if the content depicts graphic violence", -"example": true -}, -"other": { -"type": "boolean", -"description": "Indicates if the content has other sensitive characteristics", -"example": false -} -} -}, -"SharedInfo": { -"type": "object", -"properties": { -"shared": { -"type": "boolean", -"description": "Indicates if the media is shared in direct messages", -"example": false -} -} -}, -"Space": { -"type": "object", -"description": "", -"required": [ -"id", -"state" -], -"properties": { -"created_at": { -"type": "string", -"description": "Creation time of the Space.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"creator_id": { -"$ref": "#/components/schemas/UserId" -}, -"ended_at": { -"type": "string", -"description": "End time of the Space.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"host_ids": { -"type": "array", -"description": "The user ids for the hosts of the Space.", -"items": { -"$ref": "#/components/schemas/UserId" -} -}, -"id": { -"$ref": "#/components/schemas/SpaceId" -}, -"invited_user_ids": { -"type": "array", -"description": "An array of user ids for people who were invited to a Space.", -"items": { -"$ref": "#/components/schemas/UserId" -} -}, -"is_ticketed": { -"type": "boolean", -"description": "Denotes if the Space is a ticketed Space.", -"example": "false" -}, -"lang": { -"type": "string", -"description": "The language of the Space.", -"example": "en" -}, -"participant_count": { -"type": "integer", -"description": "The number of participants in a Space.", -"format": "int32", -"example": 10 -}, -"scheduled_start": { -"type": "string", -"description": "A date time stamp for when a Space is scheduled to begin.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"speaker_ids": { -"type": "array", -"description": "An array of user ids for people who were speakers in a Space.", -"items": { -"$ref": "#/components/schemas/UserId" -} -}, -"started_at": { -"type": "string", -"description": "When the Space was started as a date string.", -"format": "date-time", -"example": "2021-7-14T04:35:55Z" -}, -"state": { -"type": "string", -"description": "The current state of the Space.", -"enum": [ -"live", -"scheduled", -"ended" -], -"example": "live" -}, -"subscriber_count": { -"type": "integer", -"description": "The number of people who have either purchased a ticket or set a reminder for this Space.", -"format": "int32", -"example": 10 -}, -"title": { -"type": "string", -"description": "The title of the Space.", -"example": "Spaces are Awesome" -}, -"topics": { -"type": "array", -"description": "The topics of a Space, as selected by its creator.", -"items": { -"type": "object", -"description": "The X Topic object.", -"required": [ -"id", -"name" -], -"properties": { -"description": { -"type": "string", -"description": "The description of the given topic." -}, -"id": { -"type": "string", -"description": "An ID suitable for use in the REST API." -}, -"name": { -"type": "string", -"description": "The name of the given topic." -} -}, -"example": { -"description": "All about technology", -"id": "848920371311001600", -"name": "Technology" -} -} -}, -"updated_at": { -"type": "string", -"description": "When the Space was last updated.", -"format": "date-time", -"example": "2021-7-14T04:35:55Z" -} -} -}, -"SpaceId": { -"type": "string", -"description": "The unique identifier of this Space.", -"pattern": "^[a-zA-Z0-9]{1,13}$", -"example": "1SLjjRYNejbKM" -}, -"Start": { -"type": "string", -"description": "The start time of the bucket.", -"format": "date-time" -}, -"Sticker": { -"type": "object", -"properties": { -"aspect_ratio": { -"type": "number", -"description": "width-to-height ratio of the media", -"format": "double", -"example": 1.78 -}, -"group_annotation_id": { -"type": "number", -"description": "A unique identifier for the group of annotations associated with the media", -"format": "long", -"example": 987654321098765 -}, -"id": { -"type": "string", -"description": "Unique identifier for sticker", -"example": "12345" -}, -"sticker_set_annotation_id": { -"type": "number", -"description": "A unique identifier for the sticker set associated with the media", -"format": "long", -"example": 123456789012345 -}, -"transform_a": { -"type": "number", -"description": "Scale or rotate the media on the x-axis", -"format": "double", -"example": 1 -}, -"transform_b": { -"type": "number", -"description": "Skew the media on the x-axis", -"format": "double", -"example": 0 -}, -"transform_c": { -"type": "number", -"description": "Skew the media on the y-axis", -"format": "double", -"example": 0 -}, -"transform_d": { -"type": "number", -"description": "Scale or rotate the media on the y-axis", -"format": "double", -"example": 1 -}, -"transform_tx": { -"type": "number", -"description": "Scale or rotate the media on the x-axis", -"format": "double", -"example": 10.5 -}, -"transform_ty": { -"type": "number", -"description": "The vertical translation (shift) value for the media", -"format": "double", -"example": -5.2 -} -} -}, -"StickerInfo": { -"type": "object", -"properties": { -"stickers": { -"type": "array", -"description": "Stickers list must not be empty and should not exceed 25", -"items": { -"$ref": "#/components/schemas/Sticker" -} -} -} -}, -"StreamingLikeResponseV2": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/LikeWithTweetAuthor" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"StreamingTweetResponse": { -"type": "object", -"properties": { -"data": { -"$ref": "#/components/schemas/Tweet" -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -}, -"includes": { -"$ref": "#/components/schemas/Expansions" -} -} -}, -"SubscriptionsCountGetResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"description": "The count of active subscriptions across all webhooks", -"required": [ -"account_name", -"provisioned_count", -"subscriptions_count_all", -"subscriptions_count_direct_messages" -], -"properties": { -"account_name": { -"type": "string", -"description": "The account name" -}, -"provisioned_count": { -"type": "string", -"description": "The limit for subscriptions for this app" -}, -"subscriptions_count_all": { -"type": "string", -"description": "The number of active subscriptions across all webhooks" -}, -"subscriptions_count_direct_messages": { -"type": "string", -"description": "The number of active direct message subscriptions" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"SubscriptionsCreateRequest": { -"type": "object" -}, -"SubscriptionsCreateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"subscribed": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"SubscriptionsDeleteResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"subscribed": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"SubscriptionsGetResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"subscribed": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"SubscriptionsListGetResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"description": "The list of active subscriptions for a specified webhook", -"required": [ -"application_id", -"webhook_id", -"webhook_url", -"subscriptions" -], -"properties": { -"application_id": { -"type": "string", -"description": "The application ID" -}, -"subscriptions": { -"type": "array", -"description": "List of active subscriptions for the webhook", -"items": { -"type": "object", -"properties": { -"user_id": { -"type": "string", -"description": "The ID of the user the webhook is subscribed to" -} -} -} -}, -"webhook_id": { -"type": "string", -"description": "The associated webhook ID" -}, -"webhook_url": { -"type": "string", -"description": "The url for the associated webhook" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"SubtitleLanguageCode": { -"type": "string", -"description": "The language code should be a BCP47 code (e.g. 'EN\", \"SP\")", -"pattern": "^[A-Z]{2}$", -"example": "EN" -}, -"Subtitles": { -"type": "object", -"properties": { -"display_name": { -"type": "string", -"description": "Language name in a human readable form", -"example": "English" -}, -"id": { -"$ref": "#/components/schemas/MediaId" -}, -"language_code": { -"$ref": "#/components/schemas/SubtitleLanguageCode" -} -} -}, -"SubtitlesCreateRequest": { -"type": "object", -"properties": { -"id": { -"$ref": "#/components/schemas/MediaId" -}, -"media_category": { -"$ref": "#/components/schemas/MediaCategorySubtitles" -}, -"subtitles": { -"$ref": "#/components/schemas/Subtitles" -} -} -}, -"SubtitlesCreateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"required": [ -"id", -"media_category", -"associated_subtitles" -], -"properties": { -"associated_subtitles": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Subtitles" -} -}, -"id": { -"$ref": "#/components/schemas/MediaId" -}, -"media_category": { -"$ref": "#/components/schemas/MediaCategorySubtitles" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"SubtitlesDeleteRequest": { -"type": "object", -"properties": { -"id": { -"$ref": "#/components/schemas/MediaId" -}, -"language_code": { -"$ref": "#/components/schemas/SubtitleLanguageCode" -}, -"media_category": { -"$ref": "#/components/schemas/MediaCategorySubtitles" -} -} -}, -"SubtitlesDeleteResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"required": [ -"deleted" -], -"properties": { -"deleted": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"TimestampedMetrics": { -"type": "object", -"properties": { -"metrics": { -"$ref": "#/components/schemas/Metrics" -}, -"timestamp": { -"type": "string", -"title": "Timestamp", -"description": "ISO8601 Time", -"example": "2025-03-17T06:30:00Z" -} -} -}, -"Topic": { -"type": "object", -"description": "The topic of a Space, as selected by its creator.", -"required": [ -"id", -"name" -], -"properties": { -"description": { -"type": "string", -"description": "The description of the given topic.", -"example": "All about technology" -}, -"id": { -"$ref": "#/components/schemas/TopicId" -}, -"name": { -"type": "string", -"description": "The name of the given topic.", -"example": "Technology" -} -} -}, -"TopicId": { -"type": "string", -"description": "Unique identifier of this Topic." -}, -"Trend": { -"type": "object", -"description": "A trend.", -"properties": { -"trend_name": { -"type": "string", -"description": "Name of the trend." -}, -"tweet_count": { -"type": "integer", -"description": "Number of Posts in this trend.", -"format": "int32" -} -} -}, -"Tweet": { -"type": "object", -"properties": { -"attachments": { -"type": "object", -"description": "Specifies the type of attachments (if any) present in this Tweet.", -"properties": { -"media_keys": { -"type": "array", -"description": "A list of Media Keys for each one of the media attachments (if media are attached).", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/MediaKey" -} -}, -"media_source_tweet_id": { -"type": "array", -"description": "A list of Posts the media on this Tweet was originally posted in. For example, if the media on a tweet is re-used in another Tweet, this refers to the original, source Tweet..", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/TweetId" -} -}, -"poll_ids": { -"type": "array", -"description": "A list of poll IDs (if polls are attached).", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/PollId" -} -} -} -}, -"author_id": { -"$ref": "#/components/schemas/UserId" -}, -"community_id": { -"$ref": "#/components/schemas/CommunityId" -}, -"context_annotations": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/ContextAnnotation" -} -}, -"conversation_id": { -"$ref": "#/components/schemas/TweetId" -}, -"created_at": { -"type": "string", -"description": "Creation time of the Tweet.", -"format": "date-time", -"example": "2021-01-06T18:40:40.000Z" -}, -"display_text_range": { -"$ref": "#/components/schemas/DisplayTextRange" -}, -"edit_controls": { -"type": "object", -"required": [ -"is_edit_eligible", -"editable_until", -"edits_remaining" -], -"properties": { -"editable_until": { -"type": "string", -"description": "Time when Tweet is no longer editable.", -"format": "date-time", -"example": "2021-01-06T18:40:40.000Z" -}, -"edits_remaining": { -"type": "integer", -"description": "Number of times this Tweet can be edited." -}, -"is_edit_eligible": { -"type": "boolean", -"description": "Indicates if this Tweet is eligible to be edited.", -"example": false -} -} -}, -"edit_history_tweet_ids": { -"type": "array", -"description": "A list of Tweet Ids in this Tweet chain.", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/TweetId" -} -}, -"entities": { -"$ref": "#/components/schemas/FullTextEntities" -}, -"geo": { -"type": "object", -"description": "The location tagged on the Tweet, if the user provided one.", -"properties": { -"coordinates": { -"$ref": "#/components/schemas/Point" -}, -"place_id": { -"$ref": "#/components/schemas/PlaceId" -} -} -}, -"id": { -"$ref": "#/components/schemas/TweetId" -}, -"in_reply_to_user_id": { -"$ref": "#/components/schemas/UserId" -}, -"lang": { -"type": "string", -"description": "Language of the Tweet, if detected by X. Returned as a BCP47 language tag.", -"example": "en" -}, -"non_public_metrics": { -"type": "object", -"description": "Nonpublic engagement metrics for the Tweet at the time of the request.", -"properties": { -"impression_count": { -"type": "integer", -"description": "Number of times this Tweet has been viewed.", -"format": "int32" -} -} -}, -"note_tweet": { -"type": "object", -"description": "The full-content of the Tweet, including text beyond 280 characters.", -"properties": { -"entities": { -"type": "object", -"properties": { -"cashtags": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/CashtagEntity" -} -}, -"hashtags": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/HashtagEntity" -} -}, -"mentions": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/MentionEntity" -} -}, -"urls": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/UrlEntity" -} -} -} -}, -"text": { -"$ref": "#/components/schemas/NoteTweetText" -} -} -}, -"organic_metrics": { -"type": "object", -"description": "Organic nonpublic engagement metrics for the Tweet at the time of the request.", -"required": [ -"impression_count", -"retweet_count", -"reply_count", -"like_count" -], -"properties": { -"impression_count": { -"type": "integer", -"description": "Number of times this Tweet has been viewed." -}, -"like_count": { -"type": "integer", -"description": "Number of times this Tweet has been liked." -}, -"reply_count": { -"type": "integer", -"description": "Number of times this Tweet has been replied to." -}, -"retweet_count": { -"type": "integer", -"description": "Number of times this Tweet has been Retweeted." -} -} -}, -"possibly_sensitive": { -"type": "boolean", -"description": "Indicates if this Tweet contains URLs marked as sensitive, for example content suitable for mature audiences.", -"example": false -}, -"promoted_metrics": { -"type": "object", -"description": "Promoted nonpublic engagement metrics for the Tweet at the time of the request.", -"properties": { -"impression_count": { -"type": "integer", -"description": "Number of times this Tweet has been viewed.", -"format": "int32" -}, -"like_count": { -"type": "integer", -"description": "Number of times this Tweet has been liked.", -"format": "int32" -}, -"reply_count": { -"type": "integer", -"description": "Number of times this Tweet has been replied to.", -"format": "int32" -}, -"retweet_count": { -"type": "integer", -"description": "Number of times this Tweet has been Retweeted.", -"format": "int32" -} -} -}, -"public_metrics": { -"type": "object", -"description": "Engagement metrics for the Tweet at the time of the request.", -"required": [ -"retweet_count", -"reply_count", -"like_count", -"impression_count", -"bookmark_count" -], -"properties": { -"bookmark_count": { -"type": "integer", -"description": "Number of times this Tweet has been bookmarked.", -"format": "int32" -}, -"impression_count": { -"type": "integer", -"description": "Number of times this Tweet has been viewed.", -"format": "int32" -}, -"like_count": { -"type": "integer", -"description": "Number of times this Tweet has been liked." -}, -"quote_count": { -"type": "integer", -"description": "Number of times this Tweet has been quoted." -}, -"reply_count": { -"type": "integer", -"description": "Number of times this Tweet has been replied to." -}, -"retweet_count": { -"type": "integer", -"description": "Number of times this Tweet has been Retweeted." -} -} -}, -"referenced_tweets": { -"type": "array", -"description": "A list of Posts this Tweet refers to. For example, if the parent Tweet is a Retweet, a Quoted Tweet or a Reply, it will include the related Tweet referenced to by its parent.", -"minItems": 1, -"items": { -"type": "object", -"required": [ -"type", -"id" -], -"properties": { -"id": { -"$ref": "#/components/schemas/TweetId" -}, -"type": { -"type": "string", -"enum": [ -"retweeted", -"quoted", -"replied_to" -] -} -} -} -}, -"reply_settings": { -"$ref": "#/components/schemas/ReplySettingsWithVerifiedUsers" -}, -"scopes": { -"type": "object", -"description": "The scopes for this tweet", -"properties": { -"followers": { -"type": "boolean", -"description": "Indicates if this Tweet is viewable by followers without the Tweet ID", -"example": false -} -} -}, -"source": { -"type": "string", -"description": "This is deprecated." -}, -"text": { -"$ref": "#/components/schemas/TweetText" -}, -"username": { -"$ref": "#/components/schemas/UserName" -}, -"withheld": { -"$ref": "#/components/schemas/TweetWithheld" -} -}, -"example": { -"author_id": "2244994945", -"created_at": "Wed Jan 06 18:40:40 +0000 2021", -"id": "1346889436626259968", -"text": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i", -"username": "XDevelopers" -} -}, -"TweetComplianceData": { -"description": "Tweet compliance data.", -"oneOf": [ -{ -"$ref": "#/components/schemas/TweetDeleteComplianceSchema" -}, -{ -"$ref": "#/components/schemas/TweetWithheldComplianceSchema" -}, -{ -"$ref": "#/components/schemas/TweetDropComplianceSchema" -}, -{ -"$ref": "#/components/schemas/TweetUndropComplianceSchema" -}, -{ -"$ref": "#/components/schemas/TweetEditComplianceSchema" -} -] -}, -"TweetComplianceSchema": { -"type": "object", -"required": [ -"tweet", -"event_at" -], -"properties": { -"event_at": { -"type": "string", -"description": "Event time.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"quote_tweet_id": { -"$ref": "#/components/schemas/TweetId" -}, -"tweet": { -"type": "object", -"required": [ -"id", -"author_id" -], -"properties": { -"author_id": { -"$ref": "#/components/schemas/UserId" -}, -"id": { -"$ref": "#/components/schemas/TweetId" -} -} -} -} -}, -"TweetComplianceStreamResponse": { -"description": "Tweet compliance stream events.", -"oneOf": [ -{ -"type": "object", -"description": "Compliance event.", -"required": [ -"data" -], -"properties": { -"data": { -"$ref": "#/components/schemas/TweetComplianceData" -} -} -}, -{ -"type": "object", -"required": [ -"errors" -], -"properties": { -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -] -}, -"TweetCount": { -"type": "integer", -"description": "The count for the bucket." -}, -"TweetCreateRequest": { -"type": "object", -"properties": { -"card_uri": { -"type": "string", -"description": "Card Uri Parameter. This is mutually exclusive from Quote Tweet Id, Poll, Media, and Direct Message Deep Link." -}, -"community_id": { -"$ref": "#/components/schemas/CommunityId" -}, -"direct_message_deep_link": { -"type": "string", -"description": "Link to take the conversation from the public timeline to a private Direct Message." -}, -"for_super_followers_only": { -"type": "boolean", -"description": "Exclusive Tweet for super followers.", -"default": false -}, -"geo": { -"type": "object", -"description": "Place ID being attached to the Tweet for geo location.", -"properties": { -"place_id": { -"type": "string" -} -}, -"additionalProperties": false -}, -"media": { -"type": "object", -"description": "Media information being attached to created Tweet. This is mutually exclusive from Quote Tweet Id, Poll, and Card URI.", -"required": [ -"media_ids" -], -"properties": { -"media_ids": { -"type": "array", -"description": "A list of Media Ids to be attached to a created Tweet.", -"minItems": 1, -"maxItems": 4, -"items": { -"$ref": "#/components/schemas/MediaId" -} -}, -"tagged_user_ids": { -"type": "array", -"description": "A list of User Ids to be tagged in the media for created Tweet.", -"minItems": 0, -"maxItems": 10, -"items": { -"$ref": "#/components/schemas/UserId" -} -} -}, -"additionalProperties": false -}, -"nullcast": { -"type": "boolean", -"description": "Nullcasted (promoted-only) Posts do not appear in the public timeline and are not served to followers.", -"default": false -}, -"poll": { -"type": "object", -"description": "Poll options for a Tweet with a poll. This is mutually exclusive from Media, Quote Tweet Id, and Card URI.", -"required": [ -"options", -"duration_minutes" -], -"properties": { -"duration_minutes": { -"type": "integer", -"description": "Duration of the poll in minutes.", -"minimum": 5, -"maximum": 10080, -"format": "int32" -}, -"options": { -"type": "array", -"minItems": 2, -"maxItems": 4, -"items": { -"type": "string", -"description": "The text of a poll choice.", -"minLength": 1, -"maxLength": 25 -} -}, -"reply_settings": { -"type": "string", -"description": "Settings to indicate who can reply to the Tweet.", -"enum": [ -"following", -"mentionedUsers", -"subscribers", -"verified" -] -} -}, -"additionalProperties": false -}, -"quote_tweet_id": { -"$ref": "#/components/schemas/TweetId" -}, -"reply": { -"type": "object", -"description": "Tweet information of the Tweet being replied to.", -"required": [ -"in_reply_to_tweet_id" -], -"properties": { -"exclude_reply_user_ids": { -"type": "array", -"description": "A list of User Ids to be excluded from the reply Tweet.", -"items": { -"$ref": "#/components/schemas/UserId" -} -}, -"in_reply_to_tweet_id": { -"$ref": "#/components/schemas/TweetId" -} -}, -"additionalProperties": false -}, -"reply_settings": { -"type": "string", -"description": "Settings to indicate who can reply to the Tweet.", -"enum": [ -"following", -"mentionedUsers", -"subscribers", -"verified" -] -}, -"text": { -"$ref": "#/components/schemas/TweetText" -} -}, -"additionalProperties": false -}, -"TweetCreateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"required": [ -"id", -"text" -], -"properties": { -"id": { -"$ref": "#/components/schemas/TweetId" -}, -"text": { -"$ref": "#/components/schemas/TweetText" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"TweetDeleteComplianceSchema": { -"type": "object", -"required": [ -"delete" -], -"properties": { -"delete": { -"$ref": "#/components/schemas/TweetComplianceSchema" -} -} -}, -"TweetDeleteResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"required": [ -"deleted" -], -"properties": { -"deleted": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"TweetDropComplianceSchema": { -"type": "object", -"required": [ -"drop" -], -"properties": { -"drop": { -"$ref": "#/components/schemas/TweetComplianceSchema" -} -} -}, -"TweetEditComplianceObjectSchema": { -"type": "object", -"required": [ -"tweet", -"event_at", -"initial_tweet_id", -"edit_tweet_ids" -], -"properties": { -"edit_tweet_ids": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/TweetId" -} -}, -"event_at": { -"type": "string", -"description": "Event time.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"initial_tweet_id": { -"$ref": "#/components/schemas/TweetId" -}, -"tweet": { -"type": "object", -"required": [ -"id" -], -"properties": { -"id": { -"$ref": "#/components/schemas/TweetId" -} -} -} -} -}, -"TweetEditComplianceSchema": { -"type": "object", -"required": [ -"tweet_edit" -], -"properties": { -"tweet_edit": { -"$ref": "#/components/schemas/TweetEditComplianceObjectSchema" -} -} -}, -"TweetHideRequest": { -"type": "object", -"required": [ -"hidden" -], -"properties": { -"hidden": { -"type": "boolean" -} -} -}, -"TweetHideResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"hidden": { -"type": "boolean" -} -} -} -} -}, -"TweetId": { -"type": "string", -"description": "Unique identifier of this Tweet. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", -"pattern": "^[0-9]{1,19}$", -"example": "1346889436626259968" -}, -"TweetLabelData": { -"description": "Tweet label data.", -"oneOf": [ -{ -"$ref": "#/components/schemas/TweetNoticeSchema" -}, -{ -"$ref": "#/components/schemas/TweetUnviewableSchema" -} -] -}, -"TweetLabelStreamResponse": { -"description": "Tweet label stream events.", -"oneOf": [ -{ -"type": "object", -"description": "Tweet Label event.", -"required": [ -"data" -], -"properties": { -"data": { -"$ref": "#/components/schemas/TweetLabelData" -} -} -}, -{ -"type": "object", -"required": [ -"errors" -], -"properties": { -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -] -}, -"TweetNotice": { -"type": "object", -"required": [ -"tweet", -"event_type", -"event_at", -"application" -], -"properties": { -"application": { -"type": "string", -"description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", -"example": "apply" -}, -"details": { -"type": "string", -"description": "Information shown on the Tweet label" -}, -"event_at": { -"type": "string", -"description": "Event time.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"event_type": { -"type": "string", -"description": "The type of label on the Tweet", -"example": "misleading" -}, -"extended_details_url": { -"type": "string", -"description": "Link to more information about this kind of label" -}, -"label_title": { -"type": "string", -"description": "Title/header of the Tweet label" -}, -"tweet": { -"type": "object", -"required": [ -"id", -"author_id" -], -"properties": { -"author_id": { -"$ref": "#/components/schemas/UserId" -}, -"id": { -"$ref": "#/components/schemas/TweetId" -} -} -} -} -}, -"TweetNoticeSchema": { -"type": "object", -"required": [ -"public_tweet_notice" -], -"properties": { -"public_tweet_notice": { -"$ref": "#/components/schemas/TweetNotice" -} -} -}, -"TweetTakedownComplianceSchema": { -"type": "object", -"required": [ -"tweet", -"withheld_in_countries", -"event_at" -], -"properties": { -"event_at": { -"type": "string", -"description": "Event time.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"quote_tweet_id": { -"$ref": "#/components/schemas/TweetId" -}, -"tweet": { -"type": "object", -"required": [ -"id", -"author_id" -], -"properties": { -"author_id": { -"$ref": "#/components/schemas/UserId" -}, -"id": { -"$ref": "#/components/schemas/TweetId" -} -} -}, -"withheld_in_countries": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/CountryCode" -} -} -} -}, -"TweetText": { -"type": "string", -"description": "The content of the Tweet.", -"example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" -}, -"TweetUndropComplianceSchema": { -"type": "object", -"required": [ -"undrop" -], -"properties": { -"undrop": { -"$ref": "#/components/schemas/TweetComplianceSchema" -} -} -}, -"TweetUnviewable": { -"type": "object", -"required": [ -"tweet", -"event_at", -"application" -], -"properties": { -"application": { -"type": "string", -"description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", -"example": "apply" -}, -"event_at": { -"type": "string", -"description": "Event time.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"tweet": { -"type": "object", -"required": [ -"id", -"author_id" -], -"properties": { -"author_id": { -"$ref": "#/components/schemas/UserId" -}, -"id": { -"$ref": "#/components/schemas/TweetId" -} -} -} -} -}, -"TweetUnviewableSchema": { -"type": "object", -"required": [ -"public_tweet_unviewable" -], -"properties": { -"public_tweet_unviewable": { -"$ref": "#/components/schemas/TweetUnviewable" -} -} -}, -"TweetWithheld": { -"type": "object", -"description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", -"required": [ -"copyright", -"country_codes" -], -"properties": { -"copyright": { -"type": "boolean", -"description": "Indicates if the content is being withheld for on the basis of copyright infringement." -}, -"country_codes": { -"type": "array", -"description": "Provides a list of countries where this content is not available.", -"minItems": 1, -"uniqueItems": true, -"items": { -"$ref": "#/components/schemas/CountryCode" -} -}, -"scope": { -"type": "string", -"description": "Indicates whether the content being withheld is the `tweet` or a `user`.", -"enum": [ -"tweet", -"user" -] -} -} -}, -"TweetWithheldComplianceSchema": { -"type": "object", -"required": [ -"withheld" -], -"properties": { -"withheld": { -"$ref": "#/components/schemas/TweetTakedownComplianceSchema" -} -} -}, -"UnlikeComplianceSchema": { -"type": "object", -"required": [ -"favorite", -"event_at" -], -"properties": { -"event_at": { -"type": "string", -"description": "Event time.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"favorite": { -"type": "object", -"required": [ -"id", -"user_id" -], -"properties": { -"id": { -"$ref": "#/components/schemas/TweetId" -}, -"user_id": { -"$ref": "#/components/schemas/UserId" -} -} -} -} -}, -"UnsupportedAuthenticationProblem": { -"description": "A problem that indicates that the authentication used is not supported.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -} -] -}, -"UploadExpiration": { -"type": "string", -"description": "Expiration time of the upload URL.", -"format": "date-time", -"example": "2021-01-06T18:40:40.000Z" -}, -"UploadSource": { -"type": "object", -"properties": { -"upload_source": { -"type": "string", -"description": "Records the source (e.g., app, device) from which the media was uploaded", -"example": "gallery" -} -} -}, -"UploadUrl": { -"type": "string", -"description": "URL to which the user will upload their Tweet or user IDs.", -"format": "uri" -}, -"Url": { -"type": "string", -"description": "A validly formatted URL.", -"format": "uri", -"example": "https://developer.twitter.com/en/docs/twitter-api" -}, -"UrlEntity": { -"description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", -"allOf": [ -{ -"$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" -}, -{ -"$ref": "#/components/schemas/UrlFields" -} -] -}, -"UrlEntityDm": { -"description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", -"allOf": [ -{ -"$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" -}, -{ -"$ref": "#/components/schemas/UrlFields" -} -] -}, -"UrlFields": { -"type": "object", -"description": "Represent the portion of text recognized as a URL.", -"required": [ -"url" -], -"properties": { -"description": { -"type": "string", -"description": "Description of the URL landing page.", -"example": "This is a description of the website." -}, -"display_url": { -"type": "string", -"description": "The URL as displayed in the X client.", -"example": "twittercommunity.com/t/introducing-…" -}, -"expanded_url": { -"$ref": "#/components/schemas/Url" -}, -"images": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/UrlImage" -} -}, -"media_key": { -"$ref": "#/components/schemas/MediaKey" -}, -"status": { -"$ref": "#/components/schemas/HttpStatusCode" -}, -"title": { -"type": "string", -"description": "Title of the page the URL points to.", -"example": "Introducing the v2 follow lookup endpoints" -}, -"unwound_url": { -"type": "string", -"description": "Fully resolved url.", -"format": "uri", -"example": "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118" -}, -"url": { -"$ref": "#/components/schemas/Url" -} -} -}, -"UrlImage": { -"type": "object", -"description": "Represent the information for the URL image.", -"properties": { -"height": { -"$ref": "#/components/schemas/MediaHeight" -}, -"url": { -"$ref": "#/components/schemas/Url" -}, -"width": { -"$ref": "#/components/schemas/MediaWidth" -} -} -}, -"Usage": { -"type": "object", -"description": "Usage per client app", -"properties": { -"cap_reset_day": { -"type": "integer", -"description": "Number of days left for the Tweet cap to reset", -"format": "int32" -}, -"daily_client_app_usage": { -"type": "array", -"description": "The daily usage breakdown for each Client Application a project", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/ClientAppUsage" -} -}, -"daily_project_usage": { -"type": "object", -"description": "The daily usage breakdown for a project", -"properties": { -"project_id": { -"type": "integer", -"description": "The unique identifier for this project", -"format": "int32" -}, -"usage": { -"type": "array", -"description": "The usage value", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/UsageFields" -} -} -} -}, -"project_cap": { -"type": "integer", -"description": "Total number of Posts that can be read in this project per month", -"format": "int32" -}, -"project_id": { -"type": "string", -"description": "The unique identifier for this project", -"format": "^[0-9]{1,19}$" -}, -"project_usage": { -"type": "integer", -"description": "The number of Posts read in this project", -"format": "int32" -} -} -}, -"UsageCapExceededProblem": { -"description": "A problem that indicates that a usage cap has been exceeded.", -"allOf": [ -{ -"$ref": "#/components/schemas/Problem" -}, -{ -"type": "object", -"properties": { -"period": { -"type": "string", -"enum": [ -"Daily", -"Monthly" -] -}, -"scope": { -"type": "string", -"enum": [ -"Account", -"Product" -] -} -} -} -] -}, -"UsageFields": { -"type": "object", -"description": "Represents the data for Usage", -"properties": { -"date": { -"type": "string", -"description": "The time period for the usage", -"format": "date-time", -"example": "2021-01-06T18:40:40.000Z" -}, -"usage": { -"type": "integer", -"description": "The usage value", -"format": "int32" -} -} -}, -"User": { -"type": "object", -"description": "The X User object.", -"required": [ -"id", -"name", -"username" -], -"properties": { -"affiliation": { -"type": "object", -"description": "Metadata about a user's affiliation.", -"properties": { -"badge_url": { -"type": "string", -"description": "The badge URL corresponding to the affiliation.", -"format": "uri" -}, -"description": { -"type": "string", -"description": "The description of the affiliation." -}, -"url": { -"type": "string", -"description": "The URL, if available, to details about an affiliation.", -"format": "uri" -}, -"user_id": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/UserId" -} -} -} -}, -"connection_status": { -"type": "array", -"description": "Returns detailed information about the relationship between two users.", -"minItems": 0, -"items": { -"type": "string", -"description": "Type of connection between users.", -"enum": [ -"follow_request_received", -"follow_request_sent", -"blocking", -"followed_by", -"following", -"muting" -] -} -}, -"created_at": { -"type": "string", -"description": "Creation time of this User.", -"format": "date-time" -}, -"description": { -"type": "string", -"description": "The text of this User's profile description (also known as bio), if the User provided one." -}, -"entities": { -"type": "object", -"description": "A list of metadata found in the User's profile description.", -"properties": { -"description": { -"$ref": "#/components/schemas/FullTextEntities" -}, -"url": { -"type": "object", -"description": "Expanded details for the URL specified in the User's profile, with start and end indices.", -"properties": { -"urls": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/UrlEntity" -} -} -} -} -} -}, -"id": { -"$ref": "#/components/schemas/UserId" -}, -"location": { -"type": "string", -"description": "The location specified in the User's profile, if the User provided one. As this is a freeform value, it may not indicate a valid location, but it may be fuzzily evaluated when performing searches with location queries." -}, -"most_recent_tweet_id": { -"$ref": "#/components/schemas/TweetId" -}, -"name": { -"type": "string", -"description": "The friendly name of this User, as shown on their profile." -}, -"pinned_tweet_id": { -"$ref": "#/components/schemas/TweetId" -}, -"profile_banner_url": { -"type": "string", -"description": "The URL to the profile banner for this User.", -"format": "uri" -}, -"profile_image_url": { -"type": "string", -"description": "The URL to the profile image for this User.", -"format": "uri" -}, -"protected": { -"type": "boolean", -"description": "Indicates if this User has chosen to protect their Posts (in other words, if this User's Posts are private)." -}, -"public_metrics": { -"type": "object", -"description": "A list of metrics for this User.", -"required": [ -"followers_count", -"following_count", -"tweet_count", -"listed_count" -], -"properties": { -"followers_count": { -"type": "integer", -"description": "Number of Users who are following this User." -}, -"following_count": { -"type": "integer", -"description": "Number of Users this User is following." -}, -"like_count": { -"type": "integer", -"description": "The number of likes created by this User." -}, -"listed_count": { -"type": "integer", -"description": "The number of lists that include this User." -}, -"tweet_count": { -"type": "integer", -"description": "The number of Posts (including Retweets) posted by this User." -} -} -}, -"receives_your_dm": { -"type": "boolean", -"description": "Indicates if you can send a DM to this User" -}, -"subscription_type": { -"type": "string", -"description": "The X Blue subscription type of the user, eg: Basic, Premium, PremiumPlus or None.", -"enum": [ -"Basic", -"Premium", -"PremiumPlus", -"None" -] -}, -"url": { -"type": "string", -"description": "The URL specified in the User's profile." -}, -"username": { -"$ref": "#/components/schemas/UserName" -}, -"verified": { -"type": "boolean", -"description": "Indicate if this User is a verified X User." -}, -"verified_type": { -"type": "string", -"description": "The X Blue verified type of the user, eg: blue, government, business or none.", -"enum": [ -"blue", -"government", -"business", -"none" -] -}, -"withheld": { -"$ref": "#/components/schemas/UserWithheld" -} -}, -"example": { -"created_at": "2013-12-14T04:35:55Z", -"id": "2244994945", -"name": "X Dev", -"protected": false, -"username": "TwitterDev" -} -}, -"UserComplianceData": { -"description": "User compliance data.", -"oneOf": [ -{ -"$ref": "#/components/schemas/UserProtectComplianceSchema" -}, -{ -"$ref": "#/components/schemas/UserUnprotectComplianceSchema" -}, -{ -"$ref": "#/components/schemas/UserDeleteComplianceSchema" -}, -{ -"$ref": "#/components/schemas/UserUndeleteComplianceSchema" -}, -{ -"$ref": "#/components/schemas/UserSuspendComplianceSchema" -}, -{ -"$ref": "#/components/schemas/UserUnsuspendComplianceSchema" -}, -{ -"$ref": "#/components/schemas/UserWithheldComplianceSchema" -}, -{ -"$ref": "#/components/schemas/UserScrubGeoSchema" -}, -{ -"$ref": "#/components/schemas/UserProfileModificationComplianceSchema" -} -] -}, -"UserComplianceSchema": { -"type": "object", -"required": [ -"user", -"event_at" -], -"properties": { -"event_at": { -"type": "string", -"description": "Event time.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"user": { -"type": "object", -"required": [ -"id" -], -"properties": { -"id": { -"$ref": "#/components/schemas/UserId" -} -} -} -} -}, -"UserComplianceStreamResponse": { -"description": "User compliance stream events.", -"oneOf": [ -{ -"type": "object", -"description": "User compliance event.", -"required": [ -"data" -], -"properties": { -"data": { -"$ref": "#/components/schemas/UserComplianceData" -} -} -}, -{ -"type": "object", -"required": [ -"errors" -], -"properties": { -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -] -}, -"UserDeleteComplianceSchema": { -"type": "object", -"required": [ -"user_delete" -], -"properties": { -"user_delete": { -"$ref": "#/components/schemas/UserComplianceSchema" -} -} -}, -"UserId": { -"type": "string", -"description": "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", -"pattern": "^[0-9]{1,19}$", -"example": "2244994945" -}, -"UserIdMatchesAuthenticatedUser": { -"type": "string", -"description": "Unique identifier of this User. The value must be the same as the authenticated user.", -"example": "2244994945" -}, -"UserName": { -"type": "string", -"description": "The X handle (screen name) of this user.", -"pattern": "^[A-Za-z0-9_]{1,15}$" -}, -"UserProfileModificationComplianceSchema": { -"type": "object", -"required": [ -"user_profile_modification" -], -"properties": { -"user_profile_modification": { -"$ref": "#/components/schemas/UserProfileModificationObjectSchema" -} -} -}, -"UserProfileModificationObjectSchema": { -"type": "object", -"required": [ -"user", -"profile_field", -"new_value", -"event_at" -], -"properties": { -"event_at": { -"type": "string", -"description": "Event time.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"new_value": { -"type": "string" -}, -"profile_field": { -"type": "string" -}, -"user": { -"type": "object", -"required": [ -"id" -], -"properties": { -"id": { -"$ref": "#/components/schemas/UserId" -} -} -} -} -}, -"UserProtectComplianceSchema": { -"type": "object", -"required": [ -"user_protect" -], -"properties": { -"user_protect": { -"$ref": "#/components/schemas/UserComplianceSchema" -} -} -}, -"UserScrubGeoObjectSchema": { -"type": "object", -"required": [ -"user", -"up_to_tweet_id", -"event_at" -], -"properties": { -"event_at": { -"type": "string", -"description": "Event time.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"up_to_tweet_id": { -"$ref": "#/components/schemas/TweetId" -}, -"user": { -"type": "object", -"required": [ -"id" -], -"properties": { -"id": { -"$ref": "#/components/schemas/UserId" -} -} -} -} -}, -"UserScrubGeoSchema": { -"type": "object", -"required": [ -"scrub_geo" -], -"properties": { -"scrub_geo": { -"$ref": "#/components/schemas/UserScrubGeoObjectSchema" -} -} -}, -"UserSearchQueryVnext": { -"type": "string", -"description": "The the search string by which to query for users.", -"pattern": "^[A-Za-z0-9_' ]{1,50}$" -}, -"UserSuspendComplianceSchema": { -"type": "object", -"required": [ -"user_suspend" -], -"properties": { -"user_suspend": { -"$ref": "#/components/schemas/UserComplianceSchema" -} -} -}, -"UserTakedownComplianceSchema": { -"type": "object", -"required": [ -"user", -"withheld_in_countries", -"event_at" -], -"properties": { -"event_at": { -"type": "string", -"description": "Event time.", -"format": "date-time", -"example": "2021-07-06T18:40:40.000Z" -}, -"user": { -"type": "object", -"required": [ -"id" -], -"properties": { -"id": { -"$ref": "#/components/schemas/UserId" -} -} -}, -"withheld_in_countries": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/CountryCode" -} -} -} -}, -"UserUndeleteComplianceSchema": { -"type": "object", -"required": [ -"user_undelete" -], -"properties": { -"user_undelete": { -"$ref": "#/components/schemas/UserComplianceSchema" -} -} -}, -"UserUnprotectComplianceSchema": { -"type": "object", -"required": [ -"user_unprotect" -], -"properties": { -"user_unprotect": { -"$ref": "#/components/schemas/UserComplianceSchema" -} -} -}, -"UserUnsuspendComplianceSchema": { -"type": "object", -"required": [ -"user_unsuspend" -], -"properties": { -"user_unsuspend": { -"$ref": "#/components/schemas/UserComplianceSchema" -} -} -}, -"UserWithheld": { -"type": "object", -"description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", -"required": [ -"country_codes" -], -"properties": { -"country_codes": { -"type": "array", -"description": "Provides a list of countries where this content is not available.", -"minItems": 1, -"uniqueItems": true, -"items": { -"$ref": "#/components/schemas/CountryCode" -} -}, -"scope": { -"type": "string", -"description": "Indicates that the content being withheld is a `user`.", -"enum": [ -"user" -] -} -} -}, -"UserWithheldComplianceSchema": { -"type": "object", -"required": [ -"user_withheld" -], -"properties": { -"user_withheld": { -"$ref": "#/components/schemas/UserTakedownComplianceSchema" -} -} -}, -"UsersDMBlockCreateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"blocked": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"UsersDMUnBlockCreateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"blocked": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"UsersFollowingCreateRequest": { -"type": "object", -"required": [ -"target_user_id" -], -"properties": { -"target_user_id": { -"$ref": "#/components/schemas/UserId" -} -} -}, -"UsersFollowingCreateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"following": { -"type": "boolean" -}, -"pending_follow": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"UsersFollowingDeleteResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"following": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"UsersLikesCreateRequest": { -"type": "object", -"required": [ -"tweet_id" -], -"properties": { -"tweet_id": { -"$ref": "#/components/schemas/TweetId" -} -} -}, -"UsersLikesCreateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"liked": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"UsersLikesDeleteResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"liked": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"UsersRetweetsCreateRequest": { -"type": "object", -"required": [ -"tweet_id" -], -"properties": { -"tweet_id": { -"$ref": "#/components/schemas/TweetId" -} -}, -"additionalProperties": false -}, -"UsersRetweetsCreateResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"id": { -"$ref": "#/components/schemas/TweetId" -}, -"retweeted": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"UsersRetweetsDeleteResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"retweeted": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"Variant": { -"type": "object", -"properties": { -"bit_rate": { -"type": "integer", -"description": "The bit rate of the media." -}, -"content_type": { -"type": "string", -"description": "The content type of the media." -}, -"url": { -"type": "string", -"description": "The url to the media.", -"format": "uri" -} -} -}, -"Variants": { -"type": "array", -"description": "An array of all available variants of the media.", -"items": { -"$ref": "#/components/schemas/Variant" -} -}, -"Video": { -"allOf": [ -{ -"$ref": "#/components/schemas/Media" -}, -{ -"type": "object", -"properties": { -"duration_ms": { -"type": "integer" -}, -"non_public_metrics": { -"type": "object", -"description": "Nonpublic engagement metrics for the Media at the time of the request.", -"properties": { -"playback_0_count": { -"type": "integer", -"description": "Number of users who made it through 0% of the video.", -"format": "int32" -}, -"playback_100_count": { -"type": "integer", -"description": "Number of users who made it through 100% of the video.", -"format": "int32" -}, -"playback_25_count": { -"type": "integer", -"description": "Number of users who made it through 25% of the video.", -"format": "int32" -}, -"playback_50_count": { -"type": "integer", -"description": "Number of users who made it through 50% of the video.", -"format": "int32" -}, -"playback_75_count": { -"type": "integer", -"description": "Number of users who made it through 75% of the video.", -"format": "int32" -} -} -}, -"organic_metrics": { -"type": "object", -"description": "Organic nonpublic engagement metrics for the Media at the time of the request.", -"properties": { -"playback_0_count": { -"type": "integer", -"description": "Number of users who made it through 0% of the video.", -"format": "int32" -}, -"playback_100_count": { -"type": "integer", -"description": "Number of users who made it through 100% of the video.", -"format": "int32" -}, -"playback_25_count": { -"type": "integer", -"description": "Number of users who made it through 25% of the video.", -"format": "int32" -}, -"playback_50_count": { -"type": "integer", -"description": "Number of users who made it through 50% of the video.", -"format": "int32" -}, -"playback_75_count": { -"type": "integer", -"description": "Number of users who made it through 75% of the video.", -"format": "int32" -}, -"view_count": { -"type": "integer", -"description": "Number of times this video has been viewed.", -"format": "int32" -} -} -}, -"preview_image_url": { -"type": "string", -"format": "uri" -}, -"promoted_metrics": { -"type": "object", -"description": "Promoted nonpublic engagement metrics for the Media at the time of the request.", -"properties": { -"playback_0_count": { -"type": "integer", -"description": "Number of users who made it through 0% of the video.", -"format": "int32" -}, -"playback_100_count": { -"type": "integer", -"description": "Number of users who made it through 100% of the video.", -"format": "int32" -}, -"playback_25_count": { -"type": "integer", -"description": "Number of users who made it through 25% of the video.", -"format": "int32" -}, -"playback_50_count": { -"type": "integer", -"description": "Number of users who made it through 50% of the video.", -"format": "int32" -}, -"playback_75_count": { -"type": "integer", -"description": "Number of users who made it through 75% of the video.", -"format": "int32" -}, -"view_count": { -"type": "integer", -"description": "Number of times this video has been viewed.", -"format": "int32" -} -} -}, -"public_metrics": { -"type": "object", -"description": "Engagement metrics for the Media at the time of the request.", -"properties": { -"view_count": { -"type": "integer", -"description": "Number of times this video has been viewed.", -"format": "int32" -} -} -}, -"variants": { -"$ref": "#/components/schemas/Variants" -} -} -} -] -}, -"WebhookConfig": { -"type": "object", -"description": "A Webhook Configuration", -"required": [ -"id", -"url", -"valid", -"created_at" -], -"properties": { -"created_at": { -"type": "string", -"format": "date-time" -}, -"id": { -"$ref": "#/components/schemas/WebhookConfigId" -}, -"url": { -"type": "string", -"description": "The callback URL of the webhook." -}, -"valid": { -"type": "boolean" -} -} -}, -"WebhookConfigCreateRequest": { -"type": "object", -"required": [ -"url" -], -"properties": { -"url": { -"type": "string", -"minLength": 1, -"maxLength": 200 -} -} -}, -"WebhookConfigCreateResponse": { -"type": "object", -"description": "A Webhook Configuration", -"required": [ -"id", -"url", -"valid", -"created_at" -], -"properties": { -"created_at": { -"type": "string", -"format": "date-time" -}, -"id": { -"$ref": "#/components/schemas/WebhookConfigId" -}, -"url": { -"type": "string", -"description": "The callback URL of the webhook." -}, -"valid": { -"type": "boolean" -} -} -}, -"WebhookConfigDeleteResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"deleted": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -}, -"WebhookConfigId": { -"type": "string", -"description": "The unique identifier of this webhook config.", -"pattern": "^[0-9]{1,19}$", -"example": "1146654567674912769" -}, -"WebhookConfigPutResponse": { -"type": "object", -"properties": { -"data": { -"type": "object", -"properties": { -"attempted": { -"type": "boolean" -} -} -}, -"errors": { -"type": "array", -"minItems": 1, -"items": { -"$ref": "#/components/schemas/Problem" -} -} -} -} -}, -"parameters": { -"AnalyticsFieldsParameter": { -"name": "analytics.fields", -"in": "query", -"description": "A comma separated list of Analytics fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Analytics object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"app_install_attempts", -"app_opens", -"bookmarks", -"detail_expands", -"email_tweet", -"engagements", -"follows", -"hashtag_clicks", -"id", -"impressions", -"likes", -"media_views", -"permalink_clicks", -"quote_tweets", -"replies", -"retweets", -"shares", -"timestamp", -"unfollows", -"url_clicks", -"user_profile_clicks" -] -}, -"example": [ -"app_install_attempts", -"app_opens", -"bookmarks", -"detail_expands", -"email_tweet", -"engagements", -"follows", -"hashtag_clicks", -"id", -"impressions", -"likes", -"media_views", -"permalink_clicks", -"quote_tweets", -"replies", -"retweets", -"shares", -"timestamp", -"unfollows", -"url_clicks", -"user_profile_clicks" -] -}, -"explode": false, -"style": "form" -}, -"CommunityFieldsParameter": { -"name": "community.fields", -"in": "query", -"description": "A comma separated list of Community fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Community object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"access", -"created_at", -"description", -"id", -"join_policy", -"member_count", -"name" -] -}, -"example": [ -"access", -"created_at", -"description", -"id", -"join_policy", -"member_count", -"name" -] -}, -"explode": false, -"style": "form" -}, -"ComplianceJobFieldsParameter": { -"name": "compliance_job.fields", -"in": "query", -"description": "A comma separated list of ComplianceJob fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a ComplianceJob object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"created_at", -"download_expires_at", -"download_url", -"id", -"name", -"resumable", -"status", -"type", -"upload_expires_at", -"upload_url" -] -}, -"example": [ -"created_at", -"download_expires_at", -"download_url", -"id", -"name", -"resumable", -"status", -"type", -"upload_expires_at", -"upload_url" -] -}, -"explode": false, -"style": "form" -}, -"DmConversationFieldsParameter": { -"name": "dm_conversation.fields", -"in": "query", -"description": "A comma separated list of DmConversation fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a DmConversation object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"id" -] -}, -"example": [ -"id" -] -}, -"explode": false, -"style": "form" -}, -"DmEventExpansionsParameter": { -"name": "expansions", -"in": "query", -"description": "A comma separated list of fields to expand.", -"schema": { -"type": "array", -"description": "The list of fields you can expand for a [DmEvent](#DmEvent) object. If the field has an ID, it can be expanded into a full object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"attachments.media_keys", -"participant_ids", -"referenced_tweets.id", -"sender_id" -] -}, -"example": [ -"attachments.media_keys", -"participant_ids", -"referenced_tweets.id", -"sender_id" -] -}, -"explode": false, -"style": "form" -}, -"DmEventFieldsParameter": { -"name": "dm_event.fields", -"in": "query", -"description": "A comma separated list of DmEvent fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a DmEvent object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"attachments", -"created_at", -"dm_conversation_id", -"entities", -"event_type", -"id", -"participant_ids", -"referenced_tweets", -"sender_id", -"text" -] -}, -"example": [ -"attachments", -"created_at", -"dm_conversation_id", -"entities", -"event_type", -"id", -"participant_ids", -"referenced_tweets", -"sender_id", -"text" -] -}, -"explode": false, -"style": "form" -}, -"EngagementFieldsParameter": { -"name": "engagement.fields", -"in": "query", -"description": "A comma separated list of Engagement fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Engagement object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"errors", -"measurement" -] -}, -"example": [ -"errors", -"measurement" -] -}, -"explode": false, -"style": "form" -}, -"LikeExpansionsParameter": { -"name": "expansions", -"in": "query", -"description": "A comma separated list of fields to expand.", -"schema": { -"type": "array", -"description": "The list of fields you can expand for a [Like](#Like) object. If the field has an ID, it can be expanded into a full object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"liked_tweet_id" -] -}, -"example": [ -"liked_tweet_id" -] -}, -"explode": false, -"style": "form" -}, -"LikeFieldsParameter": { -"name": "like.fields", -"in": "query", -"description": "A comma separated list of Like fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Like object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"created_at", -"id", -"liked_tweet_id", -"timestamp_ms" -] -}, -"example": [ -"created_at", -"id", -"liked_tweet_id", -"timestamp_ms" -] -}, -"explode": false, -"style": "form" -}, -"LikeWithTweetAuthorExpansionsParameter": { -"name": "expansions", -"in": "query", -"description": "A comma separated list of fields to expand.", -"schema": { -"type": "array", -"description": "The list of fields you can expand for a [LikeWithTweetAuthor](#LikeWithTweetAuthor) object. If the field has an ID, it can be expanded into a full object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"liked_tweet_author_id", -"liked_tweet_id" -] -}, -"example": [ -"liked_tweet_author_id", -"liked_tweet_id" -] -}, -"explode": false, -"style": "form" -}, -"LikeWithTweetAuthorFieldsParameter": { -"name": "like_with_tweet_author.fields", -"in": "query", -"description": "A comma separated list of LikeWithTweetAuthor fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a LikeWithTweetAuthor object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"created_at", -"id", -"liked_tweet_author_id", -"liked_tweet_id", -"timestamp_ms" -] -}, -"example": [ -"created_at", -"id", -"liked_tweet_author_id", -"liked_tweet_id", -"timestamp_ms" -] -}, -"explode": false, -"style": "form" -}, -"ListExpansionsParameter": { -"name": "expansions", -"in": "query", -"description": "A comma separated list of fields to expand.", -"schema": { -"type": "array", -"description": "The list of fields you can expand for a [List](#List) object. If the field has an ID, it can be expanded into a full object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"owner_id" -] -}, -"example": [ -"owner_id" -] -}, -"explode": false, -"style": "form" -}, -"ListFieldsParameter": { -"name": "list.fields", -"in": "query", -"description": "A comma separated list of List fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a List object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"created_at", -"description", -"follower_count", -"id", -"member_count", -"name", -"owner_id", -"private" -] -}, -"example": [ -"created_at", -"description", -"follower_count", -"id", -"member_count", -"name", -"owner_id", -"private" -] -}, -"explode": false, -"style": "form" -}, -"MediaAnalyticsFieldsParameter": { -"name": "media_analytics.fields", -"in": "query", -"description": "A comma separated list of MediaAnalytics fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a MediaAnalytics object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"cta_url_clicks", -"cta_watch_clicks", -"media_key", -"play_from_tap", -"playback25", -"playback50", -"playback75", -"playback_complete", -"playback_start", -"timestamp", -"video_views", -"watch_time_ms" -] -}, -"example": [ -"cta_url_clicks", -"cta_watch_clicks", -"media_key", -"play_from_tap", -"playback25", -"playback50", -"playback75", -"playback_complete", -"playback_start", -"timestamp", -"video_views", -"watch_time_ms" -] -}, -"explode": false, -"style": "form" -}, -"MediaFieldsParameter": { -"name": "media.fields", -"in": "query", -"description": "A comma separated list of Media fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Media object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"alt_text", -"duration_ms", -"height", -"media_key", -"non_public_metrics", -"organic_metrics", -"preview_image_url", -"promoted_metrics", -"public_metrics", -"type", -"url", -"variants", -"width" -] -}, -"example": [ -"alt_text", -"duration_ms", -"height", -"media_key", -"non_public_metrics", -"organic_metrics", -"preview_image_url", -"promoted_metrics", -"public_metrics", -"type", -"url", -"variants", -"width" -] -}, -"explode": false, -"style": "form" -}, -"NoteFieldsParameter": { -"name": "note.fields", -"in": "query", -"description": "A comma separated list of Note fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Note object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"id", -"info", -"status", -"test_result" -] -}, -"example": [ -"id", -"info", -"status", -"test_result" -] -}, -"explode": false, -"style": "form" -}, -"PersonalizedTrendFieldsParameter": { -"name": "personalized_trend.fields", -"in": "query", -"description": "A comma separated list of PersonalizedTrend fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a PersonalizedTrend object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"category", -"post_count", -"trend_name", -"trending_since" -] -}, -"example": [ -"category", -"post_count", -"trend_name", -"trending_since" -] -}, -"explode": false, -"style": "form" -}, -"PlaceFieldsParameter": { -"name": "place.fields", -"in": "query", -"description": "A comma separated list of Place fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Place object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"contained_within", -"country", -"country_code", -"full_name", -"geo", -"id", -"name", -"place_type" -] -}, -"example": [ -"contained_within", -"country", -"country_code", -"full_name", -"geo", -"id", -"name", -"place_type" -] -}, -"explode": false, -"style": "form" -}, -"PlaidAccountContactFieldsParameter": { -"name": "plaid_account_contact.fields", -"in": "query", -"description": "A comma separated list of PlaidAccountContact fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a PlaidAccountContact object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"addresses", -"emails", -"holders", -"telephones" -] -}, -"example": [ -"addresses", -"emails", -"holders", -"telephones" -] -}, -"explode": false, -"style": "form" -}, -"PlaidAccountFieldsParameter": { -"name": "plaid_account.fields", -"in": "query", -"description": "A comma separated list of PlaidAccount fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a PlaidAccount object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"accountCategory", -"accountId", -"accountNumberDisplay", -"accountType", -"availableBalance", -"currency", -"currentBalance", -"nickname", -"productName", -"status" -] -}, -"example": [ -"accountCategory", -"accountId", -"accountNumberDisplay", -"accountType", -"availableBalance", -"currency", -"currentBalance", -"nickname", -"productName", -"status" -] -}, -"explode": false, -"style": "form" -}, -"PlaidAccountPaymentNetworkFieldsParameter": { -"name": "plaid_account_payment_network.fields", -"in": "query", -"description": "A comma separated list of PlaidAccountPaymentNetwork fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a PlaidAccountPaymentNetwork object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"bankId", -"identifier", -"transferIn", -"transferOut", -"type" -] -}, -"example": [ -"bankId", -"identifier", -"transferIn", -"transferOut", -"type" -] -}, -"explode": false, -"style": "form" -}, -"PlaidAccountTransactionFieldsParameter": { -"name": "plaid_account_transaction.fields", -"in": "query", -"description": "A comma separated list of PlaidAccountTransaction fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a PlaidAccountTransaction object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"accountCategory", -"amount", -"debitCreditMemo", -"description", -"postedTimestamp", -"status", -"transactionId", -"transactionTimestamp" -] -}, -"example": [ -"accountCategory", -"amount", -"debitCreditMemo", -"description", -"postedTimestamp", -"status", -"transactionId", -"transactionTimestamp" -] -}, -"explode": false, -"style": "form" -}, -"PlaidCustomerFieldsParameter": { -"name": "plaid_customer.fields", -"in": "query", -"description": "A comma separated list of PlaidCustomer fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a PlaidCustomer object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"customerId" -] -}, -"example": [ -"customerId" -] -}, -"explode": false, -"style": "form" -}, -"PollFieldsParameter": { -"name": "poll.fields", -"in": "query", -"description": "A comma separated list of Poll fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Poll object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"duration_minutes", -"end_datetime", -"id", -"options", -"voting_status" -] -}, -"example": [ -"duration_minutes", -"end_datetime", -"id", -"options", -"voting_status" -] -}, -"explode": false, -"style": "form" -}, -"RulesCountFieldsParameter": { -"name": "rules_count.fields", -"in": "query", -"description": "A comma separated list of RulesCount fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a RulesCount object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"all_project_client_apps", -"cap_per_client_app", -"cap_per_project", -"client_app_rules_count", -"project_rules_count" -] -}, -"example": [ -"all_project_client_apps", -"cap_per_client_app", -"cap_per_project", -"client_app_rules_count", -"project_rules_count" -] -}, -"explode": false, -"style": "form" -}, -"SearchCountFieldsParameter": { -"name": "search_count.fields", -"in": "query", -"description": "A comma separated list of SearchCount fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a SearchCount object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"end", -"start", -"tweet_count" -] -}, -"example": [ -"end", -"start", -"tweet_count" -] -}, -"explode": false, -"style": "form" -}, -"SpaceExpansionsParameter": { -"name": "expansions", -"in": "query", -"description": "A comma separated list of fields to expand.", -"schema": { -"type": "array", -"description": "The list of fields you can expand for a [Space](#Space) object. If the field has an ID, it can be expanded into a full object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"creator_id", -"host_ids", -"invited_user_ids", -"speaker_ids", -"topic_ids" -] -}, -"example": [ -"creator_id", -"host_ids", -"invited_user_ids", -"speaker_ids", -"topic_ids" -] -}, -"explode": false, -"style": "form" -}, -"SpaceFieldsParameter": { -"name": "space.fields", -"in": "query", -"description": "A comma separated list of Space fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Space object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"created_at", -"creator_id", -"ended_at", -"host_ids", -"id", -"invited_user_ids", -"is_ticketed", -"lang", -"participant_count", -"scheduled_start", -"speaker_ids", -"started_at", -"state", -"subscriber_count", -"title", -"topic_ids", -"updated_at" -] -}, -"example": [ -"created_at", -"creator_id", -"ended_at", -"host_ids", -"id", -"invited_user_ids", -"is_ticketed", -"lang", -"participant_count", -"scheduled_start", -"speaker_ids", -"started_at", -"state", -"subscriber_count", -"title", -"topic_ids", -"updated_at" -] -}, -"explode": false, -"style": "form" -}, -"TopicFieldsParameter": { -"name": "topic.fields", -"in": "query", -"description": "A comma separated list of Topic fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Topic object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"description", -"id", -"name" -] -}, -"example": [ -"description", -"id", -"name" -] -}, -"explode": false, -"style": "form" -}, -"TrendFieldsParameter": { -"name": "trend.fields", -"in": "query", -"description": "A comma separated list of Trend fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Trend object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"trend_name", -"tweet_count" -] -}, -"example": [ -"trend_name", -"tweet_count" -] -}, -"explode": false, -"style": "form" -}, -"TweetExpansionsParameter": { -"name": "expansions", -"in": "query", -"description": "A comma separated list of fields to expand.", -"schema": { -"type": "array", -"description": "The list of fields you can expand for a [Tweet](#Tweet) object. If the field has an ID, it can be expanded into a full object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"article.cover_media", -"article.media_entities", -"attachments.media_keys", -"attachments.media_source_tweet", -"attachments.poll_ids", -"author_id", -"edit_history_tweet_ids", -"entities.mentions.username", -"geo.place_id", -"in_reply_to_user_id", -"entities.note.mentions.username", -"referenced_tweets.id", -"referenced_tweets.id.attachments.media_keys", -"referenced_tweets.id.author_id" -] -}, -"example": [ -"article.cover_media", -"article.media_entities", -"attachments.media_keys", -"attachments.media_source_tweet", -"attachments.poll_ids", -"author_id", -"edit_history_tweet_ids", -"entities.mentions.username", -"geo.place_id", -"in_reply_to_user_id", -"entities.note.mentions.username", -"referenced_tweets.id", -"referenced_tweets.id.attachments.media_keys", -"referenced_tweets.id.author_id" -] -}, -"explode": false, -"style": "form" -}, -"TweetFieldsParameter": { -"name": "tweet.fields", -"in": "query", -"description": "A comma separated list of Tweet fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Tweet object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"article", -"attachments", -"author_id", -"card_uri", -"community_id", -"context_annotations", -"conversation_id", -"created_at", -"display_text_range", -"edit_controls", -"edit_history_tweet_ids", -"entities", -"geo", -"id", -"in_reply_to_user_id", -"lang", -"media_metadata", -"non_public_metrics", -"note_tweet", -"organic_metrics", -"possibly_sensitive", -"promoted_metrics", -"public_metrics", -"referenced_tweets", -"reply_settings", -"scopes", -"source", -"text", -"withheld" -] -}, -"example": [ -"article", -"attachments", -"author_id", -"card_uri", -"community_id", -"context_annotations", -"conversation_id", -"created_at", -"display_text_range", -"edit_controls", -"edit_history_tweet_ids", -"entities", -"geo", -"id", -"in_reply_to_user_id", -"lang", -"media_metadata", -"non_public_metrics", -"note_tweet", -"organic_metrics", -"possibly_sensitive", -"promoted_metrics", -"public_metrics", -"referenced_tweets", -"reply_settings", -"scopes", -"source", -"text", -"withheld" -] -}, -"explode": false, -"style": "form" -}, -"UsageFieldsParameter": { -"name": "usage.fields", -"in": "query", -"description": "A comma separated list of Usage fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a Usage object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"cap_reset_day", -"daily_client_app_usage", -"daily_project_usage", -"project_cap", -"project_id", -"project_usage" -] -}, -"example": [ -"cap_reset_day", -"daily_client_app_usage", -"daily_project_usage", -"project_cap", -"project_id", -"project_usage" -] -}, -"explode": false, -"style": "form" -}, -"UserExpansionsParameter": { -"name": "expansions", -"in": "query", -"description": "A comma separated list of fields to expand.", -"schema": { -"type": "array", -"description": "The list of fields you can expand for a [User](#User) object. If the field has an ID, it can be expanded into a full object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"affiliation.user_id", -"most_recent_tweet_id", -"pinned_tweet_id" -] -}, -"example": [ -"affiliation.user_id", -"most_recent_tweet_id", -"pinned_tweet_id" -] -}, -"explode": false, -"style": "form" -}, -"UserFieldsParameter": { -"name": "user.fields", -"in": "query", -"description": "A comma separated list of User fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a User object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"affiliation", -"confirmed_email", -"connection_status", -"created_at", -"description", -"entities", -"id", -"is_identity_verified", -"location", -"most_recent_tweet_id", -"name", -"parody", -"pinned_tweet_id", -"profile_banner_url", -"profile_image_url", -"protected", -"public_metrics", -"receives_your_dm", -"subscription", -"subscription_type", -"url", -"username", -"verified", -"verified_followers_count", -"verified_type", -"withheld" -] -}, -"example": [ -"affiliation", -"confirmed_email", -"connection_status", -"created_at", -"description", -"entities", -"id", -"is_identity_verified", -"location", -"most_recent_tweet_id", -"name", -"parody", -"pinned_tweet_id", -"profile_banner_url", -"profile_image_url", -"protected", -"public_metrics", -"receives_your_dm", -"subscription", -"subscription_type", -"url", -"username", -"verified", -"verified_followers_count", -"verified_type", -"withheld" -] -}, -"explode": false, -"style": "form" -}, -"WebhookConfigFieldsParameter": { -"name": "webhook_config.fields", -"in": "query", -"description": "A comma separated list of WebhookConfig fields to display.", -"required": false, -"schema": { -"type": "array", -"description": "The fields available for a WebhookConfig object.", -"minItems": 1, -"uniqueItems": true, -"items": { -"type": "string", -"enum": [ -"created_at", -"id", -"url", -"valid" -] -}, -"example": [ -"created_at", -"id", -"url", -"valid" -] -}, -"explode": false, -"style": "form" -} -} -} + "openapi": "3.0.0", + "info": { + "description": "X API v2 available endpoints", + "version": "2.146", + "title": "X API v2", + "termsOfService": "https://developer.x.com/en/developer-terms/agreement-and-policy.html", + "contact": { + "name": "X Developers", + "url": "https://developer.x.com/" + }, + "license": { + "name": "X Developer Agreement and Policy", + "url": "https://developer.x.com/en/developer-terms/agreement-and-policy.html" + } + }, + "paths": { + "/2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all": { + "post": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Account Activity" + ], + "summary": "Create replay job", + "description": "Creates a replay job to retrieve activities from up to the past 5 days for all subscriptions associated with a given webhook.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "createAccountActivityReplayJob", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The unique identifier for the webhook configuration.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + }, + { + "name": "from_date", + "in": "query", + "description": "The oldest (starting) UTC timestamp (inclusive) from which events will be provided, in `yyyymmddhhmm` format.", + "required": true, + "schema": { + "type": "string", + "pattern": "^\\d{12}$", + "example": "202504242000" + }, + "style": "form" + }, + { + "name": "to_date", + "in": "query", + "description": "The latest (ending) UTC timestamp (exclusive) up to which events will be provided, in `yyyymmddhhmm` format.", + "required": true, + "schema": { + "type": "string", + "pattern": "^\\d{12}$", + "example": "202504242200" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReplayJobCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/account_activity/subscriptions/count": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Account Activity" + ], + "summary": "Get subscription count", + "description": "Retrieves a count of currently active Account Activity subscriptions.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "getAccountActivitySubscriptionCount", + "parameters": [], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsCountGetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/account_activity/webhooks/{webhook_id}/subscriptions/all": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Account Activity" + ], + "summary": "Validate subscription", + "description": "Checks a user’s Account Activity subscription for a given webhook.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "validateAccountActivitySubscription", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The webhook ID to check subscription against.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsGetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "AAASubscriptions" + ], + "summary": "Create subscription", + "description": "Creates an Account Activity subscription for the user and the given webhook.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "createAccountActivitySubscription", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The webhook ID to check subscription against.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/account_activity/webhooks/{webhook_id}/subscriptions/all/list": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Account Activity" + ], + "summary": "Get subscriptions", + "description": "Retrieves a list of all active subscriptions for a given webhook.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "getAccountActivitySubscriptions", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The webhook ID to pull subscriptions for.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsListGetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all": { + "delete": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Account Activity" + ], + "summary": "Delete subscription", + "description": "Deletes an Account Activity subscription for the given webhook and user ID.", + "externalDocs": { + "url": "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId": "deleteAccountActivitySubscription", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The webhook ID to check subscription against.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + }, + { + "name": "user_id", + "in": "path", + "description": "User ID to unsubscribe from.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionsDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/communities/search": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Communities" + ], + "summary": "Search Communities", + "description": "Retrieves a list of Communities matching the specified search query.", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "searchCommunities", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "Query to search communities.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 4096, + "example": "Love" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of search results to be returned by a request.", + "required": false, + "schema": { + "type": "integer", + "minimum": 10, + "maximum": 100, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/NextToken" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/NextToken" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/CommunityFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2CommunitiesSearchResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/communities/{id}": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Communities" + ], + "summary": "Get Community by ID", + "description": "Retrieves details of a specific Community by its ID.", + "externalDocs": { + "url": "https://developer.x.com/en/docs/x-api/communities/api-reference/get-communities-id" + }, + "operationId": "getCommunitiesById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Community.", + "required": true, + "schema": { + "$ref": "#/components/schemas/CommunityId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/CommunityFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2CommunitiesIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/compliance/jobs": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Compliance" + ], + "summary": "Get Compliance Jobs", + "description": "Retrieves a list of Compliance Jobs filtered by job type and optional status.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs" + }, + "operationId": "getComplianceJobs", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Type of Compliance Job to list.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "tweets", + "users" + ] + }, + "style": "form" + }, + { + "name": "status", + "in": "query", + "description": "Status of Compliance Job to list.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "in_progress", + "failed", + "complete" + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/ComplianceJobFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ComplianceJobsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Compliance" + ], + "summary": "Create Compliance Job", + "description": "Creates a new Compliance Job for the specified job type.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs" + }, + "operationId": "createComplianceJobs", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateComplianceJobRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateComplianceJobResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/compliance/jobs/{id}": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Compliance" + ], + "summary": "Get Compliance Job by ID", + "description": "Retrieves details of a specific Compliance Job by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id" + }, + "operationId": "getComplianceJobsById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Compliance Job to retrieve.", + "required": true, + "schema": { + "$ref": "#/components/schemas/JobId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/ComplianceJobFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ComplianceJobsIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/connections/all": { + "delete": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Connection" + ], + "summary": "Terminate all connections", + "description": "Terminates all active streaming connections for the authenticated application.", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "deleteAllConnections", + "parameters": [], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KillAllConnectionsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_conversations": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Create DM conversation", + "description": "Initiates a new direct message conversation with specified participants.", + "operationId": "createDmConversations", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDmConversationRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_conversations/with/{participant_id}/dm_events": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Get DM events for a DM conversation", + "description": "Retrieves direct message events for a specific conversation.", + "operationId": "getDmEventsByParticipantId", + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The ID of the participant user for the One to One DM conversation.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "name": "event_types", + "in": "query", + "description": "The set of event_types to include in the results.", + "required": false, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default": [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example": [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref": "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2DmConversationsWithParticipantIdDmEventsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_conversations/with/{participant_id}/messages": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Create DM message by participant ID", + "description": "Sends a new direct message to a specific participant by their ID.", + "operationId": "createDmByParticipantId", + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The ID of the recipient user that will receive the DM.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMessageRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_conversations/{dm_conversation_id}/messages": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Create DM message by conversation ID", + "description": "Sends a new direct message to a specific conversation by its ID.", + "operationId": "createDmByConversationId", + "parameters": [ + { + "name": "dm_conversation_id", + "in": "path", + "description": "The DM Conversation ID.", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMessageRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_conversations/{id}/dm_events": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Get DM events for a DM conversation", + "description": "Retrieves direct message events for a specific conversation.", + "operationId": "getDmConversationsIdDmEvents", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The DM conversation ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/DmConversationId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "name": "event_types", + "in": "query", + "description": "The set of event_types to include in the results.", + "required": false, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default": [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example": [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref": "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2DmConversationsIdDmEventsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_events": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Get DM events", + "description": "Retrieves a list of recent direct message events across all conversations.", + "operationId": "getDmEvents", + "parameters": [ + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "name": "event_types", + "in": "query", + "description": "The set of event_types to include in the results.", + "required": false, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default": [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example": [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref": "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2DmEventsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_events/{event_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "dm.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Delete DM event", + "description": "Deletes a specific direct message event by its ID, if owned by the authenticated user.", + "operationId": "deleteDmEvents", + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "The ID of the direct-message event to delete.", + "required": true, + "schema": { + "$ref": "#/components/schemas/DmEventId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteDmResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "get": { + "security": [ + { + "OAuth2UserToken": [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Direct Messages" + ], + "summary": "Get DM event by ID", + "description": "Retrieves details of a specific direct message event by its ID.", + "operationId": "getDmEventsById", + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "dm event id.", + "required": true, + "schema": { + "$ref": "#/components/schemas/DmEventId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref": "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2DmEventsEventIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/insights/28hr": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get 28-hour Post insights", + "description": "Retrieves engagement metrics for specified Posts over the last 28 hours.", + "operationId": "getInsights28Hr", + "parameters": [ + { + "name": "tweet_ids", + "in": "query", + "description": "List of PostIds for 28hr metrics.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 25, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/TweetId" + }, + "example": [ + "20" + ] + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "granularity of metrics response.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "Daily", + "Hourly", + "Weekly", + "Total" + ], + "example": "Total" + }, + "style": "form" + }, + { + "name": "requested_metrics", + "in": "query", + "description": "request metrics for historical request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "AppInstallAttempts", + "AppOpens", + "DetailExpands", + "EmailTweet", + "Engagements", + "Follows", + "HashtagClicks", + "Impressions", + "Likes", + "LinkClicks", + "MediaEngagements", + "MediaViews", + "PermalinkClicks", + "ProfileVisits", + "QuoteTweets", + "Replies", + "Retweets", + "UniqueVideoViews", + "UrlClicks", + "UserProfileClicks", + "VideoCompletions", + "VideoPlayed25Percent", + "VideoPlayed50Percent", + "VideoPlayed75Percent", + "VideoStarts", + "VideoViews" + ] + } + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/EngagementFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2Insights28hrResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/insights/historical": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get historical Post insights", + "description": "Retrieves historical engagement metrics for specified Posts within a defined time range.", + "operationId": "getInsightsHistorical", + "parameters": [ + { + "name": "tweet_ids", + "in": "query", + "description": "List of PostIds for historical metrics.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 25, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/TweetId" + }, + "example": [ + "20" + ] + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "granularity of metrics response.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "Daily", + "Hourly", + "Weekly", + "Total" + ], + "example": "Total" + }, + "style": "form" + }, + { + "name": "requested_metrics", + "in": "query", + "description": "request metrics for historical request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "AppInstallAttempts", + "AppOpens", + "DetailExpands", + "EmailTweet", + "Engagements", + "Follows", + "HashtagClicks", + "Impressions", + "Likes", + "LinkClicks", + "MediaEngagements", + "MediaViews", + "PermalinkClicks", + "ProfileVisits", + "QuoteTweets", + "Replies", + "Retweets", + "UniqueVideoViews", + "UrlClicks", + "UserProfileClicks", + "VideoCompletions", + "VideoPlayed25Percent", + "VideoPlayed50Percent", + "VideoPlayed75Percent", + "VideoStarts", + "VideoViews" + ] + } + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/EngagementFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2InsightsHistoricalResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/likes/compliance/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Compliance" + ], + "summary": "Stream Likes compliance data", + "description": "Streams all compliance data related to Likes for Users.", + "operationId": "streamLikesCompliance", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Likes Compliance events will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Likes Compliance events will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LikesComplianceStreamResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/likes/firehose/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Likes" + ], + "summary": "Stream all Likes", + "description": "Streams all public Likes in real-time.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-likes-firehose-stream" + }, + "operationId": "streamLikesFirehose", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 20, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" + }, + { + "$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingLikeResponseV2" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/likes/sample10/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Likes" + ], + "summary": "Stream sampled Likes", + "description": "Streams a 10% sample of public Likes in real-time.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/likes/firehose/api-reference/get-likes-sample10-stream" + }, + "operationId": "streamLikesSample10", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 2, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" + }, + { + "$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingLikeResponseV2" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/lists": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "list.read", + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Create List", + "description": "Creates a new List for the authenticated user.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists" + }, + "operationId": "createLists", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/lists/{id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Delete List", + "description": "Deletes a specific List owned by the authenticated user by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id" + }, + "operationId": "deleteLists", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List to delete.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Get List by ID", + "description": "Retrieves details of a specific List by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id" + }, + "operationId": "getListsById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/ListFieldsParameter" + }, + { + "$ref": "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ListsIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "put": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Update List", + "description": "Updates the details of a specific List owned by the authenticated user by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id" + }, + "operationId": "updateLists", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List to modify.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListUpdateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListUpdateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/lists/{id}/followers": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get List followers", + "description": "Retrieves a list of Users who follow a specific List by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" + }, + "operationId": "getListsFollowers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ListsIdFollowersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/lists/{id}/members": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get List members", + "description": "Retrieves a list of Users who are members of a specific List by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" + }, + "operationId": "getListsMembers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ListsIdMembersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Add List member", + "description": "Adds a User to a specific List by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members" + }, + "operationId": "addListsMember", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List for which to add a member.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListAddUserRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListMutateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/lists/{id}/members/{user_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Remove List member", + "description": "Removes a User from a specific List by its ID and the User’s ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id" + }, + "operationId": "removeListsMemberByUserId", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List to remove a member.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + }, + { + "name": "user_id", + "in": "path", + "description": "The ID of User that will be removed from the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListMutateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/lists/{id}/tweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get List Posts", + "description": "Retrieves a list of Posts associated with a specific List by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets" + }, + "operationId": "getListsPosts", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2ListsIdTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Get Media by media keys", + "description": "Retrieves details of Media files by their media keys.", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "getMediaByMediaKeys", + "parameters": [ + { + "name": "media_keys", + "in": "query", + "description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/MediaKey" + } + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2MediaResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/analytics": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Get Media analytics", + "description": "Retrieves analytics data for media.", + "operationId": "getMediaAnalytics", + "parameters": [ + { + "name": "media_keys", + "in": "query", + "description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/MediaKey" + } + }, + "explode": false, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "The granularity for the search counts results.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "hourly", + "daily", + "total" + ], + "default": "daily" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/MediaAnalyticsFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaAnalytics" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/metadata": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Create Media metadata", + "description": "Creates metadata for a Media file.", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-metadata-create#metadata-create" + }, + "operationId": "createMediaMetadata", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/subtitles": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Delete Media subtitles", + "description": "Deletes subtitles for a specific Media file.", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-subtitles-delete" + }, + "operationId": "deleteMediaSubtitles", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubtitlesDeleteRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubtitlesDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Create Media subtitles", + "description": "Creates subtitles for a specific Media file.", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-subtitles-create" + }, + "operationId": "createMediaSubtitles", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubtitlesCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubtitlesCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/upload": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Get Media upload status", + "description": "Retrieves the status of a Media upload by its ID.", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-upload-status#media-upload-status" + }, + "operationId": "getMediaUploadStatus", + "parameters": [ + { + "name": "media_id", + "in": "query", + "description": "Media id for the requested media upload status.", + "required": true, + "schema": { + "$ref": "#/components/schemas/MediaId" + }, + "style": "form" + }, + { + "name": "command", + "in": "query", + "description": "The command for the media upload request.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "STATUS" + ] + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Upload media", + "description": "Uploads a media file for use in posts or other content.", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-upload" + }, + "operationId": "mediaUpload", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadRequestOneShot" + } + }, + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/MediaUploadRequestOneShot" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/upload/initialize": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Initialize media upload", + "description": "Initializes a media upload.", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-upload" + }, + "operationId": "initializeMediaUpload", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadConfigRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/upload/{id}/append": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Append Media upload", + "description": "Appends data to a Media upload request.", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-upload" + }, + "operationId": "appendMediaUpload", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The media identifier for the media to perform the append operation.", + "required": true, + "schema": { + "$ref": "#/components/schemas/MediaId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadAppendRequest" + } + }, + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/MediaUploadAppendRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadAppendResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/upload/{id}/finalize": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "media.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Finalize Media upload", + "description": "Finalizes a Media upload request.", + "externalDocs": { + "url": "https://docs.x.com/x-api/media/media-upload" + }, + "operationId": "finalizeMediaUpload", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The media id of the targeted media to finalize.", + "required": true, + "schema": { + "$ref": "#/components/schemas/MediaId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/{media_key}": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Media" + ], + "summary": "Get Media by media key", + "description": "Retrieves details of a specific Media file by its media key.", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "getMediaByMediaKey", + "parameters": [ + { + "name": "media_key", + "in": "path", + "description": "A single Media Key.", + "required": true, + "schema": { + "$ref": "#/components/schemas/MediaKey" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2MediaMediaKeyResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/notes": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Community Notes" + ], + "summary": "Create a Community Note", + "description": "Creates a community note endpoint for LLM use case.", + "externalDocs": { + "url": "https://communitynotes.x.com/guide/api/overview" + }, + "operationId": "createNotes", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNoteRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteNoteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/notes/search/notes_written": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Community Notes" + ], + "summary": "Search for Community Notes Written", + "description": "Returns all the community notes written by the user.", + "externalDocs": { + "url": "https://docs.x.com/x-api/community-notes/search-for-community-notes-written" + }, + "operationId": "searchNotesWritten", + "parameters": [ + { + "name": "test_mode", + "in": "query", + "description": "If true, return the notes the caller wrote for the test. If false, return the notes the caller wrote on the product.", + "required": true, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "Pagination token to get next set of posts eligible for notes.", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "Max results to return.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/NoteFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2NotesSearchNotesWrittenResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/notes/search/posts_eligible_for_notes": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Community Notes" + ], + "summary": "Search for Posts Eligible for Community Notes", + "description": "Returns all the posts that are eligible for community notes.", + "externalDocs": { + "url": "https://docs.x.com/x-api/community-notes/search-for-posts-eligible-for-community-notes" + }, + "operationId": "searchForEligiblePosts", + "parameters": [ + { + "name": "test_mode", + "in": "query", + "description": "If true, return a list of posts that are for the test. If false, return a list of posts that the bots can write proposed notes on the product.", + "required": true, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "Pagination token to get next set of posts eligible for notes.", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "Max results to return.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2NotesSearchPostsEligibleForNotesResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/notes/{id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.write" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Community Notes" + ], + "summary": "Delete a Community Note", + "description": "Deletes a community note.", + "externalDocs": { + "url": "https://communitynotes.x.com/guide/api/overview" + }, + "operationId": "deleteNotes", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The community note id to delete.", + "required": true, + "schema": { + "$ref": "#/components/schemas/NoteId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNoteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/openapi.json": { + "get": { + "tags": [ + "General" + ], + "summary": "Get OpenAPI Spec.", + "description": "Retrieves the full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", + "operationId": "getOpenApiSpec", + "parameters": [], + "responses": { + "200": { + "description": "The request was successful", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/2/spaces": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces" + ], + "summary": "Get Spaces by IDs", + "description": "Retrieves details of multiple Spaces by their IDs.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces" + }, + "operationId": "getSpacesByIds", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "The list of Space IDs to return.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "type": "string", + "description": "The unique identifier of this Space.", + "pattern": "^[a-zA-Z0-9]{1,13}$", + "example": "1SLjjRYNejbKM" + } + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref": "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TopicFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/spaces/by/creator_ids": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces" + ], + "summary": "Get Spaces by creator IDs", + "description": "Retrieves details of Spaces created by specified User IDs.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids" + }, + "operationId": "getSpacesByCreatorIds", + "parameters": [ + { + "name": "user_ids", + "in": "query", + "description": "The IDs of Users to search through.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref": "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TopicFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesByCreatorIdsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/spaces/search": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces" + ], + "summary": "Search Spaces", + "description": "Retrieves a list of Spaces matching the specified search query.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search" + }, + "operationId": "searchSpaces", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "The search query.", + "required": true, + "example": "crypto", + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "example": "crypto" + }, + "style": "form" + }, + { + "name": "state", + "in": "query", + "description": "The state of Spaces to search for.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "live", + "scheduled", + "all" + ], + "default": "all" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The number of results to return.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref": "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TopicFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesSearchResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/spaces/{id}": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces" + ], + "summary": "Get space by ID", + "description": "Retrieves details of a specific space by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id" + }, + "operationId": "getSpacesById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Space to be retrieved.", + "required": true, + "example": "1YqKDqWqdPLsV", + "schema": { + "type": "string", + "description": "The unique identifier of this Space.", + "pattern": "^[a-zA-Z0-9]{1,13}$", + "example": "1SLjjRYNejbKM" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref": "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/TopicFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/spaces/{id}/buyers": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces", + "Tweets" + ], + "summary": "Get Space ticket buyers", + "description": "Retrieves a list of Users who purchased tickets to a specific Space by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers" + }, + "operationId": "getSpacesBuyers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Space to be retrieved.", + "required": true, + "example": "1YqKDqWqdPLsV", + "schema": { + "type": "string", + "description": "The unique identifier of this Space.", + "pattern": "^[a-zA-Z0-9]{1,13}$", + "example": "1SLjjRYNejbKM" + }, + "style": "simple" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesIdBuyersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/spaces/{id}/tweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Spaces", + "Tweets" + ], + "summary": "Get Space Posts", + "description": "Retrieves a list of Posts shared in a specific Space by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets" + }, + "operationId": "getSpacesPosts", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Space to be retrieved.", + "required": true, + "example": "1YqKDqWqdPLsV", + "schema": { + "type": "string", + "description": "The unique identifier of this Space.", + "pattern": "^[a-zA-Z0-9]{1,13}$", + "example": "1SLjjRYNejbKM" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The number of Posts to fetch from the provided space. If not provided, the value will default to the maximum of 100.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100, + "example": 25 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2SpacesIdTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/trends/by/woeid/{woeid}": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Trends" + ], + "summary": "Get Trends by WOEID", + "description": "Retrieves trending topics for a specific location identified by its WOEID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/trends/api-reference/get-trends-by-woeid" + }, + "operationId": "getTrendsByWoeid", + "parameters": [ + { + "name": "woeid", + "in": "path", + "description": "The WOEID of the place to lookup a trend for.", + "required": true, + "example": "2244994945", + "schema": { + "type": "integer", + "format": "int32" + }, + "style": "simple" + }, + { + "name": "max_trends", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 50, + "format": "int32", + "default": 20 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TrendFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TrendsByWoeidWoeidResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get Posts by IDs", + "description": "Retrieves details of multiple Posts by their IDs.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets" + }, + "operationId": "getPostsByIds", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/TweetId" + } + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Create Post", + "description": "Creates a new Post for the authenticated user.", + "externalDocs": { + "url": "https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets" + }, + "operationId": "createPosts", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/analytics": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get Post analytics", + "description": "Retrieves analytics data for specified Posts within a defined time range.", + "operationId": "getPostsAnalytics", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/TweetId" + } + }, + "explode": false, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required": true, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "The granularity for the search counts results.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "hourly", + "daily", + "weekly", + "total" + ], + "default": "total" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/AnalyticsFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Analytics" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/compliance/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Compliance" + ], + "summary": "Stream Posts compliance data", + "description": "Streams all compliance data related to Posts.", + "operationId": "streamPostsCompliance", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 4, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post Compliance events will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Post Compliance events will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetComplianceStreamResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/tweets/counts/all": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get count of all Posts", + "description": "Retrieves the count of Posts matching a search query from the full archive.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" + }, + "operationId": "getPostsCountsAll", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 4096, + "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "since_id", + "in": "query", + "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "The granularity for the search counts results.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "minute", + "hour", + "day" + ], + "default": "hour" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/SearchCountFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsCountsAllResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/counts/recent": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get count of recent Posts", + "description": "Retrieves the count of Posts from the last 7 days matching a search query.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent" + }, + "operationId": "getPostsCountsRecent", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 4096, + "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "since_id", + "in": "query", + "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "granularity", + "in": "query", + "description": "The granularity for the search counts results.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "minute", + "hour", + "day" + ], + "default": "hour" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/SearchCountFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsCountsRecentResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/firehose/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Tweets" + ], + "summary": "Stream all Posts", + "description": "Streams all public Posts in real-time.", + "operationId": "streamPostsFirehose", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 20, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/tweets/firehose/stream/lang/en": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Tweets" + ], + "summary": "Stream English Posts", + "description": "Streams all public English-language Posts in real-time.", + "operationId": "streamPostsFirehoseEn", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 8, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/tweets/firehose/stream/lang/ja": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Tweets" + ], + "summary": "Stream Japanese Posts", + "description": "Streams all public Japanese-language Posts in real-time.", + "operationId": "streamPostsFirehoseJa", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 2, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/tweets/firehose/stream/lang/ko": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Tweets" + ], + "summary": "Stream Korean Posts", + "description": "Streams all public Korean-language Posts in real-time.", + "operationId": "streamPostsFirehoseKo", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 2, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/tweets/firehose/stream/lang/pt": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Tweets" + ], + "summary": "Stream Portuguese Posts", + "description": "Streams all public Portuguese-language Posts in real-time.", + "operationId": "streamPostsFirehosePt", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 2, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/tweets/label/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Compliance" + ], + "summary": "Stream Post labels", + "description": "Streams all labeling events applied to Posts.", + "operationId": "streamLabelsCompliance", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post labels will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Post labels will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetLabelStreamResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/tweets/sample/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Tweets" + ], + "summary": "Stream sampled Posts", + "description": "Streams a 1% sample of public Posts in real-time.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/api-reference/get-tweets-sample-stream" + }, + "operationId": "streamPostsSample", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/tweets/sample10/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Tweets" + ], + "summary": "Stream 10% sampled Posts", + "description": "Streams a 10% sample of public Posts in real-time.", + "operationId": "streamPostsSample10", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 2, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsSample10StreamResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/tweets/search/all": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Search all Posts", + "description": "Retrieves Posts from the full archive matching a search query.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" + }, + "operationId": "searchPostsAll", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 4096, + "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "since_id", + "in": "query", + "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of search results to be returned by a request.", + "required": false, + "schema": { + "type": "integer", + "minimum": 10, + "maximum": 500, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "sort_order", + "in": "query", + "description": "This order in which to return results.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "recency", + "relevancy" + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsSearchAllResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/search/recent": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Search recent Posts", + "description": "Retrieves Posts from the last 7 days matching a search query.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent" + }, + "operationId": "searchPostsRecent", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 4096, + "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "since_id", + "in": "query", + "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of search results to be returned by a request.", + "required": false, + "schema": { + "type": "integer", + "minimum": 10, + "maximum": 100, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "sort_order", + "in": "query", + "description": "This order in which to return results.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "recency", + "relevancy" + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsSearchRecentResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/search/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Tweets" + ], + "summary": "Stream filtered Posts", + "description": "Streams Posts in real-time matching the active rule set.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream" + }, + "operationId": "streamPosts", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FilteredStreamingTweetResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/tweets/search/stream/rules": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Tweets" + ], + "summary": "Get stream rules", + "description": "Retrieves the active rule set or a subset of rules for the filtered stream.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules" + }, + "operationId": "getRules", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "A comma-separated list of Rule IDs.", + "required": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RuleId" + } + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32", + "default": 1000 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This value is populated by passing the 'next_token' returned in a request to paginate through results.", + "required": false, + "schema": { + "type": "string", + "minLength": 16, + "maxLength": 16 + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RulesLookupResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Tweets" + ], + "summary": "Update stream rules", + "description": "Adds or deletes rules from the active rule set for the filtered stream.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/post-tweets-search-stream-rules" + }, + "operationId": "updateRules", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "description": "Dry Run can be used with both the add and delete action, with the expected result given, but without actually taking any action in the system (meaning the end state will always be as it was when the request was submitted). This is particularly useful to validate rule changes.", + "required": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "name": "delete_all", + "in": "query", + "description": "Delete All can be used to delete all of the rules associated this client app, it should be specified with no other parameters. Once deleted, rules cannot be recovered.", + "required": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddOrDeleteRulesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddOrDeleteRulesResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/search/stream/rules/counts": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Tweets" + ], + "summary": "Get stream rule counts", + "description": "Retrieves the count of rules in the active rule set for the filtered stream.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules-counts" + }, + "operationId": "getRuleCounts", + "parameters": [ + { + "$ref": "#/components/parameters/RulesCountFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsSearchStreamRulesCountsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Delete Post", + "description": "Deletes a specific Post by its ID, if owned by the authenticated user.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id" + }, + "operationId": "deletePosts", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the Post to be deleted.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get Post by ID", + "description": "Retrieves details of a specific Post by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id" + }, + "operationId": "getPostsById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "A single Post ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{id}/liking_users": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "like.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get Liking Users", + "description": "Retrieves a list of Users who liked a specific Post by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-tweets-id-liking_users" + }, + "operationId": "getPostsLikingUsers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "A single Post ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsIdLikingUsersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{id}/quote_tweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get Quoted Posts", + "description": "Retrieves a list of Posts that quote a specific Post by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets" + }, + "operationId": "getPostsQuotedPosts", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "A single Post ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results to be returned.", + "required": false, + "schema": { + "type": "integer", + "minimum": 10, + "maximum": 100, + "format": "int32", + "default": 10 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "exclude", + "in": "query", + "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required": false, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "replies", + "retweets" + ] + }, + "example": [ + "replies", + "retweets" + ] + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsIdQuoteTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{id}/retweeted_by": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get Reposted by", + "description": "Retrieves a list of Users who reposted a specific Post by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweeted_by" + }, + "operationId": "getPostsRepostedBy", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "A single Post ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsIdRetweetedByResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{id}/retweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get Reposts", + "description": "Retrieves a list of Posts that repost a specific Post by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets" + }, + "operationId": "getPostsReposts", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "A single Post ID.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2TweetsIdRetweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{tweet_id}/hidden": { + "put": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.moderate.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Hide reply", + "description": "Hides or unhides a reply to a conversation owned by the authenticated user.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden" + }, + "operationId": "hidePostsReply", + "parameters": [ + { + "name": "tweet_id", + "in": "path", + "description": "The ID of the reply that you want to hide or unhide.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetHideRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TweetHideResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/usage/tweets": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Usage" + ], + "summary": "Get usage", + "description": "Retrieves usage statistics for Posts over a specified number of days.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets" + }, + "operationId": "getUsage", + "parameters": [ + { + "name": "days", + "in": "query", + "description": "The number of days for which you need usage for.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 90, + "format": "int32", + "default": 7 + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UsageFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsageTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get Users by IDs", + "description": "Retrieves details of multiple Users by their IDs.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users" + }, + "operationId": "getUsersByIds", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "A list of User IDs, comma-separated. You can specify up to 100 IDs.", + "required": true, + "example": "2244994945,6253282,12", + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/by": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get Users by usernames", + "description": "Retrieves details of multiple Users by their usernames.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by" + }, + "operationId": "getUsersByUsernames", + "parameters": [ + { + "name": "usernames", + "in": "query", + "description": "A list of usernames, comma-separated.", + "required": true, + "schema": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "type": "string", + "description": "The X handle (screen name) of this User.", + "pattern": "^[A-Za-z0-9_]{1,15}$" + }, + "example": "TwitterDev,TwitterAPI" + }, + "explode": false, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersByResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/by/username/{username}": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get User by username", + "description": "Retrieves details of a specific User by their username.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username" + }, + "operationId": "getUsersByUsername", + "parameters": [ + { + "name": "username", + "in": "path", + "description": "A username.", + "required": true, + "example": "TwitterDev", + "schema": { + "type": "string", + "pattern": "^[A-Za-z0-9_]{1,15}$" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersByUsernameUsernameResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/compliance/stream": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Stream", + "Compliance" + ], + "summary": "Stream Users compliance data", + "description": "Streams all compliance data related to Users.", + "operationId": "streamUsersCompliance", + "parameters": [ + { + "name": "backfill_minutes", + "in": "query", + "description": "The number of minutes of backfill requested.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "maximum": 5, + "format": "int32" + }, + "style": "form" + }, + { + "name": "partition", + "in": "query", + "description": "The partition number.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 4, + "format": "int32" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the User Compliance events will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the User Compliance events will be provided.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserComplianceStreamResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "x-twitter-streaming": true + } + }, + "/2/users/me": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get my User", + "description": "Retrieves details of the authenticated user.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me" + }, + "operationId": "getMyUser", + "parameters": [ + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersMeResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/personalized_trends": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Trends" + ], + "summary": "Get personalized Trends", + "description": "Retrieves personalized trending topics for the authenticated user.", + "externalDocs": { + "url": "https://developer.x.com/" + }, + "operationId": "getUsersPersonalizedTrends", + "parameters": [ + { + "$ref": "#/components/parameters/PersonalizedTrendFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersPersonalizedTrendsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/reposts_of_me": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "timeline.read", + "tweet.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get Reposts of me", + "description": "Retrieves a list of Posts that repost content from the authenticated user.", + "operationId": "getUsersRepostsOfMe", + "parameters": [ + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersRepostsOfMeResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/search": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Search Users", + "description": "Retrieves a list of Users matching a search query.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-search" + }, + "operationId": "searchUsers", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "TThe the query string by which to query for users.", + "required": true, + "example": "someXUser", + "schema": { + "$ref": "#/components/schemas/UserSearchQueryVnext" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "next_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersSearchResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get User by ID", + "description": "Retrieves details of a specific User by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id" + }, + "operationId": "getUsersById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/blocking": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "block.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get blocking", + "description": "Retrieves a list of Users blocked by the specified User ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking" + }, + "operationId": "getUsersBlocking", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdBlockingResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/bookmarks": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "bookmark.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Bookmarks" + ], + "summary": "Get Bookmarks", + "description": "Retrieves a list of Posts bookmarked by the authenticated user.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks" + }, + "operationId": "getUsersBookmarks", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdBookmarksResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "bookmark.write", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Bookmarks" + ], + "summary": "Create Bookmark", + "description": "Adds a post to the authenticated user’s bookmarks.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks" + }, + "operationId": "createUsersBookmark", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to add bookmarks.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookmarkAddRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookmarkMutationResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/bookmarks/folders": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "bookmark.read", + "users.read" + ] + } + ], + "tags": [ + "Bookmarks" + ], + "summary": "Get Bookmark folders", + "description": "Retrieves a list of Bookmark folders created by the authenticated user.", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "getUsersBookmarkFolders", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookmarkFoldersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/bookmarks/folders/{folder_id}": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "bookmark.read", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Bookmarks" + ], + "summary": "Get Bookmarks by folder ID", + "description": "Retrieves Posts in a specific Bookmark folder by its ID for the authenticated user.", + "externalDocs": { + "url": "https://developer.x.com" + }, + "operationId": "getUsersBookmarksByFolderId", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "folder_id", + "in": "path", + "description": "The ID of the Bookmark Folder that the authenticated User is trying to fetch Posts for.", + "required": true, + "schema": { + "$ref": "#/components/schemas/BookmarkFolderId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookmarkFolderPostsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/bookmarks/{tweet_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "bookmark.write", + "tweet.read", + "users.read" + ] + } + ], + "tags": [ + "Bookmarks" + ], + "summary": "Delete Bookmark", + "description": "Removes a Post from the authenticated user’s Bookmarks by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id" + }, + "operationId": "deleteUsersBookmark", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User whose bookmark is to be removed.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "tweet_id", + "in": "path", + "description": "The ID of the Post that the source User is removing from bookmarks.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookmarkMutationResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/dm/block": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Block DMs", + "description": "Blocks direct messages to or from a specific User by their ID for the authenticated user.", + "externalDocs": { + "url": "https://developer.x.com/" + }, + "operationId": "blockUsersDms", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the target User that the authenticated user requesting to block dms for.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersDMBlockCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/dm/unblock": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Unblock DMs", + "description": "Unblocks direct messages to or from a specific User by their ID for the authenticated user.", + "externalDocs": { + "url": "https://developer.x.com/" + }, + "operationId": "unblockUsersDms", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the target User that the authenticated user requesting to unblock dms for.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersDMUnBlockCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/followed_lists": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Get followed Lists", + "description": "Retrieves a list of Lists followed by a specific User by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists" + }, + "operationId": "getUsersFollowedLists", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/ListFieldsParameter" + }, + { + "$ref": "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdFollowedListsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Follow List", + "description": "Causes the authenticated user to follow a specific List by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/post-users-id-followed-lists" + }, + "operationId": "followList", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that will follow the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFollowedRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFollowedResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/followed_lists/{list_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Unfollow List", + "description": "Causes the authenticated user to unfollow a specific List by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/delete-users-id-followed-lists-list_id" + }, + "operationId": "unfollowList", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that will unfollow the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "list_id", + "in": "path", + "description": "The ID of the List to unfollow.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFollowedResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/followers": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "follows.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get followers", + "description": "Retrieves a list of Users who follow a specific User by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" + }, + "operationId": "getUsersFollowers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdFollowersResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/following": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "follows.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get following", + "description": "Retrieves a list of Users followed by a specific User by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following" + }, + "operationId": "getUsersFollowing", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken32" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdFollowingResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "follows.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Follow User", + "description": "Causes the authenticated user to follow a specific user by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following" + }, + "operationId": "followUser", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to follow the target User.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersFollowingCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersFollowingCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/liked_tweets": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "like.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get liked Posts", + "description": "Retrieves a list of Posts liked by a specific User by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets" + }, + "operationId": "getUsersLikedPosts", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 5, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdLikedTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/likes": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "like.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Like Post", + "description": "Causes the authenticated user to Like a specific Post by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-id-likes" + }, + "operationId": "likePost", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to like the Post.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersLikesCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersLikesCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/likes/{tweet_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "like.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Unlike Post", + "description": "Causes the authenticated user to Unlike a specific Post by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id" + }, + "operationId": "unlikePost", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to unlike the Post.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "tweet_id", + "in": "path", + "description": "The ID of the Post that the User is requesting to unlike.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersLikesDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/list_memberships": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Get List memberships", + "description": "Retrieves a list of Lists that a specific User is a member of by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" + }, + "operationId": "getUsersListMemberships", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/ListFieldsParameter" + }, + { + "$ref": "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdListMembershipsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/mentions": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get mentions", + "description": "Retrieves a list of Posts that mention a specific User by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions" + }, + "operationId": "getUsersMentions", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "since_id", + "in": "query", + "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required": false, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required": false, + "example": "1346889436626259968", + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 5, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdMentionsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/muting": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "mute.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Get muting", + "description": "Retrieves a list of Users muted by the authenticated user.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting" + }, + "operationId": "getUsersMuting", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdMutingResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "mute.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Mute User", + "description": "Causes the authenticated user to mute a specific User by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting" + }, + "operationId": "muteUser", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to mute the target User.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MuteUserRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MuteUserMutationResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/owned_lists": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Get owned Lists", + "description": "Retrieves a list of Lists owned by a specific User by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists" + }, + "operationId": "getUsersOwnedLists", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32", + "default": 100 + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get a specified 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationTokenLong" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/ListFieldsParameter" + }, + { + "$ref": "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdOwnedListsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/pinned_lists": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Get pinned Lists", + "description": "Retrieves a list of Lists pinned by the authenticated user.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/get-users-id-pinned_lists" + }, + "operationId": "getUsersPinnedLists", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "$ref": "#/components/parameters/ListFieldsParameter" + }, + { + "$ref": "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdPinnedListsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Pin List", + "description": "Causes the authenticated user to pin a specific List by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/post-users-id-pinned-lists" + }, + "operationId": "pinList", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that will pin the List.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListPinnedRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListPinnedResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/pinned_lists/{list_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Lists" + ], + "summary": "Unpin List", + "description": "Causes the authenticated user to unpin a specific List by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/delete-users-id-pinned-lists-list_id" + }, + "operationId": "unpinList", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User for whom to return results.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "list_id", + "in": "path", + "description": "The ID of the List to unpin.", + "required": true, + "schema": { + "$ref": "#/components/schemas/ListId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListUnpinResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/retweets": { + "post": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Repost Post", + "description": "Causes the authenticated user to repost a specific Post by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets" + }, + "operationId": "repostPost", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to repost the Post.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersRetweetsCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersRetweetsCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/retweets/{source_tweet_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Unrepost Post", + "description": "Causes the authenticated user to unrepost a specific Post by its ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id" + }, + "operationId": "unrepostPost", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to repost the Post.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "source_tweet_id", + "in": "path", + "description": "The ID of the Post that the User is requesting to unretweet.", + "required": true, + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersRetweetsDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/timelines/reverse_chronological": { + "get": { + "security": [ + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get Timeline", + "description": "Retrieves a reverse chronological list of Posts in the authenticated User’s Timeline.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological" + }, + "operationId": "getUsersTimeline", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the authenticated source User to list Reverse Chronological Timeline Posts of.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "since_id", + "in": "query", + "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required": false, + "example": "791775337160081409", + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required": false, + "example": "1346889436626259968", + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "exclude", + "in": "query", + "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required": false, + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "replies", + "retweets" + ] + }, + "example": [ + "replies", + "retweets" + ] + }, + "explode": false, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdTimelinesReverseChronologicalResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/tweets": { + "get": { + "security": [ + { + "BearerToken": [] + }, + { + "OAuth2UserToken": [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Tweets" + ], + "summary": "Get Posts", + "description": "Retrieves a list of posts authored by a specific User by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets" + }, + "operationId": "getUsersPosts", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The ID of the User to lookup.", + "required": true, + "example": "2244994945", + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + }, + { + "name": "since_id", + "in": "query", + "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required": false, + "example": "791775337160081409", + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "until_id", + "in": "query", + "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required": false, + "example": "1346889436626259968", + "schema": { + "$ref": "#/components/schemas/TweetId" + }, + "style": "form" + }, + { + "name": "max_results", + "in": "query", + "description": "The maximum number of results.", + "required": false, + "schema": { + "type": "integer", + "minimum": 5, + "maximum": 100, + "format": "int32" + }, + "style": "form" + }, + { + "name": "pagination_token", + "in": "query", + "description": "This parameter is used to get the next 'page' of results.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PaginationToken36" + }, + "style": "form" + }, + { + "name": "exclude", + "in": "query", + "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required": false, + "schema": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "replies", + "retweets" + ] + }, + "example": [ + "replies", + "retweets" + ] + }, + "explode": false, + "style": "form" + }, + { + "name": "start_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-01T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "name": "end_time", + "in": "query", + "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required": false, + "example": "2021-02-14T18:40:40.000Z", + "schema": { + "type": "string", + "format": "date-time" + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref": "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref": "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref": "#/components/parameters/PollFieldsParameter" + }, + { + "$ref": "#/components/parameters/UserFieldsParameter" + }, + { + "$ref": "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2UsersIdTweetsResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{source_user_id}/following/{target_user_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "follows.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Unfollow User", + "description": "Causes the authenticated user to unfollow a specific user by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following" + }, + "operationId": "unfollowUser", + "parameters": [ + { + "name": "source_user_id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to unfollow the target User.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "target_user_id", + "in": "path", + "description": "The ID of the User that the source User is requesting to unfollow.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersFollowingDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{source_user_id}/muting/{target_user_id}": { + "delete": { + "security": [ + { + "OAuth2UserToken": [ + "mute.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Users" + ], + "summary": "Unmute User", + "description": "Causes the authenticated user to unmute a specific user by their ID.", + "externalDocs": { + "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting" + }, + "operationId": "unmuteUser", + "parameters": [ + { + "name": "source_user_id", + "in": "path", + "description": "The ID of the authenticated source User that is requesting to unmute the target User.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style": "simple" + }, + { + "name": "target_user_id", + "in": "path", + "description": "The ID of the User that the source User is requesting to unmute.", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MuteUserMutationResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/webhooks": { + "get": { + "security": [ + { + "BearerToken": [] + } + ], + "tags": [ + "Webhooks" + ], + "summary": "Get webhook", + "description": "Get a list of webhook configs associated with a client app.", + "externalDocs": { + "url": "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId": "getWebhooks", + "parameters": [ + { + "$ref": "#/components/parameters/WebhookConfigFieldsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Get2WebhooksResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "post": { + "security": [ + { + "BearerToken": [] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Webhooks" + ], + "summary": "Create webhook", + "description": "Creates a new webhook configuration.", + "externalDocs": { + "url": "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId": "createWebhooks", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfigCreateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfigCreateResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/webhooks/{webhook_id}": { + "delete": { + "security": [ + { + "BearerToken": [] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Webhooks" + ], + "summary": "Delete webhook", + "description": "Deletes an existing webhook configuration.", + "externalDocs": { + "url": "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId": "deleteWebhooks", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The ID of the webhook to delete.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfigDeleteResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + }, + "put": { + "security": [ + { + "BearerToken": [] + }, + { + "UserToken": [] + } + ], + "tags": [ + "Webhooks" + ], + "summary": "Validate webhook", + "description": "Triggers a CRC check for a given webhook.", + "externalDocs": { + "url": "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId": "validateWebhooks", + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "description": "The ID of the webhook to check.", + "required": true, + "schema": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookConfigPutResponse" + } + } + } + }, + "default": { + "description": "The request has failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + } + } + } + }, + "servers": [ + { + "description": "X API", + "url": "https://api.x.com" + } + ], + "tags": [ + { + "name": "Account Activity", + "description": "Endpoints relating to retrieving, managing AAA subscriptions", + "externalDocs": { + "description": "Find out more", + "url": "https://docs.x.com/x-api/enterprise-gnip-2.0/fundamentals/account-activity" + } + }, + { + "name": "Bookmarks", + "description": "Endpoints related to retrieving, managing bookmarks of a user", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/bookmarks" + } + }, + { + "name": "Compliance", + "description": "Endpoints related to keeping X data in your systems compliant", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-tweet/introduction" + } + }, + { + "name": "Direct Messages", + "description": "Endpoints related to retrieving, managing Direct Messages", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/direct-messages" + } + }, + { + "name": "General", + "description": "Miscellaneous endpoints for general API functionality", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api" + } + }, + { + "name": "Lists", + "description": "Endpoints related to retrieving, managing Lists", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/lists" + } + }, + { + "name": "Media", + "description": "Endpoints related to Media", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.x.com" + } + }, + { + "name": "MediaUpload", + "description": "Endpoints related to uploading Media", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.x.com" + } + }, + { + "name": "Spaces", + "description": "Endpoints related to retrieving, managing Spaces", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/spaces" + } + }, + { + "name": "Stream", + "description": "Endpoints related to streaming", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.x.com" + } + }, + { + "name": "Tweets", + "description": "Endpoints related to retrieving, searching, and modifying Tweets", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup" + } + }, + { + "name": "Users", + "description": "Endpoints related to retrieving, managing relationships of Users", + "externalDocs": { + "description": "Find out more", + "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup" + } + } + ], + "components": { + "securitySchemes": { + "BearerToken": { + "type": "http", + "scheme": "bearer" + }, + "OAuth2UserToken": { + "type": "oauth2", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://api.x.com/2/oauth2/authorize", + "tokenUrl": "https://api.x.com/2/oauth2/token", + "scopes": { + "block.read": "View accounts you have blocked.", + "bookmark.read": "Read your bookmarked Posts.", + "bookmark.write": "Create and delete your bookmarks.", + "dm.read": "Read all your Direct Messages.", + "dm.write": "Send and manage your Direct Messages.", + "follows.read": "View accounts you follow and accounts following you.", + "follows.write": "Follow and unfollow accounts on your behalf.", + "like.read": "View Posts you have liked and likes you can see.", + "like.write": "Like and unlike Posts on your behalf.", + "list.read": "View Lists, members, and followers of Lists you created or are a member of, including private Lists.", + "list.write": "Create and manage Lists on your behalf.", + "media.write": "Upload media, such as photos and videos, on your behalf.", + "mute.read": "View accounts you have muted.", + "mute.write": "Mute and unmute accounts on your behalf.", + "offline.access": "Request a refresh token for the app.", + "space.read": "View all Spaces you have access to.", + "timeline.read": "View all Custom Timelines you can see, including public Custom Timelines from other developers.", + "tweet.moderate.write": "Hide and unhide replies to your Posts.", + "tweet.read": "View all Posts you can see, including those from protected accounts.", + "tweet.write": "Post and repost on your behalf.", + "users.read": "View any account you can see, including protected accounts." + } + } + } + }, + "UserToken": { + "type": "http", + "scheme": "OAuth" + } + }, + "schemas": { + "AddOrDeleteRulesRequest": { + "oneOf": [ + { + "$ref": "#/components/schemas/AddRulesRequest" + }, + { + "$ref": "#/components/schemas/DeleteRulesRequest" + } + ] + }, + "AddOrDeleteRulesResponse": { + "type": "object", + "description": "A response from modifying user-specified stream filtering rules.", + "required": [ + "meta" + ], + "properties": { + "data": { + "type": "array", + "description": "All user-specified stream filtering rules that were created.", + "items": { + "$ref": "#/components/schemas/Rule" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "$ref": "#/components/schemas/RulesResponseMetadata" + } + } + }, + "AddRulesRequest": { + "type": "object", + "description": "A request to add a user-specified stream filtering rule.", + "required": [ + "add" + ], + "properties": { + "add": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RuleNoId" + } + } + } + }, + "Aggregate": { + "type": "integer", + "description": "The sum of results returned in this response.", + "format": "int32" + }, + "AllProjectClientApps": { + "type": "array", + "description": "Client App Rule Counts for all applications in the project", + "items": { + "$ref": "#/components/schemas/AppRulesCount" + } + }, + "AllowDownloadStatus": { + "type": "object", + "properties": { + "allow_download": { + "type": "boolean", + "example": true + } + } + }, + "AltText": { + "type": "object", + "required": [ + "text" + ], + "properties": { + "text": { + "type": "string", + "description": "Description of media ( <= 1000 characters )", + "maxLength": 1000, + "example": "A dancing cat" + } + } + }, + "Analytics": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "timestamped_metrics": { + "type": "array", + "title": "Timestamped Metrics", + "description": "Array containing metrics data along with the timestamps of their recording.", + "items": { + "$ref": "#/components/schemas/TimestampedMetrics" + } + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "AnimatedGif": { + "allOf": [ + { + "$ref": "#/components/schemas/Media" + }, + { + "type": "object", + "properties": { + "preview_image_url": { + "type": "string", + "format": "uri" + }, + "variants": { + "$ref": "#/components/schemas/Variants" + } + } + } + ] + }, + "AppRulesCount": { + "type": "object", + "description": "A count of user-provided stream filtering rules at the client application level.", + "properties": { + "client_app_id": { + "$ref": "#/components/schemas/ClientAppId" + }, + "rule_count": { + "type": "integer", + "description": "Number of rules for client application", + "format": "int32" + } + } + }, + "AudiencePolicy": { + "type": "object", + "properties": { + "creator_subscriptions": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Any" + ] + } + }, + "x_subscriptions": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Any" + ] + } + } + } + }, + "BookmarkAddRequest": { + "type": "object", + "required": [ + "tweet_id" + ], + "properties": { + "tweet_id": { + "$ref": "#/components/schemas/TweetId" + } + } + }, + "BookmarkFolderId": { + "type": "string", + "description": "The unique identifier of this Bookmark folder.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "BookmarkFolderPostsResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + } + }, + "BookmarkFoldersResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/BookmarkFolderId" + }, + "name": { + "type": "string" + } + } + } + } + }, + "BookmarkMutationResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "bookmarked": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "CashtagEntity": { + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref": "#/components/schemas/CashtagFields" + } + ] + }, + "CashtagFields": { + "type": "object", + "description": "Represent the portion of text recognized as a Cashtag, and its start and end position within the text.", + "required": [ + "tag" + ], + "properties": { + "tag": { + "type": "string", + "example": "TWTR" + } + } + }, + "ClientAppId": { + "type": "string", + "description": "The ID of the client application", + "minLength": 1, + "maxLength": 19 + }, + "ClientAppUsage": { + "type": "object", + "description": "Usage per client app", + "properties": { + "client_app_id": { + "type": "string", + "description": "The unique identifier for this project", + "format": "^[0-9]{1,19}$" + }, + "usage": { + "type": "array", + "description": "The usage value", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UsageFields" + } + }, + "usage_result_count": { + "type": "integer", + "description": "The number of results returned", + "format": "int32" + } + } + }, + "ClientDisconnectedProblem": { + "description": "Your client has gone away.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "ClientForbiddenProblem": { + "description": "A problem that indicates your client is forbidden from making this request.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "reason": { + "type": "string", + "enum": [ + "official-client-forbidden", + "client-not-enrolled" + ] + }, + "registration_url": { + "type": "string", + "format": "uri" + } + } + } + ] + }, + "Community": { + "type": "object", + "description": "A X Community is a curated group of Posts.", + "required": [ + "id", + "name" + ], + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "$ref": "#/components/schemas/CommunityId" + }, + "name": { + "type": "string", + "description": "The name of this Community." + } + } + }, + "CommunityId": { + "type": "string", + "description": "The unique identifier of this Community.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "ComplianceJob": { + "type": "object", + "required": [ + "id", + "type", + "created_at", + "upload_url", + "download_url", + "upload_expires_at", + "download_expires_at", + "status" + ], + "properties": { + "created_at": { + "$ref": "#/components/schemas/CreatedAt" + }, + "download_expires_at": { + "$ref": "#/components/schemas/DownloadExpiration" + }, + "download_url": { + "$ref": "#/components/schemas/DownloadUrl" + }, + "id": { + "$ref": "#/components/schemas/JobId" + }, + "name": { + "$ref": "#/components/schemas/ComplianceJobName" + }, + "status": { + "$ref": "#/components/schemas/ComplianceJobStatus" + }, + "type": { + "$ref": "#/components/schemas/ComplianceJobType" + }, + "upload_expires_at": { + "$ref": "#/components/schemas/UploadExpiration" + }, + "upload_url": { + "$ref": "#/components/schemas/UploadUrl" + } + } + }, + "ComplianceJobName": { + "type": "string", + "description": "User-provided name for a compliance job.", + "maxLength": 64, + "example": "my-job" + }, + "ComplianceJobStatus": { + "type": "string", + "description": "Status of a compliance job.", + "enum": [ + "created", + "in_progress", + "failed", + "complete", + "expired" + ] + }, + "ComplianceJobType": { + "type": "string", + "description": "Type of compliance job to list.", + "enum": [ + "tweets", + "users" + ] + }, + "ConflictProblem": { + "description": "You cannot create a new job if one is already in progress.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "ConnectionExceptionProblem": { + "description": "A problem that indicates something is wrong with the connection.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "connection_issue": { + "type": "string", + "enum": [ + "TooManyConnections", + "ProvisioningSubscription", + "RuleConfigurationIssue", + "RulesInvalidIssue" + ] + } + } + } + ] + }, + "ContentExpiration": { + "type": "object", + "required": [ + "timestamp_sec" + ], + "properties": { + "timestamp_sec": { + "type": "number", + "description": "Expiration time for content as a Unix timestamp in seconds", + "format": "long", + "example": 1740787200 + } + } + }, + "ContextAnnotation": { + "type": "object", + "description": "Annotation inferred from the Tweet text.", + "required": [ + "domain", + "entity" + ], + "properties": { + "domain": { + "$ref": "#/components/schemas/ContextAnnotationDomainFields" + }, + "entity": { + "$ref": "#/components/schemas/ContextAnnotationEntityFields" + } + } + }, + "ContextAnnotationDomainFields": { + "type": "object", + "description": "Represents the data for the context annotation domain.", + "required": [ + "id" + ], + "properties": { + "description": { + "type": "string", + "description": "Description of the context annotation domain." + }, + "id": { + "type": "string", + "description": "The unique id for a context annotation domain.", + "pattern": "^[0-9]{1,19}$" + }, + "name": { + "type": "string", + "description": "Name of the context annotation domain." + } + } + }, + "ContextAnnotationEntityFields": { + "type": "object", + "description": "Represents the data for the context annotation entity.", + "required": [ + "id" + ], + "properties": { + "description": { + "type": "string", + "description": "Description of the context annotation entity." + }, + "id": { + "type": "string", + "description": "The unique id for a context annotation entity.", + "pattern": "^[0-9]{1,19}$" + }, + "name": { + "type": "string", + "description": "Name of the context annotation entity." + } + } + }, + "CountryCode": { + "type": "string", + "description": "A two-letter ISO 3166-1 alpha-2 country code.", + "pattern": "^[A-Z]{2}$", + "example": "US" + }, + "CreateAttachmentsMessageRequest": { + "type": "object", + "required": [ + "attachments" + ], + "properties": { + "attachments": { + "$ref": "#/components/schemas/DmAttachments" + }, + "text": { + "type": "string", + "description": "Text of the message.", + "minLength": 1 + } + } + }, + "CreateComplianceJobRequest": { + "type": "object", + "description": "A request to create a new batch compliance job.", + "required": [ + "type" + ], + "properties": { + "name": { + "$ref": "#/components/schemas/ComplianceJobName" + }, + "resumable": { + "type": "boolean", + "description": "If true, this endpoint will return a pre-signed URL with resumable uploads enabled." + }, + "type": { + "type": "string", + "description": "Type of compliance job to list.", + "enum": [ + "tweets", + "users" + ] + } + } + }, + "CreateComplianceJobResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ComplianceJob" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "CreateDmConversationRequest": { + "type": "object", + "required": [ + "conversation_type", + "participant_ids", + "message" + ], + "properties": { + "conversation_type": { + "type": "string", + "description": "The conversation type that is being created.", + "enum": [ + "Group" + ] + }, + "message": { + "$ref": "#/components/schemas/CreateMessageRequest" + }, + "participant_ids": { + "$ref": "#/components/schemas/DmParticipants" + } + }, + "additionalProperties": false + }, + "CreateDmEventResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "dm_conversation_id", + "dm_event_id" + ], + "properties": { + "dm_conversation_id": { + "$ref": "#/components/schemas/DmConversationId" + }, + "dm_event_id": { + "$ref": "#/components/schemas/DmEventId" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "CreateMessageRequest": { + "anyOf": [ + { + "$ref": "#/components/schemas/CreateTextMessageRequest" + }, + { + "$ref": "#/components/schemas/CreateAttachmentsMessageRequest" + } + ] + }, + "CreateNoteRequest": { + "type": "object", + "title": "Note", + "required": [ + "test_mode", + "post_id", + "info" + ], + "properties": { + "info": { + "$ref": "#/components/schemas/NoteInfo" + }, + "post_id": { + "$ref": "#/components/schemas/TweetId" + }, + "test_mode": { + "type": "boolean", + "description": "If true, the note being submitted is only for testing the capability of the bot, and won't be publicly visible. If false, the note being submitted will be a new proposed note on the product." + } + }, + "additionalProperties": false + }, + "CreateNoteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/NoteId" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "CreateTextMessageRequest": { + "type": "object", + "required": [ + "text" + ], + "properties": { + "attachments": { + "$ref": "#/components/schemas/DmAttachments" + }, + "text": { + "type": "string", + "description": "Text of the message.", + "minLength": 1 + } + } + }, + "CreatedAt": { + "type": "string", + "description": "Creation time of the compliance job.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "DeleteDmResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "DeleteNoteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "deleted" + ], + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "DeleteRulesRequest": { + "type": "object", + "description": "A response from deleting user-specified stream filtering rules.", + "required": [ + "delete" + ], + "properties": { + "delete": { + "type": "object", + "description": "IDs and values of all deleted user-specified stream filtering rules.", + "properties": { + "ids": { + "type": "array", + "description": "IDs of all deleted user-specified stream filtering rules.", + "items": { + "$ref": "#/components/schemas/RuleId" + } + }, + "values": { + "type": "array", + "description": "Values of all deleted user-specified stream filtering rules.", + "items": { + "$ref": "#/components/schemas/RuleValue" + } + } + } + } + } + }, + "DisallowedResourceProblem": { + "description": "A problem that indicates that the resource requested violates the precepts of this API.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "required": [ + "resource_id", + "resource_type", + "section" + ], + "properties": { + "resource_id": { + "type": "string" + }, + "resource_type": { + "type": "string", + "enum": [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "section": { + "type": "string", + "enum": [ + "data", + "includes" + ] + } + } + } + ] + }, + "DisplayTextRange": { + "type": "array", + "description": "Represent a boundary range (start and end zero-based indices) for the portion of text that is displayed for a post. `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "integer", + "minimum": 0 + } + }, + "DmAttachments": { + "type": "array", + "description": "Attachments to a DM Event.", + "items": { + "$ref": "#/components/schemas/DmMediaAttachment" + } + }, + "DmConversationId": { + "type": "string", + "description": "Unique identifier of a DM conversation. This can either be a numeric string, or a pair of numeric strings separated by a '-' character in the case of one-on-one DM Conversations.", + "pattern": "^([0-9]{1,19}-[0-9]{1,19}|[0-9]{15,19})$", + "example": "123123123-456456456" + }, + "DmEvent": { + "type": "object", + "required": [ + "id", + "event_type" + ], + "properties": { + "attachments": { + "type": "object", + "description": "Specifies the type of attachments (if any) present in this DM.", + "properties": { + "card_ids": { + "type": "array", + "description": "A list of card IDs (if cards are attached).", + "minItems": 1, + "items": { + "type": "string" + } + }, + "media_keys": { + "type": "array", + "description": "A list of Media Keys for each one of the media attachments (if media are attached).", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/MediaKey" + } + } + } + }, + "cashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/CashtagEntity" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "dm_conversation_id": { + "$ref": "#/components/schemas/DmConversationId" + }, + "event_type": { + "type": "string", + "example": "MessageCreate" + }, + "hashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/HashtagEntity" + } + }, + "id": { + "$ref": "#/components/schemas/DmEventId" + }, + "mentions": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/MentionEntity" + } + }, + "participant_ids": { + "type": "array", + "description": "A list of participants for a ParticipantsJoin or ParticipantsLeave event_type.", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "referenced_tweets": { + "type": "array", + "description": "A list of Posts this DM refers to.", + "minItems": 1, + "items": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + }, + "sender_id": { + "$ref": "#/components/schemas/UserId" + }, + "text": { + "type": "string" + }, + "urls": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UrlEntityDm" + } + } + } + }, + "DmEventId": { + "type": "string", + "description": "Unique identifier of a DM Event.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "DmMediaAttachment": { + "type": "object", + "required": [ + "media_id" + ], + "properties": { + "media_id": { + "$ref": "#/components/schemas/MediaId" + } + } + }, + "DmParticipants": { + "type": "array", + "description": "Participants for the DM Conversation.", + "minItems": 2, + "maxItems": 49, + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "DomainRestrictions": { + "type": "object", + "required": [ + "whitelist" + ], + "properties": { + "whitelist": { + "type": "array", + "description": "List of whitelisted domains", + "items": { + "type": "string" + } + } + } + }, + "DownloadExpiration": { + "type": "string", + "description": "Expiration time of the download URL.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "DownloadUrl": { + "type": "string", + "description": "URL from which the user will retrieve their compliance results.", + "format": "uri" + }, + "DuplicateRuleProblem": { + "description": "The rule you have submitted is a duplicate.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + ] + }, + "End": { + "type": "string", + "description": "The end time of the bucket.", + "format": "date-time" + }, + "Engagement": { + "type": "object", + "description": "An Engagement Api Response.", + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "tweets": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "measurement": { + "type": "object", + "properties": { + "metrics_time_series": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "value": { + "type": "object", + "properties": { + "metric_values": { + "type": "array", + "items": { + "type": "object", + "properties": { + "metric_type": { + "type": "string" + }, + "metric_value": { + "type": "number" + } + } + } + }, + "timestamp": { + "type": "object", + "properties": { + "iso8601_time": { + "type": "string" + } + } + } + } + } + } + } + }, + "metrics_total": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "value": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "metric_type": { + "type": "string" + }, + "metric_value": { + "type": "number" + } + } + } + } + } + } + } + } + } + } + }, + "EntityIndicesInclusiveExclusive": { + "type": "object", + "description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", + "required": [ + "start", + "end" + ], + "properties": { + "end": { + "type": "integer", + "description": "Index (zero-based) at which position this entity ends. The index is exclusive.", + "minimum": 0, + "example": 61 + }, + "start": { + "type": "integer", + "description": "Index (zero-based) at which position this entity starts. The index is inclusive.", + "minimum": 0, + "example": 50 + } + } + }, + "EntityIndicesInclusiveInclusive": { + "type": "object", + "description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is inclusive.", + "required": [ + "start", + "end" + ], + "properties": { + "end": { + "type": "integer", + "description": "Index (zero-based) at which position this entity ends. The index is inclusive.", + "minimum": 0, + "example": 61 + }, + "start": { + "type": "integer", + "description": "Index (zero-based) at which position this entity starts. The index is inclusive.", + "minimum": 0, + "example": 50 + } + } + }, + "Error": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + }, + "Expansions": { + "type": "object", + "properties": { + "media": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Media" + } + }, + "places": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Place" + } + }, + "polls": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Poll" + } + }, + "topics": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Topic" + } + }, + "tweets": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "users": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "FieldUnauthorizedProblem": { + "description": "A problem that indicates that you are not allowed to see a particular field on a Tweet, User, etc.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "required": [ + "resource_type", + "field", + "section" + ], + "properties": { + "field": { + "type": "string" + }, + "resource_type": { + "type": "string", + "enum": [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "section": { + "type": "string", + "enum": [ + "data", + "includes" + ] + } + } + } + ] + }, + "FilteredStreamingTweetResponse": { + "type": "object", + "description": "A Tweet or error that can be returned by the streaming Tweet API. The values returned with a successful streamed Tweet includes the user provided rules that the Tweet matched.", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "matching_rules": { + "type": "array", + "description": "The list of rules which matched the Tweet", + "items": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/RuleId" + }, + "tag": { + "$ref": "#/components/schemas/RuleTag" + } + } + } + } + } + }, + "FoundMediaOrigin": { + "type": "object", + "required": [ + "provider", + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Identifier of media within provider ( <= 24 characters ))", + "example": "u5BzatR15TZ04" + }, + "provider": { + "type": "string", + "description": "The media provider (e.g., 'giphy') that sourced the media ( <= 8 Characters )", + "example": "giphy" + } + } + }, + "FullTextEntities": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "minItems": 1, + "items": { + "description": "Annotation for entities based on the Tweet text.", + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveInclusive" + }, + { + "type": "object", + "description": "Represents the data for the annotation.", + "properties": { + "normalized_text": { + "type": "string", + "description": "Text used to determine annotation.", + "example": "Barack Obama" + }, + "probability": { + "type": "number", + "description": "Confidence factor for annotation type.", + "minimum": 0, + "maximum": 1, + "format": "double" + }, + "type": { + "type": "string", + "description": "Annotation type.", + "example": "Person" + } + } + } + ] + } + }, + "cashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/CashtagEntity" + } + }, + "hashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/HashtagEntity" + } + }, + "mentions": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/MentionEntity" + } + }, + "urls": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UrlEntity" + } + } + } + }, + "GenericProblem": { + "description": "A generic problem with no additional information beyond that provided by the HTTP status code.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "Geo": { + "type": "object", + "required": [ + "type", + "bbox", + "properties" + ], + "properties": { + "bbox": { + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number", + "minimum": -180, + "maximum": 180, + "format": "double" + }, + "example": [ + -105.193475, + 39.60973, + -105.053164, + 39.761974 + ] + }, + "geometry": { + "$ref": "#/components/schemas/Point" + }, + "properties": { + "type": "object" + }, + "type": { + "type": "string", + "enum": [ + "Feature" + ] + } + } + }, + "GeoRestrictions": { + "oneOf": [ + { + "type": "object", + "required": [ + "whitelisted_country_codes", + "blacklisted_country_codes" + ], + "properties": { + "blacklisted_country_codes": { + "type": "array", + "description": "List of blacklisted country codes", + "minItems": 0, + "maxItems": 0, + "items": { + "type": "string", + "description": "Country code in ISO 3166-1 alpha-2 format", + "pattern": "^[a-zA-Z]{2}$", + "example": "us" + } + }, + "whitelisted_country_codes": { + "type": "array", + "description": "List of whitelisted country codes", + "minItems": 1, + "items": { + "type": "string", + "description": "Country code in ISO 3166-1 alpha-2 format", + "pattern": "^[a-zA-Z]{2}$", + "example": "us" + } + } + } + }, + { + "type": "object", + "required": [ + "whitelisted_country_codes", + "blacklisted_country_codes" + ], + "properties": { + "blacklisted_country_codes": { + "type": "array", + "description": "List of blacklisted country codes", + "minItems": 1, + "items": { + "type": "string", + "description": "Country code in ISO 3166-1 alpha-2 format", + "pattern": "^[a-zA-Z]{2}$", + "example": "us" + } + }, + "whitelisted_country_codes": { + "type": "array", + "description": "List of whitelisted country codes", + "minItems": 0, + "maxItems": 0, + "items": { + "type": "string", + "description": "Country code in ISO 3166-1 alpha-2 format", + "pattern": "^[a-zA-Z]{2}$", + "example": "us" + } + } + } + } + ] + }, + "Get2CommunitiesIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Community" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2CommunitiesSearchResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Community" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + } + } + } + } + }, + "Get2ComplianceJobsIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ComplianceJob" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2ComplianceJobsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/ComplianceJob" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmConversationsIdDmEventsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DmEvent" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmConversationsWithParticipantIdDmEventsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DmEvent" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmEventsEventIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/DmEvent" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2DmEventsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DmEvent" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2FdxAccountsAccountidContactResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/PlaidAccountContact" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidPayment-networksResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/PlaidAccountPaymentNetwork" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/PlaidAccount" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidTransactionsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/PlaidAccountTransaction" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxCustomersCurrentResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/PlaidCustomer" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2Insights28hrResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Engagement" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2InsightsHistoricalResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Engagement" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2LikesFirehoseStreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/LikeWithTweetAuthor" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2LikesSample10StreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/LikeWithTweetAuthor" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2ListsIdFollowersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2ListsIdMembersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2ListsIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/List" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2ListsIdTweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2MediaAnalyticsResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/MediaAnalytics" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2MediaMediaKeyResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Media" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2MediaResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Media" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2NotesSearchNotesWrittenResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Note" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2NotesSearchPostsEligibleForNotesResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesByCreatorIdsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Space" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesIdBuyersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Space" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2SpacesIdTweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Space" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2SpacesSearchResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Space" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TrendsByWoeidWoeidResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Trend" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2TweetsAnalyticsResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Analytics" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2TweetsCountsAllResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/SearchCount" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "total_tweet_count": { + "$ref": "#/components/schemas/Aggregate" + } + } + } + } + }, + "Get2TweetsCountsRecentResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/SearchCount" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "total_tweet_count": { + "$ref": "#/components/schemas/Aggregate" + } + } + } + } + }, + "Get2TweetsFirehoseStreamLangEnResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangJaResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangKoResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangPtResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsIdLikingUsersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdQuoteTweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsIdRetweetedByResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdRetweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSample10StreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSampleStreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSearchAllResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsSearchRecentResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsSearchStreamResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSearchStreamRulesCountsResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/RulesCount" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2UsageTweetsResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Usage" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2UsersByResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2UsersByUsernameUsernameResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/User" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2UsersIdBlockingResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdBookmarksResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowedListsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/List" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowingResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdLikedTweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdListMembershipsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/List" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdMentionsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdMutingResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdOwnedListsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/List" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdPinnedListsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/List" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/User" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2UsersIdTimelinesReverseChronologicalResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdTweetsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "newest_id": { + "$ref": "#/components/schemas/NewestId" + }, + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "oldest_id": { + "$ref": "#/components/schemas/OldestId" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersMeResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/User" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2UsersPersonalizedTrendsResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/PersonalizedTrend" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Get2UsersRepostsOfMeResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Tweet" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + }, + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "Get2UsersSearchResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/User" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + }, + "meta": { + "type": "object", + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "previous_token": { + "$ref": "#/components/schemas/PreviousToken" + } + } + } + } + }, + "Get2WebhooksResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/WebhookConfig" + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "meta": { + "type": "object", + "properties": { + "result_count": { + "$ref": "#/components/schemas/ResultCount" + } + } + } + } + }, + "HashtagEntity": { + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref": "#/components/schemas/HashtagFields" + } + ] + }, + "HashtagFields": { + "type": "object", + "description": "Represent the portion of text recognized as a Hashtag, and its start and end position within the text.", + "required": [ + "tag" + ], + "properties": { + "tag": { + "type": "string", + "description": "The text of the Hashtag.", + "example": "MondayMotivation" + } + } + }, + "HttpStatusCode": { + "type": "integer", + "description": "HTTP Status Code.", + "minimum": 100, + "maximum": 599 + }, + "InvalidRequestProblem": { + "description": "A problem that indicates this request is invalid.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + ] + }, + "InvalidRuleProblem": { + "description": "The rule you have submitted is invalid.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "JobId": { + "type": "string", + "description": "Compliance Job ID.", + "pattern": "^[0-9]{1,19}$", + "example": "1372966999991541762" + }, + "KillAllConnectionsResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "killed_connections": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "LikeComplianceSchema": { + "type": "object", + "required": [ + "delete" + ], + "properties": { + "delete": { + "$ref": "#/components/schemas/UnlikeComplianceSchema" + } + } + }, + "LikeId": { + "type": "string", + "description": "The unique identifier of this Like.", + "pattern": "^[A-Za-z0-9_]{1,40}$", + "example": "8ba4f34e6235d905a46bac021d98e923" + }, + "LikeWithTweetAuthor": { + "type": "object", + "description": "A Like event, with the tweet author user and the tweet being liked", + "properties": { + "created_at": { + "type": "string", + "description": "Creation time of the Tweet.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "id": { + "$ref": "#/components/schemas/LikeId" + }, + "liked_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "timestamp_ms": { + "type": "integer", + "description": "Timestamp in milliseconds of creation.", + "format": "int32" + }, + "tweet_author_id": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "LikesComplianceStreamResponse": { + "description": "Likes compliance stream events.", + "oneOf": [ + { + "type": "object", + "description": "Compliance event.", + "required": [ + "data" + ], + "properties": { + "data": { + "$ref": "#/components/schemas/LikeComplianceSchema" + } + } + }, + { + "type": "object", + "required": [ + "errors" + ], + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + ] + }, + "List": { + "type": "object", + "description": "A X List is a curated group of accounts.", + "required": [ + "id", + "name" + ], + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string" + }, + "follower_count": { + "type": "integer" + }, + "id": { + "$ref": "#/components/schemas/ListId" + }, + "member_count": { + "type": "integer" + }, + "name": { + "type": "string", + "description": "The name of this List." + }, + "owner_id": { + "$ref": "#/components/schemas/UserId" + }, + "private": { + "type": "boolean" + } + } + }, + "ListAddUserRequest": { + "type": "object", + "required": [ + "user_id" + ], + "properties": { + "user_id": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "ListCreateRequest": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "description": { + "type": "string", + "minLength": 0, + "maxLength": 100 + }, + "name": { + "type": "string", + "minLength": 1, + "maxLength": 25 + }, + "private": { + "type": "boolean", + "default": false + } + } + }, + "ListCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "A X List is a curated group of accounts.", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/ListId" + }, + "name": { + "type": "string", + "description": "The name of this List." + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListFollowedRequest": { + "type": "object", + "required": [ + "list_id" + ], + "properties": { + "list_id": { + "$ref": "#/components/schemas/ListId" + } + } + }, + "ListFollowedResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "following": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListId": { + "type": "string", + "description": "The unique identifier of this List.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "ListMutateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "is_member": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListPinnedRequest": { + "type": "object", + "required": [ + "list_id" + ], + "properties": { + "list_id": { + "$ref": "#/components/schemas/ListId" + } + } + }, + "ListPinnedResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "pinned": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListUnpinResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "pinned": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ListUpdateRequest": { + "type": "object", + "properties": { + "description": { + "type": "string", + "minLength": 0, + "maxLength": 100 + }, + "name": { + "type": "string", + "minLength": 1, + "maxLength": 25 + }, + "private": { + "type": "boolean" + } + } + }, + "ListUpdateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "updated": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "ManagementInfo": { + "type": "object", + "required": [ + "managed" + ], + "properties": { + "managed": { + "type": "boolean", + "description": "Indicates if the media is managed by Media Studio", + "example": false + } + } + }, + "Media": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "height": { + "$ref": "#/components/schemas/MediaHeight" + }, + "media_key": { + "$ref": "#/components/schemas/MediaKey" + }, + "type": { + "type": "string" + }, + "width": { + "$ref": "#/components/schemas/MediaWidth" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "animated_gif": "#/components/schemas/AnimatedGif", + "photo": "#/components/schemas/Photo", + "video": "#/components/schemas/Video" + } + } + }, + "MediaAnalytics": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "media_key": { + "$ref": "#/components/schemas/MediaKey" + }, + "timestamped_metrics": { + "type": "array", + "title": "Timestamped Metrics", + "description": "Array containing metrics data along with the timestamps of their recording.", + "items": { + "$ref": "#/components/schemas/MediaTimestampedMetrics" + } + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "MediaCategory": { + "type": "string", + "description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size, video duration) and enable advanced features.", + "enum": [ + "amplify_video", + "tweet_gif", + "tweet_image", + "tweet_video", + "dm_gif", + "dm_image", + "dm_video", + "subtitles" + ], + "example": "tweet_video" + }, + "MediaCategoryOneShot": { + "type": "string", + "description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size) and enable advanced features.", + "enum": [ + "tweet_image", + "dm_image", + "subtitles" + ], + "example": "tweet_image" + }, + "MediaCategorySubtitles": { + "type": "string", + "description": "The media category of uploaded media to which subtitles should be added/deleted", + "enum": [ + "AmplifyVideo", + "TweetVideo" + ], + "example": "TweetVideo" + }, + "MediaHeight": { + "type": "integer", + "description": "The height of the media in pixels.", + "minimum": 0 + }, + "MediaId": { + "type": "string", + "description": "The unique identifier of this Media.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "MediaKey": { + "type": "string", + "description": "The Media Key identifier for this attachment.", + "pattern": "^([0-9]+)_([0-9]+)$" + }, + "MediaMetrics": { + "type": "object", + "properties": { + "cta_url_clicks": { + "type": "integer", + "title": "CTA URL Clicks", + "description": "Tracks the number of clicks on a call-to-action URL" + }, + "cta_watch_clicks": { + "type": "integer", + "title": "CTA Watch Clicks", + "description": "Tracks the number of clicks to watch a video or media content" + }, + "play_from_tap": { + "type": "integer", + "title": "Play From Tap", + "description": "Tracks the number of times a video or media is played from a user tap" + }, + "playback25": { + "type": "integer", + "title": "Playback 25%", + "description": "Tracks the number of times a video reaches 25% of its duration" + }, + "playback50": { + "type": "integer", + "title": "Playback 50%", + "description": "Tracks the number of times a video reaches 50% of its duration" + }, + "playback75": { + "type": "integer", + "title": "Playback 75%", + "description": "Tracks the number of times a video reaches 75% of its duration" + }, + "playback_complete": { + "type": "integer", + "title": "Playback Complete", + "description": "Tracks the number of times a video is played to completion" + }, + "playback_start": { + "type": "integer", + "title": "Playback Start", + "description": "Tracks the number of times a video playback is initiated" + }, + "video_views": { + "type": "integer", + "title": "Video Views", + "description": "Tracks the number of times a video is viewed" + }, + "watch_time_ms": { + "type": "integer", + "title": "Watch Time (ms)", + "description": "Tracks the total time spent watching a video, measured in milliseconds" + } + } + }, + "MediaPayloadBinary": { + "type": "string", + "description": "The file to upload.", + "format": "binary" + }, + "MediaPayloadByte": { + "type": "string", + "description": "The file to upload.", + "format": "byte" + }, + "MediaSegments": { + "oneOf": [ + { + "type": "integer", + "description": "An integer value representing the media upload segment.", + "minimum": 0, + "maximum": 999, + "format": "int32" + }, + { + "type": "string", + "description": "An integer value representing the media upload segment.", + "pattern": "^[0-9]{1,3}$", + "format": "integer" + } + ] + }, + "MediaTimestampedMetrics": { + "type": "object", + "properties": { + "metrics": { + "$ref": "#/components/schemas/MediaMetrics" + }, + "timestamp": { + "type": "string", + "title": "Timestamp", + "description": "ISO8601 Time", + "example": "2025-03-17T06:30:00Z" + } + } + }, + "MediaUploadAppendRequest": { + "anyOf": [ + { + "type": "object", + "required": [ + "media", + "segment_index" + ], + "properties": { + "media": { + "$ref": "#/components/schemas/MediaPayloadBinary" + }, + "segment_index": { + "$ref": "#/components/schemas/MediaSegments" + } + } + }, + { + "type": "object", + "required": [ + "media", + "segment_index" + ], + "properties": { + "media": { + "$ref": "#/components/schemas/MediaPayloadByte" + }, + "segment_index": { + "$ref": "#/components/schemas/MediaSegments" + } + } + } + ] + }, + "MediaUploadAppendResponse": { + "type": "object", + "description": "A response from getting a media upload request status.", + "required": [ + "meta" + ], + "properties": { + "data": { + "type": "object", + "properties": { + "expires_at": { + "type": "integer", + "description": "Unix epoch time in seconds after when the upload session expires.", + "format": "int64" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "MediaUploadConfigRequest": { + "type": "object", + "properties": { + "additional_owners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "media_category": { + "$ref": "#/components/schemas/MediaCategory" + }, + "media_type": { + "type": "string", + "description": "The type of media.", + "enum": [ + "video/mp4", + "video/webm", + "video/mp2t", + "video/quicktime", + "text/srt", + "text/vtt", + "image/jpeg", + "image/gif", + "image/bmp", + "image/png", + "image/webp", + "image/pjpeg", + "image/tiff", + "model/gltf-binary", + "model/vnd.usdz+zip" + ], + "example": "video/mp4" + }, + "shared": { + "type": "boolean", + "description": "Whether this media is shared or not." + }, + "total_bytes": { + "type": "integer", + "description": "The total size of the media upload in bytes.", + "minimum": 0, + "maximum": 17179869184 + } + }, + "additionalProperties": false + }, + "MediaUploadRequestOneShot": { + "type": "object", + "required": [ + "media", + "media_category" + ], + "properties": { + "additional_owners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "media": { + "anyOf": [ + { + "$ref": "#/components/schemas/MediaPayloadBinary" + }, + { + "$ref": "#/components/schemas/MediaPayloadByte" + } + ] + }, + "media_category": { + "$ref": "#/components/schemas/MediaCategoryOneShot" + }, + "media_type": { + "type": "string", + "description": "The type of image or subtitle.", + "enum": [ + "text/srt", + "text/vtt", + "image/jpeg", + "image/bmp", + "image/png", + "image/webp", + "image/pjpeg", + "image/tiff" + ], + "example": "image/png" + }, + "shared": { + "type": "boolean", + "description": "Whether this media is shared or not.", + "default": false + } + }, + "additionalProperties": false + }, + "MediaUploadResponse": { + "type": "object", + "description": "A response from getting a media upload request status.", + "required": [ + "meta" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "id", + "media_key" + ], + "properties": { + "expires_after_secs": { + "type": "integer", + "description": "Number of seconds after which upload session expires.", + "format": "int32" + }, + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "media_key": { + "$ref": "#/components/schemas/MediaKey" + }, + "processing_info": { + "$ref": "#/components/schemas/ProcessingInfo" + }, + "size": { + "type": "integer", + "description": "Size of the upload", + "format": "int32" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "MediaWidth": { + "type": "integer", + "description": "The width of the media in pixels.", + "minimum": 0 + }, + "MentionEntity": { + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref": "#/components/schemas/MentionFields" + } + ] + }, + "MentionFields": { + "type": "object", + "description": "Represent the portion of text recognized as a User mention, and its start and end position within the text.", + "required": [ + "username" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/UserId" + }, + "username": { + "$ref": "#/components/schemas/UserName" + } + } + }, + "MetadataCreateRequest": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "metadata": { + "type": "object", + "properties": { + "allow_download_status": { + "$ref": "#/components/schemas/AllowDownloadStatus" + }, + "alt_text": { + "$ref": "#/components/schemas/AltText" + }, + "audience_policy": { + "$ref": "#/components/schemas/AudiencePolicy" + }, + "content_expiration": { + "$ref": "#/components/schemas/ContentExpiration" + }, + "domain_restrictions": { + "$ref": "#/components/schemas/DomainRestrictions" + }, + "found_media_origin": { + "$ref": "#/components/schemas/FoundMediaOrigin" + }, + "geo_restrictions": { + "$ref": "#/components/schemas/GeoRestrictions" + }, + "management_info": { + "$ref": "#/components/schemas/ManagementInfo" + }, + "preview_image": { + "$ref": "#/components/schemas/PreviewImage" + }, + "sensitive_media_warning": { + "$ref": "#/components/schemas/SensitiveMediaWarning" + }, + "shared_info": { + "$ref": "#/components/schemas/SharedInfo" + }, + "sticker_info": { + "$ref": "#/components/schemas/StickerInfo" + }, + "upload_source": { + "$ref": "#/components/schemas/UploadSource" + } + } + } + } + }, + "MetadataCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "associated_metadata": { + "type": "object", + "properties": { + "allow_download_status": { + "$ref": "#/components/schemas/AllowDownloadStatus" + }, + "alt_text": { + "$ref": "#/components/schemas/AltText" + }, + "audience_policy": { + "$ref": "#/components/schemas/AudiencePolicy" + }, + "content_expiration": { + "$ref": "#/components/schemas/ContentExpiration" + }, + "domain_restrictions": { + "$ref": "#/components/schemas/DomainRestrictions" + }, + "found_media_origin": { + "$ref": "#/components/schemas/FoundMediaOrigin" + }, + "geo_restrictions": { + "$ref": "#/components/schemas/GeoRestrictions" + }, + "management_info": { + "$ref": "#/components/schemas/ManagementInfo" + }, + "preview_image": { + "$ref": "#/components/schemas/PreviewImage" + }, + "sensitive_media_warning": { + "$ref": "#/components/schemas/SensitiveMediaWarning" + }, + "shared_info": { + "$ref": "#/components/schemas/SharedInfo" + }, + "sticker_info": { + "$ref": "#/components/schemas/StickerInfo" + }, + "upload_source": { + "$ref": "#/components/schemas/UploadSource" + } + } + }, + "id": { + "$ref": "#/components/schemas/MediaId" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Metrics": { + "type": "object", + "properties": { + "app_install_attempts": { + "type": "integer", + "title": "App Install Attempts", + "description": "Tracks number of App Install Attempts" + }, + "app_opens": { + "type": "integer", + "title": "App Opens", + "description": "Tracks number of App opens" + }, + "detail_expands": { + "type": "integer", + "title": "Detail Expands", + "description": "Tracks number of Detail expands" + }, + "email_tweet": { + "type": "integer", + "title": "Email Tweet", + "description": "Tracks number of Email Tweet actions" + }, + "engagements": { + "type": "integer", + "title": "Engagements", + "description": "Tracks total Engagements" + }, + "follows": { + "type": "integer", + "title": "Follows", + "description": "Tracks number of Follows" + }, + "hashtag_clicks": { + "type": "integer", + "title": "Hashtag Clicks", + "description": "Tracks number of Hashtag clicks" + }, + "impressions": { + "type": "integer", + "title": "Impressions", + "description": "Tracks number of Impressions" + }, + "likes": { + "type": "integer", + "title": "Likes", + "description": "Tracks number of Likes" + }, + "link_clicks": { + "type": "integer", + "title": "Link Clicks", + "description": "Tracks number of Link clicks" + }, + "media_engagements": { + "type": "integer", + "title": "Media Engagements", + "description": "Tracks number of Media engagements" + }, + "media_views": { + "type": "integer", + "title": "Media Views", + "description": "Tracks number of Media views" + }, + "permalink_clicks": { + "type": "integer", + "title": "Permalink Clicks", + "description": "Tracks number of Permalink clicks" + }, + "profile_visits": { + "type": "integer", + "title": "Profile Visits", + "description": "Tracks number of Profile visits" + }, + "quote_tweets": { + "type": "integer", + "title": "Quote Tweets", + "description": "Tracks number of Quote Tweets" + }, + "replies": { + "type": "integer", + "title": "Replies", + "description": "Tracks number of Replies" + }, + "retweets": { + "type": "integer", + "title": "Retweets", + "description": "Tracks number of Retweets" + }, + "url_clicks": { + "type": "integer", + "title": "URL Clicks", + "description": "Tracks number of URL clicks" + }, + "user_profile_clicks": { + "type": "integer", + "title": "User Profile Clicks", + "description": "Tracks number of User Profile clicks" + } + } + }, + "MisleadingTags": { + "type": "string", + "description": "Community Note misleading tags type.", + "enum": [ + "disputed_claim_as_fact", + "factual_error", + "manipulated_media", + "misinterpreted_satire", + "missing_important_context", + "other", + "outdated_information" + ] + }, + "MuteUserMutationResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "muting": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "MuteUserRequest": { + "type": "object", + "required": [ + "target_user_id" + ], + "properties": { + "target_user_id": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "NewestId": { + "type": "string", + "description": "The newest id in this response." + }, + "NextToken": { + "type": "string", + "description": "The next token.", + "minLength": 1 + }, + "NonCompliantRulesProblem": { + "description": "A problem that indicates the user's rule set is not compliant.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "Note": { + "type": "object", + "description": "A X Community Note is a note on a Post.", + "required": [ + "id", + "post_id", + "note_info" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/NoteId" + }, + "info": { + "$ref": "#/components/schemas/NoteInfo" + }, + "post_id": { + "$ref": "#/components/schemas/TweetId" + }, + "status": { + "$ref": "#/components/schemas/NoteRatingStatus" + }, + "test_result": { + "$ref": "#/components/schemas/NoteTestResult" + } + } + }, + "NoteClassification": { + "type": "string", + "description": "Community Note classification type.", + "enum": [ + "misinformed_or_potentially_misleading", + "not_misleading" + ] + }, + "NoteId": { + "type": "string", + "description": "The unique identifier of this Community Note.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "NoteInfo": { + "type": "object", + "description": "A X Community Note is a note on a Post.", + "required": [ + "text", + "classification", + "misleading_tags", + "trustworthy_sources" + ], + "properties": { + "classification": { + "$ref": "#/components/schemas/NoteClassification" + }, + "misleading_tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MisleadingTags" + } + }, + "text": { + "type": "string", + "description": "The text summary in the Community Note.", + "pattern": "^(?=.*https?://\\S+).+$" + }, + "trustworthy_sources": { + "type": "boolean", + "description": "Whether the note provided trustworthy links." + } + }, + "additionalProperties": false + }, + "NoteRatingStatus": { + "type": "string", + "description": "Community Note rating status. Only returned when test result is false", + "enum": [ + "currently_rated_helpful", + "currently_rated_not_helpful", + "firm_reject", + "insufficient_consensus", + "minimum_ratings_not_met", + "needs_more_ratings", + "needs_your_help" + ] + }, + "NoteTestResult": { + "type": "object", + "description": "The test result of a community note.", + "properties": { + "evaluator_score": { + "type": "number", + "description": "The score given to a written test note.", + "format": "double" + }, + "evaluator_type": { + "type": "string", + "description": "The type of evaluator response." + } + } + }, + "NoteTweetText": { + "type": "string", + "description": "The note content of the Tweet.", + "example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\… https:\/\/t.co\/56a0vZUx7i" + }, + "Oauth1PermissionsProblem": { + "description": "A problem that indicates your client application does not have the required OAuth1 permissions for the requested endpoint.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "OldestId": { + "type": "string", + "description": "The oldest id in this response." + }, + "OperationalDisconnectProblem": { + "description": "You have been disconnected for operational reasons.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "disconnect_type": { + "type": "string", + "enum": [ + "OperationalDisconnect", + "UpstreamOperationalDisconnect", + "ForceDisconnect", + "UpstreamUncleanDisconnect", + "SlowReader", + "InternalError", + "ClientApplicationStateDegraded", + "InvalidRules" + ] + } + } + } + ] + }, + "PaginationToken32": { + "type": "string", + "description": "A base32 pagination token.", + "minLength": 16 + }, + "PaginationToken36": { + "type": "string", + "description": "A base36 pagination token.", + "minLength": 1 + }, + "PaginationTokenLong": { + "type": "string", + "description": "A 'long' pagination token.", + "minLength": 1, + "maxLength": 19 + }, + "PersonalizedTrend": { + "type": "object", + "description": "A trend.", + "properties": { + "category": { + "type": "string", + "description": "Category of this trend." + }, + "post_count": { + "type": "integer", + "description": "Number of posts pertaining to this trend." + }, + "trend_name": { + "type": "string", + "description": "Name of the trend." + }, + "trending_since": { + "type": "string", + "description": "Time since this is trending." + } + } + }, + "Photo": { + "allOf": [ + { + "$ref": "#/components/schemas/Media" + }, + { + "type": "object", + "properties": { + "alt_text": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + } + } + ] + }, + "Place": { + "type": "object", + "required": [ + "id", + "full_name" + ], + "properties": { + "contained_within": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/PlaceId" + } + }, + "country": { + "type": "string", + "description": "The full name of the county in which this place exists.", + "example": "United States" + }, + "country_code": { + "$ref": "#/components/schemas/CountryCode" + }, + "full_name": { + "type": "string", + "description": "The full name of this place.", + "example": "Lakewood, CO" + }, + "geo": { + "$ref": "#/components/schemas/Geo" + }, + "id": { + "$ref": "#/components/schemas/PlaceId" + }, + "name": { + "type": "string", + "description": "The human readable name of this place.", + "example": "Lakewood" + }, + "place_type": { + "$ref": "#/components/schemas/PlaceType" + } + } + }, + "PlaceId": { + "type": "string", + "description": "The identifier for this place.", + "example": "f7eb2fa2fea288b1" + }, + "PlaceType": { + "type": "string", + "enum": [ + "poi", + "neighborhood", + "city", + "admin", + "country", + "unknown" + ], + "example": "city" + }, + "PlaidAccount": { + "type": "object", + "description": "Descriptor for a Plaid account.", + "required": [ + "accountId", + "accountCategory", + "accountNumberDisplay", + "accountType", + "currency", + "productName", + "status" + ], + "properties": { + "accountCategory": { + "type": "string", + "description": "The category of the account (e.g., personal, business)." + }, + "accountId": { + "type": "string", + "description": "The Plaid account ID." + }, + "accountNumberDisplay": { + "type": "string", + "description": "The last 2-4 digits of the account number." + }, + "accountType": { + "type": "string", + "description": "The type of the account (e.g., checking, savings)." + }, + "availableBalance": { + "type": "number", + "description": "The available balance of the account." + }, + "currency": { + "$ref": "#/components/schemas/PlaidCurrency" + }, + "currentBalance": { + "type": "number", + "description": "The current balance of the account." + }, + "nickname": { + "type": "string", + "description": "The nickname of the account." + }, + "productName": { + "type": "string", + "description": "The name of the product associated with the account." + }, + "status": { + "type": "string", + "description": "The status of the account." + } + } + }, + "PlaidAccountContact": { + "type": "object", + "description": "Contact information associated with a Plaid account.", + "required": [ + "name", + "addresses", + "emails", + "telephones" + ], + "properties": { + "addresses": { + "type": "array", + "description": "List of addresses associated with the account holder.", + "items": { + "$ref": "#/components/schemas/PlaidAddress" + } + }, + "emails": { + "type": "array", + "description": "List of email addresses associated with the account holder.", + "items": { + "type": "string" + } + }, + "name": { + "$ref": "#/components/schemas/PlaidName" + }, + "relationship": { + "type": "string", + "description": "Relationship of the contact to the account." + }, + "telephones": { + "type": "array", + "description": "List of telephone numbers associated with the account holder.", + "items": { + "$ref": "#/components/schemas/PlaidTelephone" + } + } + } + }, + "PlaidAccountPaymentNetwork": { + "type": "object", + "description": "Payment network details associated with the account.", + "required": [ + "identifier", + "type", + "transferIn", + "transferOut", + "bankId" + ], + "properties": { + "bankId": { + "type": "string", + "description": "The bank ID associated with the account." + }, + "identifier": { + "type": "string", + "description": "The payment network identifier." + }, + "transferIn": { + "type": "boolean", + "description": "Indicates if transfers into the account are supported." + }, + "transferOut": { + "type": "boolean", + "description": "Indicates if transfers out of the account are supported." + }, + "type": { + "type": "string", + "description": "The type of payment network (e.g., ACH, SEPA)." + } + } + }, + "PlaidAccountTransaction": { + "type": "object", + "description": "Descriptor for a Plaid account.", + "required": [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "status", + "transactionId", + "transactionTimestamp" + ], + "properties": { + "accountCategory": { + "type": "string", + "description": "The category of the account (e.g., personal, business)." + }, + "amount": { + "type": "number", + "description": "The amount transacted." + }, + "debitCreditMemo": { + "type": "string", + "description": "Memo for transaction (e.g. CREDIT)" + }, + "description": { + "type": "string", + "description": "The transaction description" + }, + "postedTimestamp": { + "type": "string", + "description": "The timestamp when the transaction was posted." + }, + "status": { + "type": "string", + "description": "The status of the transaction." + }, + "transactionId": { + "type": "string", + "description": "The identifier for the transaction." + }, + "transactionTimestamp": { + "type": "string", + "description": "The timestamp when the transaction occurred." + } + } + }, + "PlaidAddress": { + "type": "object", + "description": "Address information for the account holder.", + "required": [ + "city", + "country", + "line1" + ], + "properties": { + "city": { + "type": "string", + "description": "The city of the address." + }, + "country": { + "type": "string", + "description": "The country of the address (ISO 3166-1 alpha-2 code)." + }, + "line1": { + "type": "string", + "description": "The first line of the address." + }, + "line2": { + "type": "string", + "description": "The second line of the address." + }, + "postalCode": { + "type": "string", + "description": "The postal code of the address." + }, + "region": { + "type": "string", + "description": "The region or state of the address." + } + } + }, + "PlaidCurrency": { + "type": "object", + "description": "Currency information.", + "required": [ + "currencyCode" + ], + "properties": { + "currencyCode": { + "type": "string", + "description": "The ISO 4217 currency code." + } + } + }, + "PlaidCustomer": { + "type": "object", + "description": "A user id for the plaid customer", + "properties": { + "customerId": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "PlaidName": { + "type": "object", + "description": "Name information for the account holder.", + "required": [ + "first", + "last" + ], + "properties": { + "first": { + "type": "string", + "description": "The first name of the account holder." + }, + "last": { + "type": "string", + "description": "The last name of the account holder." + } + } + }, + "PlaidTelephone": { + "type": "object", + "description": "Telephone information for the account holder.", + "required": [ + "country", + "number", + "type" + ], + "properties": { + "country": { + "type": "string", + "description": "The country code for the phone number (e.g., '+1')." + }, + "number": { + "type": "string", + "description": "The phone number." + }, + "type": { + "type": "string", + "description": "The type of phone number (e.g., 'mobile')." + } + } + }, + "Point": { + "type": "object", + "description": "A [GeoJson Point](https://tools.ietf.org/html/rfc7946#section-3.1.2) geometry object.", + "required": [ + "type", + "coordinates" + ], + "properties": { + "coordinates": { + "$ref": "#/components/schemas/Position" + }, + "type": { + "type": "string", + "enum": [ + "Point" + ], + "example": "Point" + } + } + }, + "Poll": { + "type": "object", + "description": "Represent a Poll attached to a Tweet.", + "required": [ + "id", + "options" + ], + "properties": { + "duration_minutes": { + "type": "integer", + "minimum": 5, + "maximum": 10080, + "format": "int32" + }, + "end_datetime": { + "type": "string", + "format": "date-time" + }, + "id": { + "$ref": "#/components/schemas/PollId" + }, + "options": { + "type": "array", + "minItems": 2, + "maxItems": 4, + "items": { + "$ref": "#/components/schemas/PollOption" + } + }, + "voting_status": { + "type": "string", + "enum": [ + "open", + "closed" + ] + } + } + }, + "PollId": { + "type": "string", + "description": "Unique identifier of this poll.", + "pattern": "^[0-9]{1,19}$", + "example": "1365059861688410112" + }, + "PollOption": { + "type": "object", + "description": "Describes a choice in a Poll object.", + "required": [ + "position", + "label", + "votes" + ], + "properties": { + "label": { + "$ref": "#/components/schemas/PollOptionLabel" + }, + "position": { + "type": "integer", + "description": "Position of this choice in the poll." + }, + "votes": { + "type": "integer", + "description": "Number of users who voted for this choice." + } + } + }, + "PollOptionLabel": { + "type": "string", + "description": "The text of a poll choice.", + "minLength": 1, + "maxLength": 25 + }, + "Position": { + "type": "array", + "description": "A [GeoJson Position](https://tools.ietf.org/html/rfc7946#section-3.1.1) in the format `[longitude,latitude]`.", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "number" + }, + "example": [ + -105.18816086351444, + 40.247749999999996 + ] + }, + "PreviewImage": { + "type": "object", + "required": [ + "media_key" + ], + "properties": { + "media_key": { + "type": "object", + "properties": { + "media": { + "$ref": "#/components/schemas/MediaId" + }, + "media_category": { + "type": "string", + "description": "The media category of media", + "enum": [ + "TweetImage" + ], + "default": "TweetImage", + "example": "TweetImage" + } + } + } + } + }, + "PreviousToken": { + "type": "string", + "description": "The previous token.", + "minLength": 1 + }, + "Problem": { + "type": "object", + "description": "An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).", + "required": [ + "type", + "title" + ], + "properties": { + "detail": { + "type": "string" + }, + "status": { + "type": "integer" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "about:blank": "#/components/schemas/GenericProblem", + "https://api.twitter.com/2/problems/client-disconnected": "#/components/schemas/ClientDisconnectedProblem", + "https://api.twitter.com/2/problems/client-forbidden": "#/components/schemas/ClientForbiddenProblem", + "https://api.twitter.com/2/problems/conflict": "#/components/schemas/ConflictProblem", + "https://api.twitter.com/2/problems/disallowed-resource": "#/components/schemas/DisallowedResourceProblem", + "https://api.twitter.com/2/problems/duplicate-rules": "#/components/schemas/DuplicateRuleProblem", + "https://api.twitter.com/2/problems/invalid-request": "#/components/schemas/InvalidRequestProblem", + "https://api.twitter.com/2/problems/invalid-rules": "#/components/schemas/InvalidRuleProblem", + "https://api.twitter.com/2/problems/noncompliant-rules": "#/components/schemas/NonCompliantRulesProblem", + "https://api.twitter.com/2/problems/not-authorized-for-field": "#/components/schemas/FieldUnauthorizedProblem", + "https://api.twitter.com/2/problems/not-authorized-for-resource": "#/components/schemas/ResourceUnauthorizedProblem", + "https://api.twitter.com/2/problems/operational-disconnect": "#/components/schemas/OperationalDisconnectProblem", + "https://api.twitter.com/2/problems/resource-not-found": "#/components/schemas/ResourceNotFoundProblem", + "https://api.twitter.com/2/problems/resource-unavailable": "#/components/schemas/ResourceUnavailableProblem", + "https://api.twitter.com/2/problems/rule-cap": "#/components/schemas/RulesCapProblem", + "https://api.twitter.com/2/problems/streaming-connection": "#/components/schemas/ConnectionExceptionProblem", + "https://api.twitter.com/2/problems/unsupported-authentication": "#/components/schemas/UnsupportedAuthenticationProblem", + "https://api.twitter.com/2/problems/usage-capped": "#/components/schemas/UsageCapExceededProblem" + } + } + }, + "ProcessingInfo": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "check_after_secs": { + "type": "integer", + "description": "Number of seconds to check again for status", + "format": "int32" + }, + "progress_percent": { + "type": "integer", + "description": "Percent of upload progress", + "format": "int32" + }, + "state": { + "type": "string", + "description": "State of upload", + "enum": [ + "succeeded", + "in_progress", + "pending", + "failed" + ] + } + } + }, + "ReplayJobCreateResponse": { + "type": "object", + "description": "Confirmation that the replay job request was accepted.", + "required": [ + "job_id", + "created_at" + ], + "properties": { + "created_at": { + "type": "string", + "description": "The UTC timestamp indicating when the replay job was created.", + "format": "date-time", + "example": "2025-04-24T20:57:15.242Z" + }, + "job_id": { + "type": "string", + "description": "The unique identifier for the initiated replay job.", + "example": "1915510368169844736" + } + } + }, + "ReplySettings": { + "type": "string", + "description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, and following.", + "pattern": "^[A-Za-z]{1,12}$", + "enum": [ + "everyone", + "mentionedUsers", + "following", + "other" + ] + }, + "ReplySettingsWithVerifiedUsers": { + "type": "string", + "description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, subscribers, verified and following.", + "pattern": "^[A-Za-z]{1,12}$", + "enum": [ + "everyone", + "mentionedUsers", + "following", + "other", + "subscribers", + "verified" + ] + }, + "ResourceNotFoundProblem": { + "description": "A problem that indicates that a given Tweet, User, etc. does not exist.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "required": [ + "parameter", + "value", + "resource_id", + "resource_type" + ], + "properties": { + "parameter": { + "type": "string", + "minLength": 1 + }, + "resource_id": { + "type": "string" + }, + "resource_type": { + "type": "string", + "enum": [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "value": { + "type": "string", + "description": "Value will match the schema of the field." + } + } + } + ] + }, + "ResourceUnauthorizedProblem": { + "description": "A problem that indicates you are not allowed to see a particular Tweet, User, etc.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "required": [ + "value", + "resource_id", + "resource_type", + "section", + "parameter" + ], + "properties": { + "parameter": { + "type": "string" + }, + "resource_id": { + "type": "string" + }, + "resource_type": { + "type": "string", + "enum": [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "section": { + "type": "string", + "enum": [ + "data", + "includes" + ] + }, + "value": { + "type": "string" + } + } + } + ] + }, + "ResourceUnavailableProblem": { + "description": "A problem that indicates a particular Tweet, User, etc. is not available to you.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "required": [ + "parameter", + "resource_id", + "resource_type" + ], + "properties": { + "parameter": { + "type": "string", + "minLength": 1 + }, + "resource_id": { + "type": "string" + }, + "resource_type": { + "type": "string", + "enum": [ + "user", + "tweet", + "media", + "list", + "space" + ] + } + } + } + ] + }, + "ResultCount": { + "type": "integer", + "description": "The number of results returned in this response.", + "format": "int32" + }, + "Rule": { + "type": "object", + "description": "A user-provided stream filtering rule.", + "required": [ + "value" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/RuleId" + }, + "tag": { + "$ref": "#/components/schemas/RuleTag" + }, + "value": { + "$ref": "#/components/schemas/RuleValue" + } + } + }, + "RuleId": { + "type": "string", + "description": "Unique identifier of this rule.", + "pattern": "^[0-9]{1,19}$", + "example": "120897978112909812" + }, + "RuleNoId": { + "type": "object", + "description": "A user-provided stream filtering rule.", + "required": [ + "value" + ], + "properties": { + "tag": { + "$ref": "#/components/schemas/RuleTag" + }, + "value": { + "$ref": "#/components/schemas/RuleValue" + } + } + }, + "RuleTag": { + "type": "string", + "description": "A tag meant for the labeling of user provided rules.", + "example": "Non-retweeted coffee Posts" + }, + "RuleValue": { + "type": "string", + "description": "The filterlang value of the rule.", + "example": "coffee -is:retweet" + }, + "RulesCapProblem": { + "description": "You have exceeded the maximum number of rules.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "RulesCount": { + "type": "object", + "description": "A count of user-provided stream filtering rules at the application and project levels.", + "properties": { + "all_project_client_apps": { + "$ref": "#/components/schemas/AllProjectClientApps" + }, + "cap_per_client_app": { + "type": "integer", + "description": "Cap of number of rules allowed per client application", + "format": "int32" + }, + "cap_per_project": { + "type": "integer", + "description": "Cap of number of rules allowed per project", + "format": "int32" + }, + "client_app_rules_count": { + "$ref": "#/components/schemas/AppRulesCount" + }, + "project_rules_count": { + "type": "integer", + "description": "Number of rules for project", + "format": "int32" + } + } + }, + "RulesLookupResponse": { + "type": "object", + "required": [ + "meta" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Rule" + } + }, + "meta": { + "$ref": "#/components/schemas/RulesResponseMetadata" + } + } + }, + "RulesRequestSummary": { + "oneOf": [ + { + "type": "object", + "description": "A summary of the results of the addition of user-specified stream filtering rules.", + "required": [ + "created", + "not_created", + "valid", + "invalid" + ], + "properties": { + "created": { + "type": "integer", + "description": "Number of user-specified stream filtering rules that were created.", + "format": "int32", + "example": 1 + }, + "invalid": { + "type": "integer", + "description": "Number of invalid user-specified stream filtering rules.", + "format": "int32", + "example": 1 + }, + "not_created": { + "type": "integer", + "description": "Number of user-specified stream filtering rules that were not created.", + "format": "int32", + "example": 1 + }, + "valid": { + "type": "integer", + "description": "Number of valid user-specified stream filtering rules.", + "format": "int32", + "example": 1 + } + } + }, + { + "type": "object", + "required": [ + "deleted", + "not_deleted" + ], + "properties": { + "deleted": { + "type": "integer", + "description": "Number of user-specified stream filtering rules that were deleted.", + "format": "int32" + }, + "not_deleted": { + "type": "integer", + "description": "Number of user-specified stream filtering rules that were not deleted.", + "format": "int32" + } + } + } + ] + }, + "RulesResponseMetadata": { + "type": "object", + "required": [ + "sent" + ], + "properties": { + "next_token": { + "$ref": "#/components/schemas/NextToken" + }, + "result_count": { + "type": "integer", + "description": "Number of Rules in result set.", + "format": "int32" + }, + "sent": { + "type": "string" + }, + "summary": { + "$ref": "#/components/schemas/RulesRequestSummary" + } + } + }, + "SearchCount": { + "type": "object", + "description": "Represent a Search Count Result.", + "required": [ + "end", + "start", + "tweet_count" + ], + "properties": { + "end": { + "$ref": "#/components/schemas/End" + }, + "start": { + "$ref": "#/components/schemas/Start" + }, + "tweet_count": { + "$ref": "#/components/schemas/TweetCount" + } + } + }, + "SensitiveMediaWarning": { + "type": "object", + "properties": { + "adult_content": { + "type": "boolean", + "description": "Indicates if the content contains adult material", + "example": true + }, + "graphic_violence": { + "type": "boolean", + "description": "Indicates if the content depicts graphic violence", + "example": true + }, + "other": { + "type": "boolean", + "description": "Indicates if the content has other sensitive characteristics", + "example": false + } + } + }, + "SharedInfo": { + "type": "object", + "required": [ + "shared" + ], + "properties": { + "shared": { + "type": "boolean", + "description": "Indicates if the media is shared in direct messages", + "example": false + } + } + }, + "Space": { + "type": "object", + "description": "", + "required": [ + "id", + "state" + ], + "properties": { + "created_at": { + "type": "string", + "description": "Creation time of the Space.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "creator_id": { + "$ref": "#/components/schemas/UserId" + }, + "ended_at": { + "type": "string", + "description": "End time of the Space.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "host_ids": { + "type": "array", + "description": "The user ids for the hosts of the Space.", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "id": { + "$ref": "#/components/schemas/SpaceId" + }, + "invited_user_ids": { + "type": "array", + "description": "An array of user ids for people who were invited to a Space.", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "is_ticketed": { + "type": "boolean", + "description": "Denotes if the Space is a ticketed Space.", + "example": "false" + }, + "lang": { + "type": "string", + "description": "The language of the Space.", + "example": "en" + }, + "participant_count": { + "type": "integer", + "description": "The number of participants in a Space.", + "format": "int32", + "example": 10 + }, + "scheduled_start": { + "type": "string", + "description": "A date time stamp for when a Space is scheduled to begin.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "speaker_ids": { + "type": "array", + "description": "An array of user ids for people who were speakers in a Space.", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "started_at": { + "type": "string", + "description": "When the Space was started as a date string.", + "format": "date-time", + "example": "2021-7-14T04:35:55Z" + }, + "state": { + "type": "string", + "description": "The current state of the Space.", + "enum": [ + "live", + "scheduled", + "ended" + ], + "example": "live" + }, + "subscriber_count": { + "type": "integer", + "description": "The number of people who have either purchased a ticket or set a reminder for this Space.", + "format": "int32", + "example": 10 + }, + "title": { + "type": "string", + "description": "The title of the Space.", + "example": "Spaces are Awesome" + }, + "topics": { + "type": "array", + "description": "The topics of a Space, as selected by its creator.", + "items": { + "type": "object", + "description": "The X Topic object.", + "required": [ + "id", + "name" + ], + "properties": { + "description": { + "type": "string", + "description": "The description of the given topic." + }, + "id": { + "type": "string", + "description": "An ID suitable for use in the REST API." + }, + "name": { + "type": "string", + "description": "The name of the given topic." + } + }, + "example": { + "description": "All about technology", + "id": "848920371311001600", + "name": "Technology" + } + } + }, + "updated_at": { + "type": "string", + "description": "When the Space was last updated.", + "format": "date-time", + "example": "2021-7-14T04:35:55Z" + } + } + }, + "SpaceId": { + "type": "string", + "description": "The unique identifier of this Space.", + "pattern": "^[a-zA-Z0-9]{1,13}$", + "example": "1SLjjRYNejbKM" + }, + "Start": { + "type": "string", + "description": "The start time of the bucket.", + "format": "date-time" + }, + "Sticker": { + "type": "object", + "properties": { + "aspect_ratio": { + "type": "number", + "description": "width-to-height ratio of the media", + "format": "double", + "example": 1.78 + }, + "group_annotation_id": { + "type": "number", + "description": "A unique identifier for the group of annotations associated with the media", + "format": "long", + "example": 987654321098765 + }, + "id": { + "type": "string", + "description": "Unique identifier for sticker", + "example": "12345" + }, + "sticker_set_annotation_id": { + "type": "number", + "description": "A unique identifier for the sticker set associated with the media", + "format": "long", + "example": 123456789012345 + }, + "transform_a": { + "type": "number", + "description": "Scale or rotate the media on the x-axis", + "format": "double", + "example": 1.0 + }, + "transform_b": { + "type": "number", + "description": "Skew the media on the x-axis", + "format": "double", + "example": 0.0 + }, + "transform_c": { + "type": "number", + "description": "Skew the media on the y-axis", + "format": "double", + "example": 0.0 + }, + "transform_d": { + "type": "number", + "description": "Scale or rotate the media on the y-axis", + "format": "double", + "example": 1.0 + }, + "transform_tx": { + "type": "number", + "description": "Scale or rotate the media on the x-axis", + "format": "double", + "example": 10.5 + }, + "transform_ty": { + "type": "number", + "description": "The vertical translation (shift) value for the media", + "format": "double", + "example": -5.2 + } + } + }, + "StickerInfo": { + "type": "object", + "required": [ + "stickers" + ], + "properties": { + "stickers": { + "type": "array", + "description": "Stickers list must not be empty and should not exceed 25", + "items": { + "$ref": "#/components/schemas/Sticker" + } + } + } + }, + "StreamingLikeResponseV2": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/LikeWithTweetAuthor" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "StreamingTweetResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tweet" + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + }, + "includes": { + "$ref": "#/components/schemas/Expansions" + } + } + }, + "SubscriptionsCountGetResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "The count of active subscriptions across all webhooks", + "required": [ + "account_name", + "provisioned_count", + "subscriptions_count_all", + "subscriptions_count_direct_messages" + ], + "properties": { + "account_name": { + "type": "string", + "description": "The account name" + }, + "provisioned_count": { + "type": "string", + "description": "The limit for subscriptions for this app" + }, + "subscriptions_count_all": { + "type": "string", + "description": "The number of active subscriptions across all webhooks" + }, + "subscriptions_count_direct_messages": { + "type": "string", + "description": "The number of active direct message subscriptions" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsCreateRequest": { + "type": "object" + }, + "SubscriptionsCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "subscribed": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "subscribed": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsGetResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "subscribed": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsListGetResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "The list of active subscriptions for a specified webhook", + "required": [ + "application_id", + "webhook_id", + "webhook_url", + "subscriptions" + ], + "properties": { + "application_id": { + "type": "string", + "description": "The application ID" + }, + "subscriptions": { + "type": "array", + "description": "List of active subscriptions for the webhook", + "items": { + "type": "object", + "properties": { + "user_id": { + "type": "string", + "description": "The ID of the user the webhook is subscribed to" + } + } + } + }, + "webhook_id": { + "type": "string", + "description": "The associated webhook ID" + }, + "webhook_url": { + "type": "string", + "description": "The url for the associated webhook" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubtitleLanguageCode": { + "type": "string", + "description": "The language code should be a BCP47 code (e.g. 'EN\", \"SP\")", + "pattern": "^[A-Z]{2}$", + "example": "EN" + }, + "Subtitles": { + "type": "object", + "properties": { + "display_name": { + "type": "string", + "description": "Language name in a human readable form", + "example": "English" + }, + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "language_code": { + "$ref": "#/components/schemas/SubtitleLanguageCode" + } + } + }, + "SubtitlesCreateRequest": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "media_category": { + "$ref": "#/components/schemas/MediaCategorySubtitles" + }, + "subtitles": { + "$ref": "#/components/schemas/Subtitles" + } + } + }, + "SubtitlesCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "id", + "media_category", + "associated_subtitles" + ], + "properties": { + "associated_subtitles": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Subtitles" + } + }, + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "media_category": { + "$ref": "#/components/schemas/MediaCategorySubtitles" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "SubtitlesDeleteRequest": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/MediaId" + }, + "language_code": { + "$ref": "#/components/schemas/SubtitleLanguageCode" + }, + "media_category": { + "$ref": "#/components/schemas/MediaCategorySubtitles" + } + } + }, + "SubtitlesDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "deleted" + ], + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "TimestampedMetrics": { + "type": "object", + "properties": { + "metrics": { + "$ref": "#/components/schemas/Metrics" + }, + "timestamp": { + "type": "string", + "title": "Timestamp", + "description": "ISO8601 Time", + "example": "2025-03-17T06:30:00Z" + } + } + }, + "Topic": { + "type": "object", + "description": "The topic of a Space, as selected by its creator.", + "required": [ + "id", + "name" + ], + "properties": { + "description": { + "type": "string", + "description": "The description of the given topic.", + "example": "All about technology" + }, + "id": { + "$ref": "#/components/schemas/TopicId" + }, + "name": { + "type": "string", + "description": "The name of the given topic.", + "example": "Technology" + } + } + }, + "TopicId": { + "type": "string", + "description": "Unique identifier of this Topic." + }, + "Trend": { + "type": "object", + "description": "A trend.", + "properties": { + "trend_name": { + "type": "string", + "description": "Name of the trend." + }, + "tweet_count": { + "type": "integer", + "description": "Number of Posts in this trend.", + "format": "int32" + } + } + }, + "Tweet": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "description": "Specifies the type of attachments (if any) present in this Tweet.", + "properties": { + "media_keys": { + "type": "array", + "description": "A list of Media Keys for each one of the media attachments (if media are attached).", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/MediaKey" + } + }, + "media_source_tweet_id": { + "type": "array", + "description": "A list of Posts the media on this Tweet was originally posted in. For example, if the media on a tweet is re-used in another Tweet, this refers to the original, source Tweet..", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/TweetId" + } + }, + "poll_ids": { + "type": "array", + "description": "A list of poll IDs (if polls are attached).", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/PollId" + } + } + } + }, + "author_id": { + "$ref": "#/components/schemas/UserId" + }, + "community_id": { + "$ref": "#/components/schemas/CommunityId" + }, + "context_annotations": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/ContextAnnotation" + } + }, + "conversation_id": { + "$ref": "#/components/schemas/TweetId" + }, + "created_at": { + "type": "string", + "description": "Creation time of the Tweet.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "display_text_range": { + "$ref": "#/components/schemas/DisplayTextRange" + }, + "edit_controls": { + "type": "object", + "required": [ + "is_edit_eligible", + "editable_until", + "edits_remaining" + ], + "properties": { + "editable_until": { + "type": "string", + "description": "Time when Tweet is no longer editable.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "edits_remaining": { + "type": "integer", + "description": "Number of times this Tweet can be edited." + }, + "is_edit_eligible": { + "type": "boolean", + "description": "Indicates if this Tweet is eligible to be edited.", + "example": false + } + } + }, + "edit_history_tweet_ids": { + "type": "array", + "description": "A list of Tweet Ids in this Tweet chain.", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/TweetId" + } + }, + "entities": { + "$ref": "#/components/schemas/FullTextEntities" + }, + "geo": { + "type": "object", + "description": "The location tagged on the Tweet, if the user provided one.", + "properties": { + "coordinates": { + "$ref": "#/components/schemas/Point" + }, + "place_id": { + "$ref": "#/components/schemas/PlaceId" + } + } + }, + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "in_reply_to_user_id": { + "$ref": "#/components/schemas/UserId" + }, + "lang": { + "type": "string", + "description": "Language of the Tweet, if detected by X. Returned as a BCP47 language tag.", + "example": "en" + }, + "non_public_metrics": { + "type": "object", + "description": "Nonpublic engagement metrics for the Tweet at the time of the request.", + "properties": { + "impression_count": { + "type": "integer", + "description": "Number of times this Tweet has been viewed.", + "format": "int32" + } + } + }, + "note_tweet": { + "type": "object", + "description": "The full-content of the Tweet, including text beyond 280 characters.", + "properties": { + "entities": { + "type": "object", + "properties": { + "cashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/CashtagEntity" + } + }, + "hashtags": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/HashtagEntity" + } + }, + "mentions": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/MentionEntity" + } + }, + "urls": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UrlEntity" + } + } + } + }, + "text": { + "$ref": "#/components/schemas/NoteTweetText" + } + } + }, + "organic_metrics": { + "type": "object", + "description": "Organic nonpublic engagement metrics for the Tweet at the time of the request.", + "required": [ + "impression_count", + "retweet_count", + "reply_count", + "like_count" + ], + "properties": { + "impression_count": { + "type": "integer", + "description": "Number of times this Tweet has been viewed." + }, + "like_count": { + "type": "integer", + "description": "Number of times this Tweet has been liked." + }, + "reply_count": { + "type": "integer", + "description": "Number of times this Tweet has been replied to." + }, + "retweet_count": { + "type": "integer", + "description": "Number of times this Tweet has been Retweeted." + } + } + }, + "possibly_sensitive": { + "type": "boolean", + "description": "Indicates if this Tweet contains URLs marked as sensitive, for example content suitable for mature audiences.", + "example": false + }, + "promoted_metrics": { + "type": "object", + "description": "Promoted nonpublic engagement metrics for the Tweet at the time of the request.", + "properties": { + "impression_count": { + "type": "integer", + "description": "Number of times this Tweet has been viewed.", + "format": "int32" + }, + "like_count": { + "type": "integer", + "description": "Number of times this Tweet has been liked.", + "format": "int32" + }, + "reply_count": { + "type": "integer", + "description": "Number of times this Tweet has been replied to.", + "format": "int32" + }, + "retweet_count": { + "type": "integer", + "description": "Number of times this Tweet has been Retweeted.", + "format": "int32" + } + } + }, + "public_metrics": { + "type": "object", + "description": "Engagement metrics for the Tweet at the time of the request.", + "required": [ + "retweet_count", + "reply_count", + "like_count", + "impression_count", + "bookmark_count" + ], + "properties": { + "bookmark_count": { + "type": "integer", + "description": "Number of times this Tweet has been bookmarked.", + "format": "int32" + }, + "impression_count": { + "type": "integer", + "description": "Number of times this Tweet has been viewed.", + "format": "int32" + }, + "like_count": { + "type": "integer", + "description": "Number of times this Tweet has been liked." + }, + "quote_count": { + "type": "integer", + "description": "Number of times this Tweet has been quoted." + }, + "reply_count": { + "type": "integer", + "description": "Number of times this Tweet has been replied to." + }, + "retweet_count": { + "type": "integer", + "description": "Number of times this Tweet has been Retweeted." + } + } + }, + "referenced_tweets": { + "type": "array", + "description": "A list of Posts this Tweet refers to. For example, if the parent Tweet is a Retweet, a Quoted Tweet or a Reply, it will include the related Tweet referenced to by its parent.", + "minItems": 1, + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "type": { + "type": "string", + "enum": [ + "retweeted", + "quoted", + "replied_to" + ] + } + } + } + }, + "reply_settings": { + "$ref": "#/components/schemas/ReplySettingsWithVerifiedUsers" + }, + "scopes": { + "type": "object", + "description": "The scopes for this tweet", + "properties": { + "followers": { + "type": "boolean", + "description": "Indicates if this Tweet is viewable by followers without the Tweet ID", + "example": false + } + } + }, + "source": { + "type": "string", + "description": "This is deprecated." + }, + "text": { + "$ref": "#/components/schemas/TweetText" + }, + "username": { + "$ref": "#/components/schemas/UserName" + }, + "withheld": { + "$ref": "#/components/schemas/TweetWithheld" + } + }, + "example": { + "author_id": "2244994945", + "created_at": "Wed Jan 06 18:40:40 +0000 2021", + "id": "1346889436626259968", + "text": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\… https:\/\/t.co\/56a0vZUx7i", + "username": "XDevelopers" + } + }, + "TweetComplianceData": { + "description": "Tweet compliance data.", + "oneOf": [ + { + "$ref": "#/components/schemas/TweetDeleteComplianceSchema" + }, + { + "$ref": "#/components/schemas/TweetWithheldComplianceSchema" + }, + { + "$ref": "#/components/schemas/TweetDropComplianceSchema" + }, + { + "$ref": "#/components/schemas/TweetUndropComplianceSchema" + }, + { + "$ref": "#/components/schemas/TweetEditComplianceSchema" + } + ] + }, + "TweetComplianceSchema": { + "type": "object", + "required": [ + "tweet", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "quote_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "tweet": { + "type": "object", + "required": [ + "id", + "author_id" + ], + "properties": { + "author_id": { + "$ref": "#/components/schemas/UserId" + }, + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetComplianceStreamResponse": { + "description": "Tweet compliance stream events.", + "oneOf": [ + { + "type": "object", + "description": "Compliance event.", + "required": [ + "data" + ], + "properties": { + "data": { + "$ref": "#/components/schemas/TweetComplianceData" + } + } + }, + { + "type": "object", + "required": [ + "errors" + ], + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + ] + }, + "TweetCount": { + "type": "integer", + "description": "The count for the bucket." + }, + "TweetCreateRequest": { + "type": "object", + "properties": { + "card_uri": { + "type": "string", + "description": "Card Uri Parameter. This is mutually exclusive from Quote Tweet Id, Poll, Media, and Direct Message Deep Link." + }, + "community_id": { + "$ref": "#/components/schemas/CommunityId" + }, + "direct_message_deep_link": { + "type": "string", + "description": "Link to take the conversation from the public timeline to a private Direct Message." + }, + "for_super_followers_only": { + "type": "boolean", + "description": "Exclusive Tweet for super followers.", + "default": false + }, + "geo": { + "type": "object", + "description": "Place ID being attached to the Tweet for geo location.", + "properties": { + "place_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "media": { + "type": "object", + "description": "Media information being attached to created Tweet. This is mutually exclusive from Quote Tweet Id, Poll, and Card URI.", + "required": [ + "media_ids" + ], + "properties": { + "media_ids": { + "type": "array", + "description": "A list of Media Ids to be attached to a created Tweet.", + "minItems": 1, + "maxItems": 4, + "items": { + "$ref": "#/components/schemas/MediaId" + } + }, + "tagged_user_ids": { + "type": "array", + "description": "A list of User Ids to be tagged in the media for created Tweet.", + "minItems": 0, + "maxItems": 10, + "items": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "additionalProperties": false + }, + "nullcast": { + "type": "boolean", + "description": "Nullcasted (promoted-only) Posts do not appear in the public timeline and are not served to followers.", + "default": false + }, + "poll": { + "type": "object", + "description": "Poll options for a Tweet with a poll. This is mutually exclusive from Media, Quote Tweet Id, and Card URI.", + "required": [ + "options", + "duration_minutes" + ], + "properties": { + "duration_minutes": { + "type": "integer", + "description": "Duration of the poll in minutes.", + "minimum": 5, + "maximum": 10080, + "format": "int32" + }, + "options": { + "type": "array", + "minItems": 2, + "maxItems": 4, + "items": { + "type": "string", + "description": "The text of a poll choice.", + "minLength": 1, + "maxLength": 25 + } + }, + "reply_settings": { + "type": "string", + "description": "Settings to indicate who can reply to the Tweet.", + "enum": [ + "following", + "mentionedUsers", + "subscribers", + "verified" + ] + } + }, + "additionalProperties": false + }, + "quote_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "reply": { + "type": "object", + "description": "Tweet information of the Tweet being replied to.", + "required": [ + "in_reply_to_tweet_id" + ], + "properties": { + "exclude_reply_user_ids": { + "type": "array", + "description": "A list of User Ids to be excluded from the reply Tweet.", + "items": { + "$ref": "#/components/schemas/UserId" + } + }, + "in_reply_to_tweet_id": { + "$ref": "#/components/schemas/TweetId" + } + }, + "additionalProperties": false + }, + "reply_settings": { + "type": "string", + "description": "Settings to indicate who can reply to the Tweet.", + "enum": [ + "following", + "mentionedUsers", + "subscribers", + "verified" + ] + }, + "share_with_followers": { + "type": "boolean", + "description": "Share community post with followers too.", + "default": false + }, + "text": { + "$ref": "#/components/schemas/TweetText" + } + }, + "additionalProperties": false + }, + "TweetCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "id", + "text" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "text": { + "$ref": "#/components/schemas/TweetText" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "TweetDeleteComplianceSchema": { + "type": "object", + "required": [ + "delete" + ], + "properties": { + "delete": { + "$ref": "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "deleted" + ], + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "TweetDropComplianceSchema": { + "type": "object", + "required": [ + "drop" + ], + "properties": { + "drop": { + "$ref": "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetEditComplianceObjectSchema": { + "type": "object", + "required": [ + "tweet", + "event_at", + "initial_tweet_id", + "edit_tweet_ids" + ], + "properties": { + "edit_tweet_ids": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/TweetId" + } + }, + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "initial_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "tweet": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetEditComplianceSchema": { + "type": "object", + "required": [ + "tweet_edit" + ], + "properties": { + "tweet_edit": { + "$ref": "#/components/schemas/TweetEditComplianceObjectSchema" + } + } + }, + "TweetHideRequest": { + "type": "object", + "required": [ + "hidden" + ], + "properties": { + "hidden": { + "type": "boolean" + } + } + }, + "TweetHideResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "hidden": { + "type": "boolean" + } + } + } + } + }, + "TweetId": { + "type": "string", + "description": "Unique identifier of this Tweet. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", + "pattern": "^[0-9]{1,19}$", + "example": "1346889436626259968" + }, + "TweetLabelData": { + "description": "Tweet label data.", + "oneOf": [ + { + "$ref": "#/components/schemas/TweetNoticeSchema" + }, + { + "$ref": "#/components/schemas/TweetUnviewableSchema" + } + ] + }, + "TweetLabelStreamResponse": { + "description": "Tweet label stream events.", + "oneOf": [ + { + "type": "object", + "description": "Tweet Label event.", + "required": [ + "data" + ], + "properties": { + "data": { + "$ref": "#/components/schemas/TweetLabelData" + } + } + }, + { + "type": "object", + "required": [ + "errors" + ], + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + ] + }, + "TweetNotice": { + "type": "object", + "required": [ + "tweet", + "event_type", + "event_at", + "application" + ], + "properties": { + "application": { + "type": "string", + "description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", + "example": "apply" + }, + "details": { + "type": "string", + "description": "Information shown on the Tweet label" + }, + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "event_type": { + "type": "string", + "description": "The type of label on the Tweet", + "example": "misleading" + }, + "extended_details_url": { + "type": "string", + "description": "Link to more information about this kind of label" + }, + "label_title": { + "type": "string", + "description": "Title/header of the Tweet label" + }, + "tweet": { + "type": "object", + "required": [ + "id", + "author_id" + ], + "properties": { + "author_id": { + "$ref": "#/components/schemas/UserId" + }, + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetNoticeSchema": { + "type": "object", + "required": [ + "public_tweet_notice" + ], + "properties": { + "public_tweet_notice": { + "$ref": "#/components/schemas/TweetNotice" + } + } + }, + "TweetTakedownComplianceSchema": { + "type": "object", + "required": [ + "tweet", + "withheld_in_countries", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "quote_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "tweet": { + "type": "object", + "required": [ + "id", + "author_id" + ], + "properties": { + "author_id": { + "$ref": "#/components/schemas/UserId" + }, + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + }, + "withheld_in_countries": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/CountryCode" + } + } + } + }, + "TweetText": { + "type": "string", + "description": "The content of the Tweet.", + "example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\… https:\/\/t.co\/56a0vZUx7i" + }, + "TweetUndropComplianceSchema": { + "type": "object", + "required": [ + "undrop" + ], + "properties": { + "undrop": { + "$ref": "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetUnviewable": { + "type": "object", + "required": [ + "tweet", + "event_at", + "application" + ], + "properties": { + "application": { + "type": "string", + "description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", + "example": "apply" + }, + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "tweet": { + "type": "object", + "required": [ + "id", + "author_id" + ], + "properties": { + "author_id": { + "$ref": "#/components/schemas/UserId" + }, + "id": { + "$ref": "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetUnviewableSchema": { + "type": "object", + "required": [ + "public_tweet_unviewable" + ], + "properties": { + "public_tweet_unviewable": { + "$ref": "#/components/schemas/TweetUnviewable" + } + } + }, + "TweetWithheld": { + "type": "object", + "description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", + "required": [ + "copyright", + "country_codes" + ], + "properties": { + "copyright": { + "type": "boolean", + "description": "Indicates if the content is being withheld for on the basis of copyright infringement." + }, + "country_codes": { + "type": "array", + "description": "Provides a list of countries where this content is not available.", + "minItems": 1, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/CountryCode" + } + }, + "scope": { + "type": "string", + "description": "Indicates whether the content being withheld is the `tweet` or a `user`.", + "enum": [ + "tweet", + "user" + ] + } + } + }, + "TweetWithheldComplianceSchema": { + "type": "object", + "required": [ + "withheld" + ], + "properties": { + "withheld": { + "$ref": "#/components/schemas/TweetTakedownComplianceSchema" + } + } + }, + "UnlikeComplianceSchema": { + "type": "object", + "required": [ + "favorite", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "favorite": { + "type": "object", + "required": [ + "id", + "user_id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "user_id": { + "$ref": "#/components/schemas/UserId" + } + } + } + } + }, + "UnsupportedAuthenticationProblem": { + "description": "A problem that indicates that the authentication used is not supported.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + } + ] + }, + "UploadExpiration": { + "type": "string", + "description": "Expiration time of the upload URL.", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "UploadSource": { + "type": "object", + "required": [ + "upload_source" + ], + "properties": { + "upload_source": { + "type": "string", + "description": "Records the source (e.g., app, device) from which the media was uploaded", + "example": "gallery" + } + } + }, + "UploadUrl": { + "type": "string", + "description": "URL to which the user will upload their Tweet or user IDs.", + "format": "uri" + }, + "Url": { + "type": "string", + "description": "A validly formatted URL.", + "format": "uri", + "example": "https://developer.twitter.com/en/docs/twitter-api" + }, + "UrlEntity": { + "description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref": "#/components/schemas/UrlFields" + } + ] + }, + "UrlEntityDm": { + "description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", + "allOf": [ + { + "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref": "#/components/schemas/UrlFields" + } + ] + }, + "UrlFields": { + "type": "object", + "description": "Represent the portion of text recognized as a URL.", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string", + "description": "Description of the URL landing page.", + "example": "This is a description of the website." + }, + "display_url": { + "type": "string", + "description": "The URL as displayed in the X client.", + "example": "twittercommunity.com/t/introducing-…" + }, + "expanded_url": { + "$ref": "#/components/schemas/Url" + }, + "images": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UrlImage" + } + }, + "media_key": { + "$ref": "#/components/schemas/MediaKey" + }, + "status": { + "$ref": "#/components/schemas/HttpStatusCode" + }, + "title": { + "type": "string", + "description": "Title of the page the URL points to.", + "example": "Introducing the v2 follow lookup endpoints" + }, + "unwound_url": { + "type": "string", + "description": "Fully resolved url.", + "format": "uri", + "example": "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118" + }, + "url": { + "$ref": "#/components/schemas/Url" + } + } + }, + "UrlImage": { + "type": "object", + "description": "Represent the information for the URL image.", + "properties": { + "height": { + "$ref": "#/components/schemas/MediaHeight" + }, + "url": { + "$ref": "#/components/schemas/Url" + }, + "width": { + "$ref": "#/components/schemas/MediaWidth" + } + } + }, + "Usage": { + "type": "object", + "description": "Usage per client app", + "properties": { + "cap_reset_day": { + "type": "integer", + "description": "Number of days left for the Tweet cap to reset", + "format": "int32" + }, + "daily_client_app_usage": { + "type": "array", + "description": "The daily usage breakdown for each Client Application a project", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/ClientAppUsage" + } + }, + "daily_project_usage": { + "type": "object", + "description": "The daily usage breakdown for a project", + "properties": { + "project_id": { + "type": "integer", + "description": "The unique identifier for this project", + "format": "int32" + }, + "usage": { + "type": "array", + "description": "The usage value", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UsageFields" + } + } + } + }, + "project_cap": { + "type": "integer", + "description": "Total number of Posts that can be read in this project per month", + "format": "int32" + }, + "project_id": { + "type": "string", + "description": "The unique identifier for this project", + "format": "^[0-9]{1,19}$" + }, + "project_usage": { + "type": "integer", + "description": "The number of Posts read in this project", + "format": "int32" + } + } + }, + "UsageCapExceededProblem": { + "description": "A problem that indicates that a usage cap has been exceeded.", + "allOf": [ + { + "$ref": "#/components/schemas/Problem" + }, + { + "type": "object", + "properties": { + "period": { + "type": "string", + "enum": [ + "Daily", + "Monthly" + ] + }, + "scope": { + "type": "string", + "enum": [ + "Account", + "Product" + ] + } + } + } + ] + }, + "UsageFields": { + "type": "object", + "description": "Represents the data for Usage", + "properties": { + "date": { + "type": "string", + "description": "The time period for the usage", + "format": "date-time", + "example": "2021-01-06T18:40:40.000Z" + }, + "usage": { + "type": "integer", + "description": "The usage value", + "format": "int32" + } + } + }, + "User": { + "type": "object", + "description": "The X User object.", + "required": [ + "id", + "name", + "username" + ], + "properties": { + "affiliation": { + "type": "object", + "description": "Metadata about a user's affiliation.", + "properties": { + "badge_url": { + "type": "string", + "description": "The badge URL corresponding to the affiliation.", + "format": "uri" + }, + "description": { + "type": "string", + "description": "The description of the affiliation." + }, + "url": { + "type": "string", + "description": "The URL, if available, to details about an affiliation.", + "format": "uri" + }, + "user_id": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UserId" + } + } + } + }, + "connection_status": { + "type": "array", + "description": "Returns detailed information about the relationship between two users.", + "minItems": 0, + "items": { + "type": "string", + "description": "Type of connection between users.", + "enum": [ + "follow_request_received", + "follow_request_sent", + "blocking", + "followed_by", + "following", + "muting" + ] + } + }, + "created_at": { + "type": "string", + "description": "Creation time of this User.", + "format": "date-time" + }, + "description": { + "type": "string", + "description": "The text of this User's profile description (also known as bio), if the User provided one." + }, + "entities": { + "type": "object", + "description": "A list of metadata found in the User's profile description.", + "properties": { + "description": { + "$ref": "#/components/schemas/FullTextEntities" + }, + "url": { + "type": "object", + "description": "Expanded details for the URL specified in the User's profile, with start and end indices.", + "properties": { + "urls": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/UrlEntity" + } + } + } + } + } + }, + "id": { + "$ref": "#/components/schemas/UserId" + }, + "location": { + "type": "string", + "description": "The location specified in the User's profile, if the User provided one. As this is a freeform value, it may not indicate a valid location, but it may be fuzzily evaluated when performing searches with location queries." + }, + "most_recent_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "name": { + "type": "string", + "description": "The friendly name of this User, as shown on their profile." + }, + "pinned_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "profile_banner_url": { + "type": "string", + "description": "The URL to the profile banner for this User.", + "format": "uri" + }, + "profile_image_url": { + "type": "string", + "description": "The URL to the profile image for this User.", + "format": "uri" + }, + "protected": { + "type": "boolean", + "description": "Indicates if this User has chosen to protect their Posts (in other words, if this User's Posts are private)." + }, + "public_metrics": { + "type": "object", + "description": "A list of metrics for this User.", + "required": [ + "followers_count", + "following_count", + "tweet_count", + "listed_count" + ], + "properties": { + "followers_count": { + "type": "integer", + "description": "Number of Users who are following this User." + }, + "following_count": { + "type": "integer", + "description": "Number of Users this User is following." + }, + "like_count": { + "type": "integer", + "description": "The number of likes created by this User." + }, + "listed_count": { + "type": "integer", + "description": "The number of lists that include this User." + }, + "tweet_count": { + "type": "integer", + "description": "The number of Posts (including Retweets) posted by this User." + } + } + }, + "receives_your_dm": { + "type": "boolean", + "description": "Indicates if you can send a DM to this User" + }, + "subscription_type": { + "type": "string", + "description": "The X Blue subscription type of the user, eg: Basic, Premium, PremiumPlus or None.", + "enum": [ + "Basic", + "Premium", + "PremiumPlus", + "None" + ] + }, + "url": { + "type": "string", + "description": "The URL specified in the User's profile." + }, + "username": { + "$ref": "#/components/schemas/UserName" + }, + "verified": { + "type": "boolean", + "description": "Indicate if this User is a verified X User." + }, + "verified_type": { + "type": "string", + "description": "The X Blue verified type of the user, eg: blue, government, business or none.", + "enum": [ + "blue", + "government", + "business", + "none" + ] + }, + "withheld": { + "$ref": "#/components/schemas/UserWithheld" + } + }, + "example": { + "created_at": "2013-12-14T04:35:55Z", + "id": "2244994945", + "name": "X Dev", + "protected": false, + "username": "TwitterDev" + } + }, + "UserComplianceData": { + "description": "User compliance data.", + "oneOf": [ + { + "$ref": "#/components/schemas/UserProtectComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserUnprotectComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserDeleteComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserUndeleteComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserSuspendComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserUnsuspendComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserWithheldComplianceSchema" + }, + { + "$ref": "#/components/schemas/UserScrubGeoSchema" + }, + { + "$ref": "#/components/schemas/UserProfileModificationComplianceSchema" + } + ] + }, + "UserComplianceSchema": { + "type": "object", + "required": [ + "user", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "user": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/UserId" + } + } + } + } + }, + "UserComplianceStreamResponse": { + "description": "User compliance stream events.", + "oneOf": [ + { + "type": "object", + "description": "User compliance event.", + "required": [ + "data" + ], + "properties": { + "data": { + "$ref": "#/components/schemas/UserComplianceData" + } + } + }, + { + "type": "object", + "required": [ + "errors" + ], + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + ] + }, + "UserDeleteComplianceSchema": { + "type": "object", + "required": [ + "user_delete" + ], + "properties": { + "user_delete": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserId": { + "type": "string", + "description": "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", + "pattern": "^[0-9]{1,19}$", + "example": "2244994945" + }, + "UserIdMatchesAuthenticatedUser": { + "type": "string", + "description": "Unique identifier of this User. The value must be the same as the authenticated user.", + "example": "2244994945" + }, + "UserName": { + "type": "string", + "description": "The X handle (screen name) of this user.", + "pattern": "^[A-Za-z0-9_]{1,15}$" + }, + "UserProfileModificationComplianceSchema": { + "type": "object", + "required": [ + "user_profile_modification" + ], + "properties": { + "user_profile_modification": { + "$ref": "#/components/schemas/UserProfileModificationObjectSchema" + } + } + }, + "UserProfileModificationObjectSchema": { + "type": "object", + "required": [ + "user", + "profile_field", + "new_value", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "new_value": { + "type": "string" + }, + "profile_field": { + "type": "string" + }, + "user": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/UserId" + } + } + } + } + }, + "UserProtectComplianceSchema": { + "type": "object", + "required": [ + "user_protect" + ], + "properties": { + "user_protect": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserScrubGeoObjectSchema": { + "type": "object", + "required": [ + "user", + "up_to_tweet_id", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "up_to_tweet_id": { + "$ref": "#/components/schemas/TweetId" + }, + "user": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/UserId" + } + } + } + } + }, + "UserScrubGeoSchema": { + "type": "object", + "required": [ + "scrub_geo" + ], + "properties": { + "scrub_geo": { + "$ref": "#/components/schemas/UserScrubGeoObjectSchema" + } + } + }, + "UserSearchQueryVnext": { + "type": "string", + "description": "The the search string by which to query for users.", + "pattern": "^[A-Za-z0-9_' ]{1,50}$" + }, + "UserSuspendComplianceSchema": { + "type": "object", + "required": [ + "user_suspend" + ], + "properties": { + "user_suspend": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserTakedownComplianceSchema": { + "type": "object", + "required": [ + "user", + "withheld_in_countries", + "event_at" + ], + "properties": { + "event_at": { + "type": "string", + "description": "Event time.", + "format": "date-time", + "example": "2021-07-06T18:40:40.000Z" + }, + "user": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "withheld_in_countries": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/CountryCode" + } + } + } + }, + "UserUndeleteComplianceSchema": { + "type": "object", + "required": [ + "user_undelete" + ], + "properties": { + "user_undelete": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserUnprotectComplianceSchema": { + "type": "object", + "required": [ + "user_unprotect" + ], + "properties": { + "user_unprotect": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserUnsuspendComplianceSchema": { + "type": "object", + "required": [ + "user_unsuspend" + ], + "properties": { + "user_unsuspend": { + "$ref": "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserWithheld": { + "type": "object", + "description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", + "required": [ + "country_codes" + ], + "properties": { + "country_codes": { + "type": "array", + "description": "Provides a list of countries where this content is not available.", + "minItems": 1, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/CountryCode" + } + }, + "scope": { + "type": "string", + "description": "Indicates that the content being withheld is a `user`.", + "enum": [ + "user" + ] + } + } + }, + "UserWithheldComplianceSchema": { + "type": "object", + "required": [ + "user_withheld" + ], + "properties": { + "user_withheld": { + "$ref": "#/components/schemas/UserTakedownComplianceSchema" + } + } + }, + "UsersDMBlockCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "blocked": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersDMUnBlockCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "blocked": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersFollowingCreateRequest": { + "type": "object", + "required": [ + "target_user_id" + ], + "properties": { + "target_user_id": { + "$ref": "#/components/schemas/UserId" + } + } + }, + "UsersFollowingCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "following": { + "type": "boolean" + }, + "pending_follow": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersFollowingDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "following": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersLikesCreateRequest": { + "type": "object", + "required": [ + "tweet_id" + ], + "properties": { + "tweet_id": { + "$ref": "#/components/schemas/TweetId" + } + } + }, + "UsersLikesCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "liked": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersLikesDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "liked": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersRetweetsCreateRequest": { + "type": "object", + "required": [ + "tweet_id" + ], + "properties": { + "tweet_id": { + "$ref": "#/components/schemas/TweetId" + } + }, + "additionalProperties": false + }, + "UsersRetweetsCreateResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/TweetId" + }, + "retweeted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "UsersRetweetsDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "retweeted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "Variant": { + "type": "object", + "properties": { + "bit_rate": { + "type": "integer", + "description": "The bit rate of the media." + }, + "content_type": { + "type": "string", + "description": "The content type of the media." + }, + "url": { + "type": "string", + "description": "The url to the media.", + "format": "uri" + } + } + }, + "Variants": { + "type": "array", + "description": "An array of all available variants of the media.", + "items": { + "$ref": "#/components/schemas/Variant" + } + }, + "Video": { + "allOf": [ + { + "$ref": "#/components/schemas/Media" + }, + { + "type": "object", + "properties": { + "duration_ms": { + "type": "integer" + }, + "non_public_metrics": { + "type": "object", + "description": "Nonpublic engagement metrics for the Media at the time of the request.", + "properties": { + "playback_0_count": { + "type": "integer", + "description": "Number of users who made it through 0% of the video.", + "format": "int32" + }, + "playback_100_count": { + "type": "integer", + "description": "Number of users who made it through 100% of the video.", + "format": "int32" + }, + "playback_25_count": { + "type": "integer", + "description": "Number of users who made it through 25% of the video.", + "format": "int32" + }, + "playback_50_count": { + "type": "integer", + "description": "Number of users who made it through 50% of the video.", + "format": "int32" + }, + "playback_75_count": { + "type": "integer", + "description": "Number of users who made it through 75% of the video.", + "format": "int32" + } + } + }, + "organic_metrics": { + "type": "object", + "description": "Organic nonpublic engagement metrics for the Media at the time of the request.", + "properties": { + "playback_0_count": { + "type": "integer", + "description": "Number of users who made it through 0% of the video.", + "format": "int32" + }, + "playback_100_count": { + "type": "integer", + "description": "Number of users who made it through 100% of the video.", + "format": "int32" + }, + "playback_25_count": { + "type": "integer", + "description": "Number of users who made it through 25% of the video.", + "format": "int32" + }, + "playback_50_count": { + "type": "integer", + "description": "Number of users who made it through 50% of the video.", + "format": "int32" + }, + "playback_75_count": { + "type": "integer", + "description": "Number of users who made it through 75% of the video.", + "format": "int32" + }, + "view_count": { + "type": "integer", + "description": "Number of times this video has been viewed.", + "format": "int32" + } + } + }, + "preview_image_url": { + "type": "string", + "format": "uri" + }, + "promoted_metrics": { + "type": "object", + "description": "Promoted nonpublic engagement metrics for the Media at the time of the request.", + "properties": { + "playback_0_count": { + "type": "integer", + "description": "Number of users who made it through 0% of the video.", + "format": "int32" + }, + "playback_100_count": { + "type": "integer", + "description": "Number of users who made it through 100% of the video.", + "format": "int32" + }, + "playback_25_count": { + "type": "integer", + "description": "Number of users who made it through 25% of the video.", + "format": "int32" + }, + "playback_50_count": { + "type": "integer", + "description": "Number of users who made it through 50% of the video.", + "format": "int32" + }, + "playback_75_count": { + "type": "integer", + "description": "Number of users who made it through 75% of the video.", + "format": "int32" + }, + "view_count": { + "type": "integer", + "description": "Number of times this video has been viewed.", + "format": "int32" + } + } + }, + "public_metrics": { + "type": "object", + "description": "Engagement metrics for the Media at the time of the request.", + "properties": { + "view_count": { + "type": "integer", + "description": "Number of times this video has been viewed.", + "format": "int32" + } + } + }, + "variants": { + "$ref": "#/components/schemas/Variants" + } + } + } + ] + }, + "WebhookConfig": { + "type": "object", + "description": "A Webhook Configuration", + "required": [ + "id", + "url", + "valid", + "created_at" + ], + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "url": { + "type": "string", + "description": "The callback URL of the webhook." + }, + "valid": { + "type": "boolean" + } + } + }, + "WebhookConfigCreateRequest": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "type": "string", + "minLength": 1, + "maxLength": 200 + } + } + }, + "WebhookConfigCreateResponse": { + "type": "object", + "description": "A Webhook Configuration", + "required": [ + "id", + "url", + "valid", + "created_at" + ], + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "id": { + "$ref": "#/components/schemas/WebhookConfigId" + }, + "url": { + "type": "string", + "description": "The callback URL of the webhook." + }, + "valid": { + "type": "boolean" + } + } + }, + "WebhookConfigDeleteResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + }, + "WebhookConfigId": { + "type": "string", + "description": "The unique identifier of this webhook config.", + "pattern": "^[0-9]{1,19}$", + "example": "1146654567674912769" + }, + "WebhookConfigPutResponse": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "attempted": { + "type": "boolean" + } + } + }, + "errors": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/Problem" + } + } + } + } + }, + "parameters": { + "AnalyticsFieldsParameter": { + "name": "analytics.fields", + "in": "query", + "description": "A comma separated list of Analytics fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Analytics object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "app_install_attempts", + "app_opens", + "bookmarks", + "detail_expands", + "email_tweet", + "engagements", + "follows", + "hashtag_clicks", + "id", + "impressions", + "likes", + "media_views", + "permalink_clicks", + "quote_tweets", + "replies", + "retweets", + "shares", + "timestamp", + "unfollows", + "url_clicks", + "user_profile_clicks" + ] + }, + "example": [ + "app_install_attempts", + "app_opens", + "bookmarks", + "detail_expands", + "email_tweet", + "engagements", + "follows", + "hashtag_clicks", + "id", + "impressions", + "likes", + "media_views", + "permalink_clicks", + "quote_tweets", + "replies", + "retweets", + "shares", + "timestamp", + "unfollows", + "url_clicks", + "user_profile_clicks" + ] + }, + "explode": false, + "style": "form" + }, + "CommunityFieldsParameter": { + "name": "community.fields", + "in": "query", + "description": "A comma separated list of Community fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Community object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "access", + "created_at", + "description", + "id", + "join_policy", + "member_count", + "name" + ] + }, + "example": [ + "access", + "created_at", + "description", + "id", + "join_policy", + "member_count", + "name" + ] + }, + "explode": false, + "style": "form" + }, + "ComplianceJobFieldsParameter": { + "name": "compliance_job.fields", + "in": "query", + "description": "A comma separated list of ComplianceJob fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a ComplianceJob object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "download_expires_at", + "download_url", + "id", + "name", + "resumable", + "status", + "type", + "upload_expires_at", + "upload_url" + ] + }, + "example": [ + "created_at", + "download_expires_at", + "download_url", + "id", + "name", + "resumable", + "status", + "type", + "upload_expires_at", + "upload_url" + ] + }, + "explode": false, + "style": "form" + }, + "DmConversationFieldsParameter": { + "name": "dm_conversation.fields", + "in": "query", + "description": "A comma separated list of DmConversation fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a DmConversation object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "id" + ] + }, + "example": [ + "id" + ] + }, + "explode": false, + "style": "form" + }, + "DmEventExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [DmEvent](#DmEvent) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "attachments.media_keys", + "participant_ids", + "referenced_tweets.id", + "sender_id" + ] + }, + "example": [ + "attachments.media_keys", + "participant_ids", + "referenced_tweets.id", + "sender_id" + ] + }, + "explode": false, + "style": "form" + }, + "DmEventFieldsParameter": { + "name": "dm_event.fields", + "in": "query", + "description": "A comma separated list of DmEvent fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a DmEvent object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "attachments", + "created_at", + "dm_conversation_id", + "entities", + "event_type", + "id", + "participant_ids", + "referenced_tweets", + "sender_id", + "text" + ] + }, + "example": [ + "attachments", + "created_at", + "dm_conversation_id", + "entities", + "event_type", + "id", + "participant_ids", + "referenced_tweets", + "sender_id", + "text" + ] + }, + "explode": false, + "style": "form" + }, + "EngagementFieldsParameter": { + "name": "engagement.fields", + "in": "query", + "description": "A comma separated list of Engagement fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Engagement object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "errors", + "measurement" + ] + }, + "example": [ + "errors", + "measurement" + ] + }, + "explode": false, + "style": "form" + }, + "LikeExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [Like](#Like) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "liked_tweet_id" + ] + }, + "example": [ + "liked_tweet_id" + ] + }, + "explode": false, + "style": "form" + }, + "LikeFieldsParameter": { + "name": "like.fields", + "in": "query", + "description": "A comma separated list of Like fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Like object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "example": [ + "created_at", + "id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "explode": false, + "style": "form" + }, + "LikeWithTweetAuthorExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [LikeWithTweetAuthor](#LikeWithTweetAuthor) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "liked_tweet_author_id", + "liked_tweet_id" + ] + }, + "example": [ + "liked_tweet_author_id", + "liked_tweet_id" + ] + }, + "explode": false, + "style": "form" + }, + "LikeWithTweetAuthorFieldsParameter": { + "name": "like_with_tweet_author.fields", + "in": "query", + "description": "A comma separated list of LikeWithTweetAuthor fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a LikeWithTweetAuthor object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "id", + "liked_tweet_author_id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "example": [ + "created_at", + "id", + "liked_tweet_author_id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "explode": false, + "style": "form" + }, + "ListExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [List](#List) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "owner_id" + ] + }, + "example": [ + "owner_id" + ] + }, + "explode": false, + "style": "form" + }, + "ListFieldsParameter": { + "name": "list.fields", + "in": "query", + "description": "A comma separated list of List fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a List object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "description", + "follower_count", + "id", + "member_count", + "name", + "owner_id", + "private" + ] + }, + "example": [ + "created_at", + "description", + "follower_count", + "id", + "member_count", + "name", + "owner_id", + "private" + ] + }, + "explode": false, + "style": "form" + }, + "MediaAnalyticsFieldsParameter": { + "name": "media_analytics.fields", + "in": "query", + "description": "A comma separated list of MediaAnalytics fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a MediaAnalytics object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "cta_url_clicks", + "cta_watch_clicks", + "media_key", + "play_from_tap", + "playback25", + "playback50", + "playback75", + "playback_complete", + "playback_start", + "timestamp", + "video_views", + "watch_time_ms" + ] + }, + "example": [ + "cta_url_clicks", + "cta_watch_clicks", + "media_key", + "play_from_tap", + "playback25", + "playback50", + "playback75", + "playback_complete", + "playback_start", + "timestamp", + "video_views", + "watch_time_ms" + ] + }, + "explode": false, + "style": "form" + }, + "MediaFieldsParameter": { + "name": "media.fields", + "in": "query", + "description": "A comma separated list of Media fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Media object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "alt_text", + "duration_ms", + "height", + "media_key", + "non_public_metrics", + "organic_metrics", + "preview_image_url", + "promoted_metrics", + "public_metrics", + "type", + "url", + "variants", + "width" + ] + }, + "example": [ + "alt_text", + "duration_ms", + "height", + "media_key", + "non_public_metrics", + "organic_metrics", + "preview_image_url", + "promoted_metrics", + "public_metrics", + "type", + "url", + "variants", + "width" + ] + }, + "explode": false, + "style": "form" + }, + "NoteFieldsParameter": { + "name": "note.fields", + "in": "query", + "description": "A comma separated list of Note fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Note object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "id", + "info", + "status", + "test_result" + ] + }, + "example": [ + "id", + "info", + "status", + "test_result" + ] + }, + "explode": false, + "style": "form" + }, + "PersonalizedTrendFieldsParameter": { + "name": "personalized_trend.fields", + "in": "query", + "description": "A comma separated list of PersonalizedTrend fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PersonalizedTrend object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "category", + "post_count", + "trend_name", + "trending_since" + ] + }, + "example": [ + "category", + "post_count", + "trend_name", + "trending_since" + ] + }, + "explode": false, + "style": "form" + }, + "PlaceFieldsParameter": { + "name": "place.fields", + "in": "query", + "description": "A comma separated list of Place fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Place object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "contained_within", + "country", + "country_code", + "full_name", + "geo", + "id", + "name", + "place_type" + ] + }, + "example": [ + "contained_within", + "country", + "country_code", + "full_name", + "geo", + "id", + "name", + "place_type" + ] + }, + "explode": false, + "style": "form" + }, + "PlaidAccountContactFieldsParameter": { + "name": "plaid_account_contact.fields", + "in": "query", + "description": "A comma separated list of PlaidAccountContact fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PlaidAccountContact object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "addresses", + "emails", + "holders", + "telephones" + ] + }, + "example": [ + "addresses", + "emails", + "holders", + "telephones" + ] + }, + "explode": false, + "style": "form" + }, + "PlaidAccountFieldsParameter": { + "name": "plaid_account.fields", + "in": "query", + "description": "A comma separated list of PlaidAccount fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PlaidAccount object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "accountCategory", + "accountId", + "accountNumberDisplay", + "accountType", + "availableBalance", + "currency", + "currentBalance", + "nickname", + "productName", + "status" + ] + }, + "example": [ + "accountCategory", + "accountId", + "accountNumberDisplay", + "accountType", + "availableBalance", + "currency", + "currentBalance", + "nickname", + "productName", + "status" + ] + }, + "explode": false, + "style": "form" + }, + "PlaidAccountPaymentNetworkFieldsParameter": { + "name": "plaid_account_payment_network.fields", + "in": "query", + "description": "A comma separated list of PlaidAccountPaymentNetwork fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PlaidAccountPaymentNetwork object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "bankId", + "identifier", + "transferIn", + "transferOut", + "type" + ] + }, + "example": [ + "bankId", + "identifier", + "transferIn", + "transferOut", + "type" + ] + }, + "explode": false, + "style": "form" + }, + "PlaidAccountTransactionFieldsParameter": { + "name": "plaid_account_transaction.fields", + "in": "query", + "description": "A comma separated list of PlaidAccountTransaction fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PlaidAccountTransaction object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "postedTimestamp", + "status", + "transactionId", + "transactionTimestamp" + ] + }, + "example": [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "postedTimestamp", + "status", + "transactionId", + "transactionTimestamp" + ] + }, + "explode": false, + "style": "form" + }, + "PlaidCustomerFieldsParameter": { + "name": "plaid_customer.fields", + "in": "query", + "description": "A comma separated list of PlaidCustomer fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a PlaidCustomer object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "customerId" + ] + }, + "example": [ + "customerId" + ] + }, + "explode": false, + "style": "form" + }, + "PollFieldsParameter": { + "name": "poll.fields", + "in": "query", + "description": "A comma separated list of Poll fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Poll object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "duration_minutes", + "end_datetime", + "id", + "options", + "voting_status" + ] + }, + "example": [ + "duration_minutes", + "end_datetime", + "id", + "options", + "voting_status" + ] + }, + "explode": false, + "style": "form" + }, + "RulesCountFieldsParameter": { + "name": "rules_count.fields", + "in": "query", + "description": "A comma separated list of RulesCount fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a RulesCount object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "all_project_client_apps", + "cap_per_client_app", + "cap_per_project", + "client_app_rules_count", + "project_rules_count" + ] + }, + "example": [ + "all_project_client_apps", + "cap_per_client_app", + "cap_per_project", + "client_app_rules_count", + "project_rules_count" + ] + }, + "explode": false, + "style": "form" + }, + "SearchCountFieldsParameter": { + "name": "search_count.fields", + "in": "query", + "description": "A comma separated list of SearchCount fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a SearchCount object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "end", + "start", + "tweet_count" + ] + }, + "example": [ + "end", + "start", + "tweet_count" + ] + }, + "explode": false, + "style": "form" + }, + "SpaceExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [Space](#Space) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "creator_id", + "host_ids", + "invited_user_ids", + "speaker_ids", + "topic_ids" + ] + }, + "example": [ + "creator_id", + "host_ids", + "invited_user_ids", + "speaker_ids", + "topic_ids" + ] + }, + "explode": false, + "style": "form" + }, + "SpaceFieldsParameter": { + "name": "space.fields", + "in": "query", + "description": "A comma separated list of Space fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Space object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "creator_id", + "ended_at", + "host_ids", + "id", + "invited_user_ids", + "is_ticketed", + "lang", + "participant_count", + "scheduled_start", + "speaker_ids", + "started_at", + "state", + "subscriber_count", + "title", + "topic_ids", + "updated_at" + ] + }, + "example": [ + "created_at", + "creator_id", + "ended_at", + "host_ids", + "id", + "invited_user_ids", + "is_ticketed", + "lang", + "participant_count", + "scheduled_start", + "speaker_ids", + "started_at", + "state", + "subscriber_count", + "title", + "topic_ids", + "updated_at" + ] + }, + "explode": false, + "style": "form" + }, + "TopicFieldsParameter": { + "name": "topic.fields", + "in": "query", + "description": "A comma separated list of Topic fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Topic object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "description", + "id", + "name" + ] + }, + "example": [ + "description", + "id", + "name" + ] + }, + "explode": false, + "style": "form" + }, + "TrendFieldsParameter": { + "name": "trend.fields", + "in": "query", + "description": "A comma separated list of Trend fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Trend object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "trend_name", + "tweet_count" + ] + }, + "example": [ + "trend_name", + "tweet_count" + ] + }, + "explode": false, + "style": "form" + }, + "TweetExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [Tweet](#Tweet) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "article.cover_media", + "article.media_entities", + "attachments.media_keys", + "attachments.media_source_tweet", + "attachments.poll_ids", + "author_id", + "edit_history_tweet_ids", + "entities.mentions.username", + "geo.place_id", + "in_reply_to_user_id", + "entities.note.mentions.username", + "referenced_tweets.id", + "referenced_tweets.id.attachments.media_keys", + "referenced_tweets.id.author_id" + ] + }, + "example": [ + "article.cover_media", + "article.media_entities", + "attachments.media_keys", + "attachments.media_source_tweet", + "attachments.poll_ids", + "author_id", + "edit_history_tweet_ids", + "entities.mentions.username", + "geo.place_id", + "in_reply_to_user_id", + "entities.note.mentions.username", + "referenced_tweets.id", + "referenced_tweets.id.attachments.media_keys", + "referenced_tweets.id.author_id" + ] + }, + "explode": false, + "style": "form" + }, + "TweetFieldsParameter": { + "name": "tweet.fields", + "in": "query", + "description": "A comma separated list of Tweet fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Tweet object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "article", + "attachments", + "author_id", + "card_uri", + "community_id", + "context_annotations", + "conversation_id", + "created_at", + "display_text_range", + "edit_controls", + "edit_history_tweet_ids", + "entities", + "geo", + "id", + "in_reply_to_user_id", + "lang", + "media_metadata", + "non_public_metrics", + "note_tweet", + "organic_metrics", + "possibly_sensitive", + "promoted_metrics", + "public_metrics", + "referenced_tweets", + "reply_settings", + "scopes", + "source", + "text", + "withheld" + ] + }, + "example": [ + "article", + "attachments", + "author_id", + "card_uri", + "community_id", + "context_annotations", + "conversation_id", + "created_at", + "display_text_range", + "edit_controls", + "edit_history_tweet_ids", + "entities", + "geo", + "id", + "in_reply_to_user_id", + "lang", + "media_metadata", + "non_public_metrics", + "note_tweet", + "organic_metrics", + "possibly_sensitive", + "promoted_metrics", + "public_metrics", + "referenced_tweets", + "reply_settings", + "scopes", + "source", + "text", + "withheld" + ] + }, + "explode": false, + "style": "form" + }, + "UsageFieldsParameter": { + "name": "usage.fields", + "in": "query", + "description": "A comma separated list of Usage fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a Usage object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "cap_reset_day", + "daily_client_app_usage", + "daily_project_usage", + "project_cap", + "project_id", + "project_usage" + ] + }, + "example": [ + "cap_reset_day", + "daily_client_app_usage", + "daily_project_usage", + "project_cap", + "project_id", + "project_usage" + ] + }, + "explode": false, + "style": "form" + }, + "UserExpansionsParameter": { + "name": "expansions", + "in": "query", + "description": "A comma separated list of fields to expand.", + "schema": { + "type": "array", + "description": "The list of fields you can expand for a [User](#User) object. If the field has an ID, it can be expanded into a full object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "affiliation.user_id", + "most_recent_tweet_id", + "pinned_tweet_id" + ] + }, + "example": [ + "affiliation.user_id", + "most_recent_tweet_id", + "pinned_tweet_id" + ] + }, + "explode": false, + "style": "form" + }, + "UserFieldsParameter": { + "name": "user.fields", + "in": "query", + "description": "A comma separated list of User fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a User object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "affiliation", + "confirmed_email", + "connection_status", + "created_at", + "description", + "entities", + "id", + "is_identity_verified", + "location", + "most_recent_tweet_id", + "name", + "parody", + "pinned_tweet_id", + "profile_banner_url", + "profile_image_url", + "protected", + "public_metrics", + "receives_your_dm", + "subscription", + "subscription_type", + "url", + "username", + "verified", + "verified_followers_count", + "verified_type", + "withheld" + ] + }, + "example": [ + "affiliation", + "confirmed_email", + "connection_status", + "created_at", + "description", + "entities", + "id", + "is_identity_verified", + "location", + "most_recent_tweet_id", + "name", + "parody", + "pinned_tweet_id", + "profile_banner_url", + "profile_image_url", + "protected", + "public_metrics", + "receives_your_dm", + "subscription", + "subscription_type", + "url", + "username", + "verified", + "verified_followers_count", + "verified_type", + "withheld" + ] + }, + "explode": false, + "style": "form" + }, + "WebhookConfigFieldsParameter": { + "name": "webhook_config.fields", + "in": "query", + "description": "A comma separated list of WebhookConfig fields to display.", + "required": false, + "schema": { + "type": "array", + "description": "The fields available for a WebhookConfig object.", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "created_at", + "id", + "url", + "valid" + ] + }, + "example": [ + "created_at", + "id", + "url", + "valid" + ] + }, + "explode": false, + "style": "form" + } + } + } } From d87af4c83dd6316b3a345ed0ca67922f936b4c74 Mon Sep 17 00:00:00 2001 From: Taylor Caldwell Date: Tue, 29 Jul 2025 11:12:54 -0700 Subject: [PATCH 32/34] Rm --- .../causes-the-user-in-the-path-to-like-the-specified-post.mdx | 3 --- ...auses-the-user-in-the-path-to-repost-the-specified-post.mdx | 3 --- ...auses-the-user-in-the-path-to-unlike-the-specified-post.mdx | 3 --- ...es-the-user-in-the-path-to-unretweet-the-specified-post.mdx | 3 --- x-api/posts/creation-of-a-post.mdx | 3 --- 5 files changed, 15 deletions(-) delete mode 100644 x-api/posts/causes-the-user-in-the-path-to-like-the-specified-post.mdx delete mode 100644 x-api/posts/causes-the-user-in-the-path-to-repost-the-specified-post.mdx delete mode 100644 x-api/posts/causes-the-user-in-the-path-to-unlike-the-specified-post.mdx delete mode 100644 x-api/posts/causes-the-user-in-the-path-to-unretweet-the-specified-post.mdx delete mode 100644 x-api/posts/creation-of-a-post.mdx diff --git a/x-api/posts/causes-the-user-in-the-path-to-like-the-specified-post.mdx b/x-api/posts/causes-the-user-in-the-path-to-like-the-specified-post.mdx deleted file mode 100644 index e6197dc..0000000 --- a/x-api/posts/causes-the-user-in-the-path-to-like-the-specified-post.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/users/{id}/likes ---- \ No newline at end of file diff --git a/x-api/posts/causes-the-user-in-the-path-to-repost-the-specified-post.mdx b/x-api/posts/causes-the-user-in-the-path-to-repost-the-specified-post.mdx deleted file mode 100644 index 8d6c6be..0000000 --- a/x-api/posts/causes-the-user-in-the-path-to-repost-the-specified-post.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/users/{id}/retweets ---- \ No newline at end of file diff --git a/x-api/posts/causes-the-user-in-the-path-to-unlike-the-specified-post.mdx b/x-api/posts/causes-the-user-in-the-path-to-unlike-the-specified-post.mdx deleted file mode 100644 index 41a1df7..0000000 --- a/x-api/posts/causes-the-user-in-the-path-to-unlike-the-specified-post.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/users/{id}/likes/{tweet_id} ---- \ No newline at end of file diff --git a/x-api/posts/causes-the-user-in-the-path-to-unretweet-the-specified-post.mdx b/x-api/posts/causes-the-user-in-the-path-to-unretweet-the-specified-post.mdx deleted file mode 100644 index 04622dc..0000000 --- a/x-api/posts/causes-the-user-in-the-path-to-unretweet-the-specified-post.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/users/{id}/retweets/{source_tweet_id} ---- \ No newline at end of file diff --git a/x-api/posts/creation-of-a-post.mdx b/x-api/posts/creation-of-a-post.mdx deleted file mode 100644 index 7c8307b..0000000 --- a/x-api/posts/creation-of-a-post.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/tweets ---- \ No newline at end of file From 8c9ac93ed63a99ad06600d6c51fe749a4106c1dc Mon Sep 17 00:00:00 2001 From: Taylor Caldwell Date: Tue, 29 Jul 2025 13:32:38 -0700 Subject: [PATCH 33/34] Update docs w/ latest --- openapi.json | 41894 ++++++++-------- ...on-exists-for-a-given-webhook-and-user.mdx | 3 - ...-for-the-specified-webhook-and-user-id.mdx | 3 - ...t-are-currently-active-on-your-account.mdx | 3 - ...ubscriptions-for-the-specified-webhook.mdx | 3 - .../request-activity-replay.mdx | 3 - ...ded-user-context-for-all-message-types.mdx | 3 - x-api/bookmarks/add-post-to-bookmarks.mdx | 3 - ...ark-folder-posts-by-user-and-folder-id.mdx | 3 - x-api/bookmarks/bookmark-folders-by-user.mdx | 3 - x-api/bookmarks/bookmarks-by-user.mdx | 3 - x-api/bookmarks/remove-a-bookmarked-post.mdx | 3 - .../communities-lookup-by-community-id.mdx | 3 - x-api/compliance/get-compliance-job.mdx | 3 - x-api/compliance/likes-compliance-stream.mdx | 3 - x-api/compliance/list-compliance-jobs.mdx | 3 - x-api/compliance/posts-compliance-stream.mdx | 3 - x-api/compliance/users-compliance-stream.mdx | 3 - ...tions-of-the-authenticated-application.mdx | 3 - x-api/likes/likes-firehose-stream.mdx | 3 - x-api/likes/likes-sample-10-stream.mdx | 3 - x-api/lists/add-a-list-member.mdx | 3 - x-api/lists/follow-a-list.mdx | 3 - x-api/lists/get-a-users-list-memberships.mdx | 3 - x-api/lists/get-a-users-owned-lists.mdx | 3 - x-api/lists/get-a-users-pinned-lists.mdx | 3 - x-api/lists/get-users-followed-lists.mdx | 3 - x-api/lists/list-lookup-by-list-id.mdx | 3 - x-api/lists/pin-a-list.mdx | 3 - x-api/lists/remove-a-list-member.mdx | 3 - x-api/lists/unfollow-a-list.mdx | 3 - x-api/lists/unpin-a-list.mdx | 3 - .../media/image-or-subtitle-media-upload.mdx | 3 - x-api/media/media-lookup-by-media-key-1.mdx | 3 - x-api/media/media-lookup-by-media-key.mdx | 3 - x-api/media/media-upload-append.mdx | 3 - x-api/media/media-upload-finalize.mdx | 3 - x-api/media/media-upload-initialize.mdx | 3 - x-api/media/media-upload-status.mdx | 3 - x-api/media/metadata-create.mdx | 3 - x-api/media/subtitle-create.mdx | 3 - x-api/media/subtitle-delete.mdx | 3 - .../{general => openapi}/get-openapi-spec.mdx | 0 ...rns-the-openapi-specification-document.mdx | 3 - x-api/posts/adddelete-rules.mdx | 3 - x-api/posts/analytics-of-posts.mdx | 3 - .../english-language-firehose-stream.mdx | 3 - x-api/posts/filtered-stream.mdx | 3 - x-api/posts/firehose-stream.mdx | 3 - x-api/posts/full-archive-search-counts.mdx | 3 - x-api/posts/full-archive-search.mdx | 3 - x-api/posts/get-engagement-analytics.mdx | 3 - .../get-historical-metrics-for-posts.mdx | 3 - .../posts/get-last-28hr-metrics-for-posts.mdx | 3 - x-api/posts/hide-replies.mdx | 3 - .../japanese-language-firehose-stream.mdx | 3 - .../posts/korean-language-firehose-stream.mdx | 3 - .../posts/list-posts-timeline-by-list-id.mdx | 3 - .../portuguese-language-firehose-stream.mdx | 3 - x-api/posts/post-delete-by-post-id.mdx | 3 - x-api/posts/post-lookup-by-post-id.mdx | 3 - x-api/posts/post-lookup-by-post-ids.mdx | 3 - x-api/posts/recent-search-counts.mdx | 3 - x-api/posts/recent-search.mdx | 3 - .../retrieve-posts-that-quote-a-post.mdx | 3 - .../retrieve-posts-that-repost-a-post.mdx | 3 - ...-objects-liked-by-the-provided-user-id.mdx | 3 - x-api/posts/rules-count.mdx | 3 - x-api/posts/rules-lookup.mdx | 3 - x-api/posts/sample-10-stream.mdx | 3 - x-api/posts/sample-stream.mdx | 3 - x-api/posts/user-home-timeline-by-user-id.mdx | 3 - .../user-mention-timeline-by-user-id.mdx | 3 - .../posts/user-posts-timeline-by-user-id.mdx | 3 - x-api/spaces/retrieve-posts-from-a-space.mdx | 3 - ...-purchased-a-ticket-to-the-given-space.mdx | 3 - x-api/spaces/search-for-spaces.mdx | 3 - x-api/spaces/space-lookup-by-space-id.mdx | 3 - .../spaces/space-lookup-by-their-creators.mdx | 3 - x-api/spaces/space-lookup-up-space-ids.mdx | 3 - x-api/trends/trends.mdx | 3 - x-api/usage/post-usage.mdx | 3 - ...cked-by-the-authenticated-request-user.mdx | 3 - ...cked-by-the-authenticated-request-user.mdx | 3 - x-api/users/followers-by-user-id.mdx | 3 - x-api/users/following-by-user-id.mdx | 3 - x-api/users/mute-user-by-user-id.mdx | 3 - x-api/users/returns-repost-of-user.mdx | 3 - ...s-that-are-blocked-by-provided-user-id.mdx | 3 - ...bers-of-a-list-by-the-provided-list-id.mdx | 3 - ...that-are-muted-by-the-provided-user-id.mdx | 3 - ...-follow-a-list-by-the-provided-list-id.mdx | 3 - ...s-that-have-liked-the-provided-post-id.mdx | 3 - ...at-have-retweeted-the-provided-post-id.mdx | 3 - x-api/users/unmute-user-by-user-id.mdx | 3 - x-api/users/user-lookup-by-id.mdx | 3 - x-api/users/user-lookup-by-ids.mdx | 3 - x-api/users/user-lookup-by-username.mdx | 3 - x-api/users/user-lookup-by-usernames.mdx | 3 - x-api/users/user-lookup-me.mdx | 3 - x-api/users/user-search.mdx | 3 - x-api/webhooks/create-webhook-config.mdx | 3 - x-api/webhooks/delete-webhook-config.mdx | 3 - ...k-configs-associated-with-a-client-app.mdx | 3 - x-api/webhooks/webhook-crc-check.mdx | 3 - 105 files changed, 20947 insertions(+), 21256 deletions(-) delete mode 100644 x-api/account-activity/check-if-a-subscription-exists-for-a-given-webhook-and-user.mdx delete mode 100644 x-api/account-activity/deactivates-a-subscription-for-the-specified-webhook-and-user-id.mdx delete mode 100644 x-api/account-activity/get-a-count-of-subscriptions-that-are-currently-active-on-your-account.mdx delete mode 100644 x-api/account-activity/get-a-list-of-the-current-all-activity-type-subscriptions-for-the-specified-webhook.mdx delete mode 100644 x-api/account-activity/request-activity-replay.mdx delete mode 100644 x-api/account-activity/subscribes-the-provided-application-to-all-events-for-the-provided-user-context-for-all-message-types.mdx delete mode 100644 x-api/bookmarks/add-post-to-bookmarks.mdx delete mode 100644 x-api/bookmarks/bookmark-folder-posts-by-user-and-folder-id.mdx delete mode 100644 x-api/bookmarks/bookmark-folders-by-user.mdx delete mode 100644 x-api/bookmarks/bookmarks-by-user.mdx delete mode 100644 x-api/bookmarks/remove-a-bookmarked-post.mdx delete mode 100644 x-api/communities/communities-lookup-by-community-id.mdx delete mode 100644 x-api/compliance/get-compliance-job.mdx delete mode 100644 x-api/compliance/likes-compliance-stream.mdx delete mode 100644 x-api/compliance/list-compliance-jobs.mdx delete mode 100644 x-api/compliance/posts-compliance-stream.mdx delete mode 100644 x-api/compliance/users-compliance-stream.mdx delete mode 100644 x-api/connection/force-kills-all-streaming-connections-of-the-authenticated-application.mdx delete mode 100644 x-api/likes/likes-firehose-stream.mdx delete mode 100644 x-api/likes/likes-sample-10-stream.mdx delete mode 100644 x-api/lists/add-a-list-member.mdx delete mode 100644 x-api/lists/follow-a-list.mdx delete mode 100644 x-api/lists/get-a-users-list-memberships.mdx delete mode 100644 x-api/lists/get-a-users-owned-lists.mdx delete mode 100644 x-api/lists/get-a-users-pinned-lists.mdx delete mode 100644 x-api/lists/get-users-followed-lists.mdx delete mode 100644 x-api/lists/list-lookup-by-list-id.mdx delete mode 100644 x-api/lists/pin-a-list.mdx delete mode 100644 x-api/lists/remove-a-list-member.mdx delete mode 100644 x-api/lists/unfollow-a-list.mdx delete mode 100644 x-api/lists/unpin-a-list.mdx delete mode 100644 x-api/media/image-or-subtitle-media-upload.mdx delete mode 100644 x-api/media/media-lookup-by-media-key-1.mdx delete mode 100644 x-api/media/media-lookup-by-media-key.mdx delete mode 100644 x-api/media/media-upload-append.mdx delete mode 100644 x-api/media/media-upload-finalize.mdx delete mode 100644 x-api/media/media-upload-initialize.mdx delete mode 100644 x-api/media/media-upload-status.mdx delete mode 100644 x-api/media/metadata-create.mdx delete mode 100644 x-api/media/subtitle-create.mdx delete mode 100644 x-api/media/subtitle-delete.mdx rename x-api/{general => openapi}/get-openapi-spec.mdx (100%) delete mode 100644 x-api/openapi/returns-the-openapi-specification-document.mdx delete mode 100644 x-api/posts/adddelete-rules.mdx delete mode 100644 x-api/posts/analytics-of-posts.mdx delete mode 100644 x-api/posts/english-language-firehose-stream.mdx delete mode 100644 x-api/posts/filtered-stream.mdx delete mode 100644 x-api/posts/firehose-stream.mdx delete mode 100644 x-api/posts/full-archive-search-counts.mdx delete mode 100644 x-api/posts/full-archive-search.mdx delete mode 100644 x-api/posts/get-engagement-analytics.mdx delete mode 100644 x-api/posts/get-historical-metrics-for-posts.mdx delete mode 100644 x-api/posts/get-last-28hr-metrics-for-posts.mdx delete mode 100644 x-api/posts/hide-replies.mdx delete mode 100644 x-api/posts/japanese-language-firehose-stream.mdx delete mode 100644 x-api/posts/korean-language-firehose-stream.mdx delete mode 100644 x-api/posts/list-posts-timeline-by-list-id.mdx delete mode 100644 x-api/posts/portuguese-language-firehose-stream.mdx delete mode 100644 x-api/posts/post-delete-by-post-id.mdx delete mode 100644 x-api/posts/post-lookup-by-post-id.mdx delete mode 100644 x-api/posts/post-lookup-by-post-ids.mdx delete mode 100644 x-api/posts/recent-search-counts.mdx delete mode 100644 x-api/posts/recent-search.mdx delete mode 100644 x-api/posts/retrieve-posts-that-quote-a-post.mdx delete mode 100644 x-api/posts/retrieve-posts-that-repost-a-post.mdx delete mode 100644 x-api/posts/returns-post-objects-liked-by-the-provided-user-id.mdx delete mode 100644 x-api/posts/rules-count.mdx delete mode 100644 x-api/posts/rules-lookup.mdx delete mode 100644 x-api/posts/sample-10-stream.mdx delete mode 100644 x-api/posts/sample-stream.mdx delete mode 100644 x-api/posts/user-home-timeline-by-user-id.mdx delete mode 100644 x-api/posts/user-mention-timeline-by-user-id.mdx delete mode 100644 x-api/posts/user-posts-timeline-by-user-id.mdx delete mode 100644 x-api/spaces/retrieve-posts-from-a-space.mdx delete mode 100644 x-api/spaces/retrieve-the-list-of-users-who-purchased-a-ticket-to-the-given-space.mdx delete mode 100644 x-api/spaces/search-for-spaces.mdx delete mode 100644 x-api/spaces/space-lookup-by-space-id.mdx delete mode 100644 x-api/spaces/space-lookup-by-their-creators.mdx delete mode 100644 x-api/spaces/space-lookup-up-space-ids.mdx delete mode 100644 x-api/trends/trends.mdx delete mode 100644 x-api/usage/post-usage.mdx delete mode 100644 x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-blocked-by-the-authenticated-request-user.mdx delete mode 100644 x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-unblocked-by-the-authenticated-request-user.mdx delete mode 100644 x-api/users/followers-by-user-id.mdx delete mode 100644 x-api/users/following-by-user-id.mdx delete mode 100644 x-api/users/mute-user-by-user-id.mdx delete mode 100644 x-api/users/returns-repost-of-user.mdx delete mode 100644 x-api/users/returns-user-objects-that-are-blocked-by-provided-user-id.mdx delete mode 100644 x-api/users/returns-user-objects-that-are-members-of-a-list-by-the-provided-list-id.mdx delete mode 100644 x-api/users/returns-user-objects-that-are-muted-by-the-provided-user-id.mdx delete mode 100644 x-api/users/returns-user-objects-that-follow-a-list-by-the-provided-list-id.mdx delete mode 100644 x-api/users/returns-user-objects-that-have-liked-the-provided-post-id.mdx delete mode 100644 x-api/users/returns-user-objects-that-have-retweeted-the-provided-post-id.mdx delete mode 100644 x-api/users/unmute-user-by-user-id.mdx delete mode 100644 x-api/users/user-lookup-by-id.mdx delete mode 100644 x-api/users/user-lookup-by-ids.mdx delete mode 100644 x-api/users/user-lookup-by-username.mdx delete mode 100644 x-api/users/user-lookup-by-usernames.mdx delete mode 100644 x-api/users/user-lookup-me.mdx delete mode 100644 x-api/users/user-search.mdx delete mode 100644 x-api/webhooks/create-webhook-config.mdx delete mode 100644 x-api/webhooks/delete-webhook-config.mdx delete mode 100644 x-api/webhooks/get-a-list-of-webhook-configs-associated-with-a-client-app.mdx delete mode 100644 x-api/webhooks/webhook-crc-check.mdx diff --git a/openapi.json b/openapi.json index c9d3618..efece87 100644 --- a/openapi.json +++ b/openapi.json @@ -1,21218 +1,21218 @@ { - "openapi": "3.0.0", - "info": { - "description": "X API v2 available endpoints", - "version": "2.146", - "title": "X API v2", - "termsOfService": "https://developer.x.com/en/developer-terms/agreement-and-policy.html", - "contact": { - "name": "X Developers", - "url": "https://developer.x.com/" + "openapi" : "3.0.0", + "info" : { + "description" : "X API v2 available endpoints", + "version" : "2.146", + "title" : "X API v2", + "termsOfService" : "https://developer.x.com/en/developer-terms/agreement-and-policy.html", + "contact" : { + "name" : "X Developers", + "url" : "https://developer.x.com/" + }, + "license" : { + "name" : "X Developer Agreement and Policy", + "url" : "https://developer.x.com/en/developer-terms/agreement-and-policy.html" + } + }, + "paths" : { + "/2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all" : { + "post" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Account Activity" + ], + "summary" : "Create replay job", + "description" : "Creates a replay job to retrieve activities from up to the past 5 days for all subscriptions associated with a given webhook.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "license": { - "name": "X Developer Agreement and Policy", - "url": "https://developer.x.com/en/developer-terms/agreement-and-policy.html" + "operationId" : "createAccountActivityReplayJob", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The unique identifier for the webhook configuration.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + }, + { + "name" : "from_date", + "in" : "query", + "description" : "The oldest (starting) UTC timestamp (inclusive) from which events will be provided, in `yyyymmddhhmm` format.", + "required" : true, + "schema" : { + "type" : "string", + "pattern" : "^\\d{12}$", + "example" : "202504242000" + }, + "style" : "form" + }, + { + "name" : "to_date", + "in" : "query", + "description" : "The latest (ending) UTC timestamp (exclusive) up to which events will be provided, in `yyyymmddhhmm` format.", + "required" : true, + "schema" : { + "type" : "string", + "pattern" : "^\\d{12}$", + "example" : "202504242200" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ReplayJobCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } } + } }, - "paths": { - "/2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all": { - "post": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Account Activity" - ], - "summary": "Create replay job", - "description": "Creates a replay job to retrieve activities from up to the past 5 days for all subscriptions associated with a given webhook.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "createAccountActivityReplayJob", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The unique identifier for the webhook configuration.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - }, - { - "name": "from_date", - "in": "query", - "description": "The oldest (starting) UTC timestamp (inclusive) from which events will be provided, in `yyyymmddhhmm` format.", - "required": true, - "schema": { - "type": "string", - "pattern": "^\\d{12}$", - "example": "202504242000" - }, - "style": "form" - }, - { - "name": "to_date", - "in": "query", - "description": "The latest (ending) UTC timestamp (exclusive) up to which events will be provided, in `yyyymmddhhmm` format.", - "required": true, - "schema": { - "type": "string", - "pattern": "^\\d{12}$", - "example": "202504242200" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReplayJobCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "/2/account_activity/subscriptions/count" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Account Activity" + ], + "summary" : "Get subscription count", + "description" : "Retrieves a count of currently active Account Activity subscriptions.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" + }, + "operationId" : "getAccountActivitySubscriptionCount", + "parameters" : [ ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsCountGetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/account_activity/webhooks/{webhook_id}/subscriptions/all" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Account Activity" + ], + "summary" : "Validate subscription", + "description" : "Checks a user’s Account Activity subscription for a given webhook.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "/2/account_activity/subscriptions/count": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Account Activity" - ], - "summary": "Get subscription count", - "description": "Retrieves a count of currently active Account Activity subscriptions.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "getAccountActivitySubscriptionCount", - "parameters": [], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsCountGetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "validateAccountActivitySubscription", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The webhook ID to check subscription against.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsGetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "AAASubscriptions" + ], + "summary" : "Create subscription", + "description" : "Creates an Account Activity subscription for the user and the given webhook.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/all": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Account Activity" - ], - "summary": "Validate subscription", - "description": "Checks a user’s Account Activity subscription for a given webhook.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "validateAccountActivitySubscription", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The webhook ID to check subscription against.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsGetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "AAASubscriptions" - ], - "summary": "Create subscription", - "description": "Creates an Account Activity subscription for the user and the given webhook.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "createAccountActivitySubscription", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The webhook ID to check subscription against.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "createAccountActivitySubscription", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The webhook ID to check subscription against.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsCreateRequest" + } } + } }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/all/list": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Account Activity" - ], - "summary": "Get subscriptions", - "description": "Retrieves a list of all active subscriptions for a given webhook.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "getAccountActivitySubscriptions", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The webhook ID to pull subscriptions for.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsListGetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsCreateResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/account_activity/webhooks/{webhook_id}/subscriptions/all/list" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Account Activity" + ], + "summary" : "Get subscriptions", + "description" : "Retrieves a list of all active subscriptions for a given webhook.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "/2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all": { - "delete": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Account Activity" - ], - "summary": "Delete subscription", - "description": "Deletes an Account Activity subscription for the given webhook and user ID.", - "externalDocs": { - "url": "https://docs.x.com/x-api/account-activity/introduction" - }, - "operationId": "deleteAccountActivitySubscription", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The webhook ID to check subscription against.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - }, - { - "name": "user_id", - "in": "path", - "description": "User ID to unsubscribe from.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionsDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getAccountActivitySubscriptions", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The webhook ID to pull subscriptions for.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsListGetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all" : { + "delete" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Account Activity" + ], + "summary" : "Delete subscription", + "description" : "Deletes an Account Activity subscription for the given webhook and user ID.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/account-activity/introduction" }, - "/2/communities/search": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Communities" - ], - "summary": "Search Communities", - "description": "Retrieves a list of Communities matching the specified search query.", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "searchCommunities", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "Query to search communities.", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 4096, - "example": "Love" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of search results to be returned by a request.", - "required": false, - "schema": { - "type": "integer", - "minimum": 10, - "maximum": 100, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/NextToken" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/NextToken" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/CommunityFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2CommunitiesSearchResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "deleteAccountActivitySubscription", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The webhook ID to check subscription against.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + }, + { + "name" : "user_id", + "in" : "path", + "description" : "User ID to unsubscribe from.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionsDeleteResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/communities/search" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Communities" + ], + "summary" : "Search Communities", + "description" : "Retrieves a list of Communities matching the specified search query.", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/communities/{id}": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Communities" - ], - "summary": "Get Community by ID", - "description": "Retrieves details of a specific Community by its ID.", - "externalDocs": { - "url": "https://developer.x.com/en/docs/x-api/communities/api-reference/get-communities-id" - }, - "operationId": "getCommunitiesById", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Community.", - "required": true, - "schema": { - "$ref": "#/components/schemas/CommunityId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/CommunityFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2CommunitiesIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "searchCommunities", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "Query to search communities.", + "required" : true, + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 4096, + "example" : "Love" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of search results to be returned by a request.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 10, + "maximum" : 100, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/NextToken" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/NextToken" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/CommunityFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2CommunitiesSearchResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/communities/{id}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Communities" + ], + "summary" : "Get Community by ID", + "description" : "Retrieves details of a specific Community by its ID.", + "externalDocs" : { + "url" : "https://developer.x.com/en/docs/x-api/communities/api-reference/get-communities-id" }, - "/2/compliance/jobs": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Compliance" - ], - "summary": "Get Compliance Jobs", - "description": "Retrieves a list of Compliance Jobs filtered by job type and optional status.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs" - }, - "operationId": "getComplianceJobs", - "parameters": [ - { - "name": "type", - "in": "query", - "description": "Type of Compliance Job to list.", - "required": true, - "schema": { - "type": "string", - "enum": [ - "tweets", - "users" - ] - }, - "style": "form" - }, - { - "name": "status", - "in": "query", - "description": "Status of Compliance Job to list.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "in_progress", - "failed", - "complete" - ] - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/ComplianceJobFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ComplianceJobsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Compliance" - ], - "summary": "Create Compliance Job", - "description": "Creates a new Compliance Job for the specified job type.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs" - }, - "operationId": "createComplianceJobs", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateComplianceJobRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateComplianceJobResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getCommunitiesById", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Community.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/CommunityId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/CommunityFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2CommunitiesIdResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/compliance/jobs" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Compliance" + ], + "summary" : "Get Compliance Jobs", + "description" : "Retrieves a list of Compliance Jobs filtered by job type and optional status.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs" }, - "/2/compliance/jobs/{id}": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Compliance" - ], - "summary": "Get Compliance Job by ID", - "description": "Retrieves details of a specific Compliance Job by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id" - }, - "operationId": "getComplianceJobsById", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Compliance Job to retrieve.", - "required": true, - "schema": { - "$ref": "#/components/schemas/JobId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/ComplianceJobFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ComplianceJobsIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getComplianceJobs", + "parameters" : [ + { + "name" : "type", + "in" : "query", + "description" : "Type of Compliance Job to list.", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ + "tweets", + "users" + ] + }, + "style" : "form" + }, + { + "name" : "status", + "in" : "query", + "description" : "Status of Compliance Job to list.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "created", + "in_progress", + "failed", + "complete" + ] + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/ComplianceJobFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ComplianceJobsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "post" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Compliance" + ], + "summary" : "Create Compliance Job", + "description" : "Creates a new Compliance Job for the specified job type.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/post-compliance-jobs" }, - "/2/connections/all": { - "delete": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Connection" - ], - "summary": "Terminate all connections", - "description": "Terminates all active streaming connections for the authenticated application.", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "deleteAllConnections", - "parameters": [], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/KillAllConnectionsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "createComplianceJobs", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateComplianceJobRequest" + } } + }, + "required" : true }, - "/2/dm_conversations": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Create DM conversation", - "description": "Initiates a new direct message conversation with specified participants.", - "operationId": "createDmConversations", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDmConversationRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateComplianceJobResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/compliance/jobs/{id}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Compliance" + ], + "summary" : "Get Compliance Job by ID", + "description" : "Retrieves details of a specific Compliance Job by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-compliance/api-reference/get-compliance-jobs-id" }, - "/2/dm_conversations/with/{participant_id}/dm_events": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Get DM events for a DM conversation", - "description": "Retrieves direct message events for a specific conversation.", - "operationId": "getDmEventsByParticipantId", - "parameters": [ - { - "name": "participant_id", - "in": "path", - "description": "The ID of the participant user for the One to One DM conversation.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "name": "event_types", - "in": "query", - "description": "The set of event_types to include in the results.", - "required": false, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default": [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example": [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref": "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2DmConversationsWithParticipantIdDmEventsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getComplianceJobsById", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Compliance Job to retrieve.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/JobId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/ComplianceJobFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ComplianceJobsIdResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/connections/all" : { + "delete" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Connection" + ], + "summary" : "Terminate all connections", + "description" : "Terminates all active streaming connections for the authenticated application.", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/dm_conversations/with/{participant_id}/messages": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Create DM message by participant ID", - "description": "Sends a new direct message to a specific participant by their ID.", - "operationId": "createDmByParticipantId", - "parameters": [ - { - "name": "participant_id", - "in": "path", - "description": "The ID of the recipient user that will receive the DM.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMessageRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "deleteAllConnections", + "parameters" : [ ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/KillAllConnectionsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/dm_conversations" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Create DM conversation", + "description" : "Initiates a new direct message conversation with specified participants.", + "operationId" : "createDmConversations", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDmConversationRequest" + } + } + } }, - "/2/dm_conversations/{dm_conversation_id}/messages": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Create DM message by conversation ID", - "description": "Sends a new direct message to a specific conversation by its ID.", - "operationId": "createDmByConversationId", - "parameters": [ - { - "name": "dm_conversation_id", - "in": "path", - "description": "The DM Conversation ID.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMessageRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDmEventResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "201" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_conversations/with/{participant_id}/dm_events" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Get DM events for a DM conversation", + "description" : "Retrieves direct message events for a specific conversation.", + "operationId" : "getDmEventsByParticipantId", + "parameters" : [ + { + "name" : "participant_id", + "in" : "path", + "description" : "The ID of the participant user for the One to One DM conversation.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "name" : "event_types", + "in" : "query", + "description" : "The set of event_types to include in the results.", + "required" : false, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default" : [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example" : [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref" : "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2DmConversationsWithParticipantIdDmEventsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_conversations/with/{participant_id}/messages" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Create DM message by participant ID", + "description" : "Sends a new direct message to a specific participant by their ID.", + "operationId" : "createDmByParticipantId", + "parameters" : [ + { + "name" : "participant_id", + "in" : "path", + "description" : "The ID of the recipient user that will receive the DM.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMessageRequest" + } } + } }, - "/2/dm_conversations/{id}/dm_events": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Get DM events for a DM conversation", - "description": "Retrieves direct message events for a specific conversation.", - "operationId": "getDmConversationsIdDmEvents", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The DM conversation ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/DmConversationId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "name": "event_types", - "in": "query", - "description": "The set of event_types to include in the results.", - "required": false, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default": [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example": [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref": "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2DmConversationsIdDmEventsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "201" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/dm_conversations/{dm_conversation_id}/messages" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Create DM message by conversation ID", + "description" : "Sends a new direct message to a specific conversation by its ID.", + "operationId" : "createDmByConversationId", + "parameters" : [ + { + "name" : "dm_conversation_id", + "in" : "path", + "description" : "The DM Conversation ID.", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMessageRequest" + } + } + } }, - "/2/dm_events": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Get DM events", - "description": "Retrieves a list of recent direct message events across all conversations.", - "operationId": "getDmEvents", - "parameters": [ - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "name": "event_types", - "in": "query", - "description": "The set of event_types to include in the results.", - "required": false, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "MessageCreate", - "ParticipantsJoin", - "ParticipantsLeave" - ] - }, - "default": [ - "MessageCreate", - "ParticipantsLeave", - "ParticipantsJoin" - ], - "example": [ - "MessageCreate", - "ParticipantsLeave" - ] - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref": "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2DmEventsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "201" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDmEventResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_conversations/{id}/dm_events" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Get DM events for a DM conversation", + "description" : "Retrieves direct message events for a specific conversation.", + "operationId" : "getDmConversationsIdDmEvents", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The DM conversation ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/DmConversationId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "name" : "event_types", + "in" : "query", + "description" : "The set of event_types to include in the results.", + "required" : false, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default" : [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example" : [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref" : "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2DmConversationsIdDmEventsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_events" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Get DM events", + "description" : "Retrieves a list of recent direct message events across all conversations.", + "operationId" : "getDmEvents", + "parameters" : [ + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "name" : "event_types", + "in" : "query", + "description" : "The set of event_types to include in the results.", + "required" : false, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "MessageCreate", + "ParticipantsJoin", + "ParticipantsLeave" + ] + }, + "default" : [ + "MessageCreate", + "ParticipantsLeave", + "ParticipantsJoin" + ], + "example" : [ + "MessageCreate", + "ParticipantsLeave" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref" : "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2DmEventsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/dm_events/{event_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "dm.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Delete DM event", + "description" : "Deletes a specific direct message event by its ID, if owned by the authenticated user.", + "operationId" : "deleteDmEvents", + "parameters" : [ + { + "name" : "event_id", + "in" : "path", + "description" : "The ID of the direct-message event to delete.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/DmEventId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DeleteDmResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Direct Messages" + ], + "summary" : "Get DM event by ID", + "description" : "Retrieves details of a specific direct message event by its ID.", + "operationId" : "getDmEventsById", + "parameters" : [ + { + "name" : "event_id", + "in" : "path", + "description" : "dm event id.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/DmEventId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/DmEventFieldsParameter" + }, + { + "$ref" : "#/components/parameters/DmEventExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2DmEventsEventIdResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/insights/28hr" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get 28-hour Post insights", + "description" : "Retrieves engagement metrics for specified Posts over the last 28 hours.", + "operationId" : "getInsights28Hr", + "parameters" : [ + { + "name" : "tweet_ids", + "in" : "query", + "description" : "List of PostIds for 28hr metrics.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 25, + "uniqueItems" : true, + "items" : { + "$ref" : "#/components/schemas/TweetId" + }, + "example" : [ + "20" + ] + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "granularity of metrics response.", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ + "Daily", + "Hourly", + "Weekly", + "Total" + ], + "example" : "Total" + }, + "style" : "form" + }, + { + "name" : "requested_metrics", + "in" : "query", + "description" : "request metrics for historical request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "AppInstallAttempts", + "AppOpens", + "DetailExpands", + "EmailTweet", + "Engagements", + "Follows", + "HashtagClicks", + "Impressions", + "Likes", + "LinkClicks", + "MediaEngagements", + "MediaViews", + "PermalinkClicks", + "ProfileVisits", + "QuoteTweets", + "Replies", + "Retweets", + "UniqueVideoViews", + "UrlClicks", + "UserProfileClicks", + "VideoCompletions", + "VideoPlayed25Percent", + "VideoPlayed50Percent", + "VideoPlayed75Percent", + "VideoStarts", + "VideoViews" + ] + } + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/EngagementFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2Insights28hrResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/insights/historical" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get historical Post insights", + "description" : "Retrieves historical engagement metrics for specified Posts within a defined time range.", + "operationId" : "getInsightsHistorical", + "parameters" : [ + { + "name" : "tweet_ids", + "in" : "query", + "description" : "List of PostIds for historical metrics.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 25, + "uniqueItems" : true, + "items" : { + "$ref" : "#/components/schemas/TweetId" + }, + "example" : [ + "20" + ] + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "granularity of metrics response.", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ + "Daily", + "Hourly", + "Weekly", + "Total" + ], + "example" : "Total" + }, + "style" : "form" + }, + { + "name" : "requested_metrics", + "in" : "query", + "description" : "request metrics for historical request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "AppInstallAttempts", + "AppOpens", + "DetailExpands", + "EmailTweet", + "Engagements", + "Follows", + "HashtagClicks", + "Impressions", + "Likes", + "LinkClicks", + "MediaEngagements", + "MediaViews", + "PermalinkClicks", + "ProfileVisits", + "QuoteTweets", + "Replies", + "Retweets", + "UniqueVideoViews", + "UrlClicks", + "UserProfileClicks", + "VideoCompletions", + "VideoPlayed25Percent", + "VideoPlayed50Percent", + "VideoPlayed75Percent", + "VideoStarts", + "VideoViews" + ] + } + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/EngagementFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2InsightsHistoricalResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/likes/compliance/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Compliance" + ], + "summary" : "Stream Likes compliance data", + "description" : "Streams all compliance data related to Likes for Users.", + "operationId" : "streamLikesCompliance", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Likes Compliance events will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Likes Compliance events will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/LikesComplianceStreamResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/dm_events/{event_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "dm.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Delete DM event", - "description": "Deletes a specific direct message event by its ID, if owned by the authenticated user.", - "operationId": "deleteDmEvents", - "parameters": [ - { - "name": "event_id", - "in": "path", - "description": "The ID of the direct-message event to delete.", - "required": true, - "schema": { - "$ref": "#/components/schemas/DmEventId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteDmResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "get": { - "security": [ - { - "OAuth2UserToken": [ - "dm.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Direct Messages" - ], - "summary": "Get DM event by ID", - "description": "Retrieves details of a specific direct message event by its ID.", - "operationId": "getDmEventsById", - "parameters": [ - { - "name": "event_id", - "in": "path", - "description": "dm event id.", - "required": true, - "schema": { - "$ref": "#/components/schemas/DmEventId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/DmEventFieldsParameter" - }, - { - "$ref": "#/components/parameters/DmEventExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2DmEventsEventIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/likes/firehose/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Likes" + ], + "summary" : "Stream all Likes", + "description" : "Streams all public Likes in real-time.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-likes-firehose-stream" + }, + "operationId" : "streamLikesFirehose", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 20, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/LikeWithTweetAuthorFieldsParameter" + }, + { + "$ref" : "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingLikeResponseV2" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/insights/28hr": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get 28-hour Post insights", - "description": "Retrieves engagement metrics for specified Posts over the last 28 hours.", - "operationId": "getInsights28Hr", - "parameters": [ - { - "name": "tweet_ids", - "in": "query", - "description": "List of PostIds for 28hr metrics.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 25, - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/TweetId" - }, - "example": [ - "20" - ] - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "granularity of metrics response.", - "required": true, - "schema": { - "type": "string", - "enum": [ - "Daily", - "Hourly", - "Weekly", - "Total" - ], - "example": "Total" - }, - "style": "form" - }, - { - "name": "requested_metrics", - "in": "query", - "description": "request metrics for historical request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "AppInstallAttempts", - "AppOpens", - "DetailExpands", - "EmailTweet", - "Engagements", - "Follows", - "HashtagClicks", - "Impressions", - "Likes", - "LinkClicks", - "MediaEngagements", - "MediaViews", - "PermalinkClicks", - "ProfileVisits", - "QuoteTweets", - "Replies", - "Retweets", - "UniqueVideoViews", - "UrlClicks", - "UserProfileClicks", - "VideoCompletions", - "VideoPlayed25Percent", - "VideoPlayed50Percent", - "VideoPlayed75Percent", - "VideoStarts", - "VideoViews" - ] - } - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/EngagementFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2Insights28hrResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/likes/sample10/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Likes" + ], + "summary" : "Stream sampled Likes", + "description" : "Streams a 10% sample of public Likes in real-time.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/likes/firehose/api-reference/get-likes-sample10-stream" + }, + "operationId" : "streamLikesSample10", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 2, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/LikeWithTweetAuthorFieldsParameter" + }, + { + "$ref" : "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingLikeResponseV2" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/insights/historical": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get historical Post insights", - "description": "Retrieves historical engagement metrics for specified Posts within a defined time range.", - "operationId": "getInsightsHistorical", - "parameters": [ - { - "name": "tweet_ids", - "in": "query", - "description": "List of PostIds for historical metrics.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 25, - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/TweetId" - }, - "example": [ - "20" - ] - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "granularity of metrics response.", - "required": true, - "schema": { - "type": "string", - "enum": [ - "Daily", - "Hourly", - "Weekly", - "Total" - ], - "example": "Total" - }, - "style": "form" - }, - { - "name": "requested_metrics", - "in": "query", - "description": "request metrics for historical request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "AppInstallAttempts", - "AppOpens", - "DetailExpands", - "EmailTweet", - "Engagements", - "Follows", - "HashtagClicks", - "Impressions", - "Likes", - "LinkClicks", - "MediaEngagements", - "MediaViews", - "PermalinkClicks", - "ProfileVisits", - "QuoteTweets", - "Replies", - "Retweets", - "UniqueVideoViews", - "UrlClicks", - "UserProfileClicks", - "VideoCompletions", - "VideoPlayed25Percent", - "VideoPlayed50Percent", - "VideoPlayed75Percent", - "VideoStarts", - "VideoViews" - ] - } - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/EngagementFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2InsightsHistoricalResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/lists" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.read", + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Create List", + "description" : "Creates a new List for the authenticated user.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists" + }, + "operationId" : "createLists", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListCreateRequest" + } } + } }, - "/2/likes/compliance/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Compliance" - ], - "summary": "Stream Likes compliance data", - "description": "Streams all compliance data related to Likes for Users.", - "operationId": "streamLikesCompliance", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Likes Compliance events will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Likes Compliance events will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LikesComplianceStreamResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/lists/{id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Delete List", + "description" : "Deletes a specific List owned by the authenticated user by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id" }, - "/2/likes/firehose/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Likes" - ], - "summary": "Stream all Likes", - "description": "Streams all public Likes in real-time.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-likes-firehose-stream" - }, - "operationId": "streamLikesFirehose", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 20, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" - }, - { - "$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingLikeResponseV2" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "deleteLists", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List to delete.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListDeleteResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Get List by ID", + "description" : "Retrieves details of a specific List by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id" }, - "/2/likes/sample10/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Likes" - ], - "summary": "Stream sampled Likes", - "description": "Streams a 10% sample of public Likes in real-time.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/likes/firehose/api-reference/get-likes-sample10-stream" - }, - "operationId": "streamLikesSample10", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 2, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Likes will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/LikeWithTweetAuthorFieldsParameter" - }, - { - "$ref": "#/components/parameters/LikeWithTweetAuthorExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingLikeResponseV2" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "getListsById", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/ListFieldsParameter" + }, + { + "$ref" : "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ListsIdResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "put" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Update List", + "description" : "Updates the details of a specific List owned by the authenticated user by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id" }, - "/2/lists": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "list.read", - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Create List", - "description": "Creates a new List for the authenticated user.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/post-lists" - }, - "operationId": "createLists", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "updateLists", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List to modify.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListUpdateRequest" + } } + } }, - "/2/lists/{id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Delete List", - "description": "Deletes a specific List owned by the authenticated user by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/delete-lists-id" - }, - "operationId": "deleteLists", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List to delete.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Get List by ID", - "description": "Retrieves details of a specific List by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-lists-id" - }, - "operationId": "getListsById", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/ListFieldsParameter" - }, - { - "$ref": "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ListsIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "put": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Update List", - "description": "Updates the details of a specific List owned by the authenticated user by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/manage-lists/api-reference/put-lists-id" - }, - "operationId": "updateLists", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List to modify.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListUpdateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListUpdateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListUpdateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/lists/{id}/followers" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get List followers", + "description" : "Retrieves a list of Users who follow a specific List by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" }, - "/2/lists/{id}/followers": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get List followers", - "description": "Retrieves a list of Users who follow a specific List by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" - }, - "operationId": "getListsFollowers", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ListsIdFollowersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getListsFollowers", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ListsIdFollowersResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/lists/{id}/members" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get List members", + "description" : "Retrieves a list of Users who are members of a specific List by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" }, - "/2/lists/{id}/members": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get List members", - "description": "Retrieves a list of Users who are members of a specific List by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" - }, - "operationId": "getListsMembers", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ListsIdMembersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Add List member", - "description": "Adds a User to a specific List by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members" - }, - "operationId": "addListsMember", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List for which to add a member.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListAddUserRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListMutateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getListsMembers", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ListsIdMembersResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Add List member", + "description" : "Adds a User to a specific List by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/post-lists-id-members" }, - "/2/lists/{id}/members/{user_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Remove List member", - "description": "Removes a User from a specific List by its ID and the User’s ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id" - }, - "operationId": "removeListsMemberByUserId", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List to remove a member.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - }, - { - "name": "user_id", - "in": "path", - "description": "The ID of User that will be removed from the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListMutateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "addListsMember", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List for which to add a member.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListAddUserRequest" + } } + } }, - "/2/lists/{id}/tweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get List Posts", - "description": "Retrieves a list of Posts associated with a specific List by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets" - }, - "operationId": "getListsPosts", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2ListsIdTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListMutateResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/lists/{id}/members/{user_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Remove List member", + "description" : "Removes a User from a specific List by its ID and the User’s ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/delete-lists-id-members-user_id" }, - "/2/media": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Get Media by media keys", - "description": "Retrieves details of Media files by their media keys.", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "getMediaByMediaKeys", - "parameters": [ - { - "name": "media_keys", - "in": "query", - "description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/MediaKey" - } - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2MediaResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "removeListsMemberByUserId", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List to remove a member.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + }, + { + "name" : "user_id", + "in" : "path", + "description" : "The ID of User that will be removed from the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListMutateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/lists/{id}/tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get List Posts", + "description" : "Retrieves a list of Posts associated with a specific List by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-tweets/api-reference/get-lists-id-tweets" }, - "/2/media/analytics": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Get Media analytics", - "description": "Retrieves analytics data for media.", - "operationId": "getMediaAnalytics", - "parameters": [ - { - "name": "media_keys", - "in": "query", - "description": "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/MediaKey" - } - }, - "explode": false, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "The granularity for the search counts results.", - "required": true, - "schema": { - "type": "string", - "enum": [ - "hourly", - "daily", - "total" - ], - "default": "daily" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/MediaAnalyticsFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaAnalytics" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getListsPosts", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2ListsIdTweetsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Get Media by media keys", + "description" : "Retrieves details of Media files by their media keys.", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/media/metadata": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Create Media metadata", - "description": "Creates metadata for a Media file.", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-metadata-create#metadata-create" - }, - "operationId": "createMediaMetadata", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetadataCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetadataCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getMediaByMediaKeys", + "parameters" : [ + { + "name" : "media_keys", + "in" : "query", + "description" : "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/MediaKey" + } + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2MediaResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/analytics" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Get Media analytics", + "description" : "Retrieves analytics data for media.", + "operationId" : "getMediaAnalytics", + "parameters" : [ + { + "name" : "media_keys", + "in" : "query", + "description" : "A comma separated list of Media Keys. Up to 100 are allowed in a single request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/MediaKey" + } + }, + "explode" : false, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "The granularity for the search counts results.", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ + "hourly", + "daily", + "total" + ], + "default" : "daily" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/MediaAnalyticsFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaAnalytics" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/metadata" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Create Media metadata", + "description" : "Creates metadata for a Media file.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-metadata-create#metadata-create" }, - "/2/media/subtitles": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Delete Media subtitles", - "description": "Deletes subtitles for a specific Media file.", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-subtitles-delete" - }, - "operationId": "deleteMediaSubtitles", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubtitlesDeleteRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubtitlesDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Create Media subtitles", - "description": "Creates subtitles for a specific Media file.", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-subtitles-create" - }, - "operationId": "createMediaSubtitles", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubtitlesCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubtitlesCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "createMediaMetadata", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MetadataCreateRequest" + } } + } }, - "/2/media/upload": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Get Media upload status", - "description": "Retrieves the status of a Media upload by its ID.", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-upload-status#media-upload-status" - }, - "operationId": "getMediaUploadStatus", - "parameters": [ - { - "name": "media_id", - "in": "query", - "description": "Media id for the requested media upload status.", - "required": true, - "schema": { - "$ref": "#/components/schemas/MediaId" - }, - "style": "form" - }, - { - "name": "command", - "in": "query", - "description": "The command for the media upload request.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "STATUS" - ] - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Upload media", - "description": "Uploads a media file for use in posts or other content.", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-upload" - }, - "operationId": "mediaUpload", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadRequestOneShot" - } - }, - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/MediaUploadRequestOneShot" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MetadataCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/subtitles" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Delete Media subtitles", + "description" : "Deletes subtitles for a specific Media file.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-subtitles-delete" }, - "/2/media/upload/initialize": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Initialize media upload", - "description": "Initializes a media upload.", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-upload" - }, - "operationId": "initializeMediaUpload", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadConfigRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "deleteMediaSubtitles", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubtitlesDeleteRequest" + } } + } }, - "/2/media/upload/{id}/append": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Append Media upload", - "description": "Appends data to a Media upload request.", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-upload" - }, - "operationId": "appendMediaUpload", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The media identifier for the media to perform the append operation.", - "required": true, - "schema": { - "$ref": "#/components/schemas/MediaId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadAppendRequest" - } - }, - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/MediaUploadAppendRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadAppendResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubtitlesDeleteResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Create Media subtitles", + "description" : "Creates subtitles for a specific Media file.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-subtitles-create" }, - "/2/media/upload/{id}/finalize": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "media.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Finalize Media upload", - "description": "Finalizes a Media upload request.", - "externalDocs": { - "url": "https://docs.x.com/x-api/media/media-upload" - }, - "operationId": "finalizeMediaUpload", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The media id of the targeted media to finalize.", - "required": true, - "schema": { - "$ref": "#/components/schemas/MediaId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MediaUploadResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "createMediaSubtitles", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubtitlesCreateRequest" + } } + } }, - "/2/media/{media_key}": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Media" - ], - "summary": "Get Media by media key", - "description": "Retrieves details of a specific Media file by its media key.", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "getMediaByMediaKey", - "parameters": [ - { - "name": "media_key", - "in": "path", - "description": "A single Media Key.", - "required": true, - "schema": { - "$ref": "#/components/schemas/MediaKey" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2MediaMediaKeyResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubtitlesCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/upload" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Get Media upload status", + "description" : "Retrieves the status of a Media upload by its ID.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-upload-status#media-upload-status" }, - "/2/notes": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Community Notes" - ], - "summary": "Create a Community Note", - "description": "Creates a community note endpoint for LLM use case.", - "externalDocs": { - "url": "https://communitynotes.x.com/guide/api/overview" - }, - "operationId": "createNotes", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateNoteRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteNoteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getMediaUploadStatus", + "parameters" : [ + { + "name" : "media_id", + "in" : "query", + "description" : "Media id for the requested media upload status.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/MediaId" + }, + "style" : "form" + }, + { + "name" : "command", + "in" : "query", + "description" : "The command for the media upload request.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "STATUS" + ] + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Upload media", + "description" : "Uploads a media file for use in posts or other content.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-upload" }, - "/2/notes/search/notes_written": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Community Notes" - ], - "summary": "Search for Community Notes Written", - "description": "Returns all the community notes written by the user.", - "externalDocs": { - "url": "https://docs.x.com/x-api/community-notes/search-for-community-notes-written" - }, - "operationId": "searchNotesWritten", - "parameters": [ - { - "name": "test_mode", - "in": "query", - "description": "If true, return the notes the caller wrote for the test. If false, return the notes the caller wrote on the product.", - "required": true, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "Pagination token to get next set of posts eligible for notes.", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "Max results to return.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/NoteFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2NotesSearchNotesWrittenResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "mediaUpload", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadRequestOneShot" + } + }, + "multipart/form-data" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadRequestOneShot" + } } + } }, - "/2/notes/search/posts_eligible_for_notes": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Community Notes" - ], - "summary": "Search for Posts Eligible for Community Notes", - "description": "Returns all the posts that are eligible for community notes.", - "externalDocs": { - "url": "https://docs.x.com/x-api/community-notes/search-for-posts-eligible-for-community-notes" - }, - "operationId": "searchForEligiblePosts", - "parameters": [ - { - "name": "test_mode", - "in": "query", - "description": "If true, return a list of posts that are for the test. If false, return a list of posts that the bots can write proposed notes on the product.", - "required": true, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "Pagination token to get next set of posts eligible for notes.", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "Max results to return.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2NotesSearchPostsEligibleForNotesResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/upload/initialize" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Initialize media upload", + "description" : "Initializes a media upload.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-upload" }, - "/2/notes/{id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.write" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Community Notes" - ], - "summary": "Delete a Community Note", - "description": "Deletes a community note.", - "externalDocs": { - "url": "https://communitynotes.x.com/guide/api/overview" - }, - "operationId": "deleteNotes", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The community note id to delete.", - "required": true, - "schema": { - "$ref": "#/components/schemas/NoteId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateNoteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "initializeMediaUpload", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadConfigRequest" + } } + } }, - "/2/openapi.json": { - "get": { - "tags": [ - "General" - ], - "summary": "Get OpenAPI Spec.", - "description": "Retrieves the full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", - "operationId": "getOpenApiSpec", - "parameters": [], - "responses": { - "200": { - "description": "The request was successful", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/media/upload/{id}/append" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Append Media upload", + "description" : "Appends data to a Media upload request.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-upload" }, - "/2/spaces": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces" - ], - "summary": "Get Spaces by IDs", - "description": "Retrieves details of multiple Spaces by their IDs.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces" - }, - "operationId": "getSpacesByIds", - "parameters": [ - { - "name": "ids", - "in": "query", - "description": "The list of Space IDs to return.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "type": "string", - "description": "The unique identifier of this Space.", - "pattern": "^[a-zA-Z0-9]{1,13}$", - "example": "1SLjjRYNejbKM" - } - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref": "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TopicFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "appendMediaUpload", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The media identifier for the media to perform the append operation.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/MediaId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadAppendRequest" + } + }, + "multipart/form-data" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadAppendRequest" + } } + } }, - "/2/spaces/by/creator_ids": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces" - ], - "summary": "Get Spaces by creator IDs", - "description": "Retrieves details of Spaces created by specified User IDs.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids" - }, - "operationId": "getSpacesByCreatorIds", - "parameters": [ - { - "name": "user_ids", - "in": "query", - "description": "The IDs of Users to search through.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref": "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TopicFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesByCreatorIdsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadAppendResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/upload/{id}/finalize" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "media.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Finalize Media upload", + "description" : "Finalizes a Media upload request.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/media/media-upload" }, - "/2/spaces/search": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces" - ], - "summary": "Search Spaces", - "description": "Retrieves a list of Spaces matching the specified search query.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search" - }, - "operationId": "searchSpaces", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "The search query.", - "required": true, - "example": "crypto", - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 2048, - "example": "crypto" - }, - "style": "form" - }, - { - "name": "state", - "in": "query", - "description": "The state of Spaces to search for.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "live", - "scheduled", - "all" - ], - "default": "all" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The number of results to return.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref": "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TopicFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesSearchResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "finalizeMediaUpload", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The media id of the targeted media to finalize.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/MediaId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MediaUploadResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/media/{media_key}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Media" + ], + "summary" : "Get Media by media key", + "description" : "Retrieves details of a specific Media file by its media key.", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/spaces/{id}": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces" - ], - "summary": "Get space by ID", - "description": "Retrieves details of a specific space by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id" - }, - "operationId": "getSpacesById", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Space to be retrieved.", - "required": true, - "example": "1YqKDqWqdPLsV", - "schema": { - "type": "string", - "description": "The unique identifier of this Space.", - "pattern": "^[a-zA-Z0-9]{1,13}$", - "example": "1SLjjRYNejbKM" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/SpaceFieldsParameter" - }, - { - "$ref": "#/components/parameters/SpaceExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/TopicFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getMediaByMediaKey", + "parameters" : [ + { + "name" : "media_key", + "in" : "path", + "description" : "A single Media Key.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/MediaKey" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2MediaMediaKeyResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/notes" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Community Notes" + ], + "summary" : "Create a Community Note", + "description" : "Creates a community note endpoint for LLM use case.", + "externalDocs" : { + "url" : "https://communitynotes.x.com/guide/api/overview" }, - "/2/spaces/{id}/buyers": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces", - "Tweets" - ], - "summary": "Get Space ticket buyers", - "description": "Retrieves a list of Users who purchased tickets to a specific Space by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers" - }, - "operationId": "getSpacesBuyers", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Space to be retrieved.", - "required": true, - "example": "1YqKDqWqdPLsV", - "schema": { - "type": "string", - "description": "The unique identifier of this Space.", - "pattern": "^[a-zA-Z0-9]{1,13}$", - "example": "1SLjjRYNejbKM" - }, - "style": "simple" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesIdBuyersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "createNotes", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateNoteRequest" + } } + } }, - "/2/spaces/{id}/tweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "space.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Spaces", - "Tweets" - ], - "summary": "Get Space Posts", - "description": "Retrieves a list of Posts shared in a specific Space by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets" - }, - "operationId": "getSpacesPosts", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Space to be retrieved.", - "required": true, - "example": "1YqKDqWqdPLsV", - "schema": { - "type": "string", - "description": "The unique identifier of this Space.", - "pattern": "^[a-zA-Z0-9]{1,13}$", - "example": "1SLjjRYNejbKM" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The number of Posts to fetch from the provided space. If not provided, the value will default to the maximum of 100.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100, - "example": 25 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2SpacesIdTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DeleteNoteResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/notes/search/notes_written" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Community Notes" + ], + "summary" : "Search for Community Notes Written", + "description" : "Returns all the community notes written by the user.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/community-notes/search-for-community-notes-written" }, - "/2/trends/by/woeid/{woeid}": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Trends" - ], - "summary": "Get Trends by WOEID", - "description": "Retrieves trending topics for a specific location identified by its WOEID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/trends/api-reference/get-trends-by-woeid" - }, - "operationId": "getTrendsByWoeid", - "parameters": [ - { - "name": "woeid", - "in": "path", - "description": "The WOEID of the place to lookup a trend for.", - "required": true, - "example": "2244994945", - "schema": { - "type": "integer", - "format": "int32" - }, - "style": "simple" - }, - { - "name": "max_trends", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "format": "int32", - "default": 20 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TrendFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TrendsByWoeidWoeidResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "searchNotesWritten", + "parameters" : [ + { + "name" : "test_mode", + "in" : "query", + "description" : "If true, return the notes the caller wrote for the test. If false, return the notes the caller wrote on the product.", + "required" : true, + "schema" : { + "type" : "boolean" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "Pagination token to get next set of posts eligible for notes.", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "Max results to return.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/NoteFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2NotesSearchNotesWrittenResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/notes/search/posts_eligible_for_notes" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Community Notes" + ], + "summary" : "Search for Posts Eligible for Community Notes", + "description" : "Returns all the posts that are eligible for community notes.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/community-notes/search-for-posts-eligible-for-community-notes" }, - "/2/tweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get Posts by IDs", - "description": "Retrieves details of multiple Posts by their IDs.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets" - }, - "operationId": "getPostsByIds", - "parameters": [ - { - "name": "ids", - "in": "query", - "description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/TweetId" - } - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Create Post", - "description": "Creates a new Post for the authenticated user.", - "externalDocs": { - "url": "https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets" - }, - "operationId": "createPosts", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetCreateRequest" - } - } - }, - "required": true - }, - "responses": { - "201": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "searchForEligiblePosts", + "parameters" : [ + { + "name" : "test_mode", + "in" : "query", + "description" : "If true, return a list of posts that are for the test. If false, return a list of posts that the bots can write proposed notes on the product.", + "required" : true, + "schema" : { + "type" : "boolean" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "Pagination token to get next set of posts eligible for notes.", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "Max results to return.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2NotesSearchPostsEligibleForNotesResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/notes/{id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.write" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Community Notes" + ], + "summary" : "Delete a Community Note", + "description" : "Deletes a community note.", + "externalDocs" : { + "url" : "https://communitynotes.x.com/guide/api/overview" }, - "/2/tweets/analytics": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get Post analytics", - "description": "Retrieves analytics data for specified Posts within a defined time range.", - "operationId": "getPostsAnalytics", - "parameters": [ - { - "name": "ids", - "in": "query", - "description": "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/TweetId" - } - }, - "explode": false, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", - "required": true, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "The granularity for the search counts results.", - "required": true, - "schema": { - "type": "string", - "enum": [ - "hourly", - "daily", - "weekly", - "total" - ], - "default": "total" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/AnalyticsFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Analytics" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "deleteNotes", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The community note id to delete.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/NoteId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateNoteResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/openapi.json" : { + "get" : { + "tags" : [ + "General" + ], + "summary" : "Get OpenAPI Spec.", + "description" : "Retrieves the full OpenAPI Specification in JSON format. (See https://github.com/OAI/OpenAPI-Specification/blob/master/README.md)", + "operationId" : "getOpenApiSpec", + "parameters" : [ ], + "responses" : { + "200" : { + "description" : "The request was successful", + "content" : { + "application/json" : { + "schema" : { + "type" : "object" + } + } } + } + } + } + }, + "/2/spaces" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces" + ], + "summary" : "Get Spaces by IDs", + "description" : "Retrieves details of multiple Spaces by their IDs.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces" }, - "/2/tweets/compliance/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Compliance" - ], - "summary": "Stream Posts compliance data", - "description": "Streams all compliance data related to Posts.", - "operationId": "streamPostsCompliance", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post Compliance events will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Post Compliance events will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetComplianceStreamResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "getSpacesByIds", + "parameters" : [ + { + "name" : "ids", + "in" : "query", + "description" : "The list of Space IDs to return.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "type" : "string", + "description" : "The unique identifier of this Space.", + "pattern" : "^[a-zA-Z0-9]{1,13}$", + "example" : "1SLjjRYNejbKM" + } + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref" : "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TopicFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/spaces/by/creator_ids" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces" + ], + "summary" : "Get Spaces by creator IDs", + "description" : "Retrieves details of Spaces created by specified User IDs.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-by-creator-ids" }, - "/2/tweets/counts/all": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get count of all Posts", - "description": "Retrieves the count of Posts matching a search query from the full archive.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" - }, - "operationId": "getPostsCountsAll", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 4096, - "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "since_id", - "in": "query", - "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "The granularity for the search counts results.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "minute", - "hour", - "day" - ], - "default": "hour" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/SearchCountFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsCountsAllResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getSpacesByCreatorIds", + "parameters" : [ + { + "name" : "user_ids", + "in" : "query", + "description" : "The IDs of Users to search through.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref" : "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TopicFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesByCreatorIdsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/spaces/search" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces" + ], + "summary" : "Search Spaces", + "description" : "Retrieves a list of Spaces matching the specified search query.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/search/api-reference/get-spaces-search" }, - "/2/tweets/counts/recent": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get count of recent Posts", - "description": "Retrieves the count of Posts from the last 7 days matching a search query.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent" - }, - "operationId": "getPostsCountsRecent", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 4096, - "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "since_id", - "in": "query", - "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "granularity", - "in": "query", - "description": "The granularity for the search counts results.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "minute", - "hour", - "day" - ], - "default": "hour" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/SearchCountFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsCountsRecentResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "searchSpaces", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "The search query.", + "required" : true, + "example" : "crypto", + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 2048, + "example" : "crypto" + }, + "style" : "form" + }, + { + "name" : "state", + "in" : "query", + "description" : "The state of Spaces to search for.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "live", + "scheduled", + "all" + ], + "default" : "all" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The number of results to return.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref" : "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TopicFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesSearchResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/spaces/{id}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces" + ], + "summary" : "Get space by ID", + "description" : "Retrieves details of a specific space by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id" }, - "/2/tweets/firehose/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Tweets" - ], - "summary": "Stream all Posts", - "description": "Streams all public Posts in real-time.", - "operationId": "streamPostsFirehose", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 20, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "getSpacesById", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Space to be retrieved.", + "required" : true, + "example" : "1YqKDqWqdPLsV", + "schema" : { + "type" : "string", + "description" : "The unique identifier of this Space.", + "pattern" : "^[a-zA-Z0-9]{1,13}$", + "example" : "1SLjjRYNejbKM" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/SpaceFieldsParameter" + }, + { + "$ref" : "#/components/parameters/SpaceExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TopicFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesIdResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/spaces/{id}/buyers" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces", + "Tweets" + ], + "summary" : "Get Space ticket buyers", + "description" : "Retrieves a list of Users who purchased tickets to a specific Space by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-buyers" }, - "/2/tweets/firehose/stream/lang/en": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Tweets" - ], - "summary": "Stream English Posts", - "description": "Streams all public English-language Posts in real-time.", - "operationId": "streamPostsFirehoseEn", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 8, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "getSpacesBuyers", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Space to be retrieved.", + "required" : true, + "example" : "1YqKDqWqdPLsV", + "schema" : { + "type" : "string", + "description" : "The unique identifier of this Space.", + "pattern" : "^[a-zA-Z0-9]{1,13}$", + "example" : "1SLjjRYNejbKM" + }, + "style" : "simple" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesIdBuyersResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/spaces/{id}/tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "space.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Spaces", + "Tweets" + ], + "summary" : "Get Space Posts", + "description" : "Retrieves a list of Posts shared in a specific Space by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces/lookup/api-reference/get-spaces-id-tweets" }, - "/2/tweets/firehose/stream/lang/ja": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Tweets" - ], - "summary": "Stream Japanese Posts", - "description": "Streams all public Japanese-language Posts in real-time.", - "operationId": "streamPostsFirehoseJa", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 2, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "getSpacesPosts", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Space to be retrieved.", + "required" : true, + "example" : "1YqKDqWqdPLsV", + "schema" : { + "type" : "string", + "description" : "The unique identifier of this Space.", + "pattern" : "^[a-zA-Z0-9]{1,13}$", + "example" : "1SLjjRYNejbKM" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The number of Posts to fetch from the provided space. If not provided, the value will default to the maximum of 100.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100, + "example" : 25 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2SpacesIdTweetsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/trends/by/woeid/{woeid}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Trends" + ], + "summary" : "Get Trends by WOEID", + "description" : "Retrieves trending topics for a specific location identified by its WOEID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/trends/api-reference/get-trends-by-woeid" }, - "/2/tweets/firehose/stream/lang/ko": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Tweets" - ], - "summary": "Stream Korean Posts", - "description": "Streams all public Korean-language Posts in real-time.", - "operationId": "streamPostsFirehoseKo", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 2, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "getTrendsByWoeid", + "parameters" : [ + { + "name" : "woeid", + "in" : "path", + "description" : "The WOEID of the place to lookup a trend for.", + "required" : true, + "example" : "2244994945", + "schema" : { + "type" : "integer", + "format" : "int32" + }, + "style" : "simple" + }, + { + "name" : "max_trends", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 50, + "format" : "int32", + "default" : 20 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TrendFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TrendsByWoeidWoeidResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get Posts by IDs", + "description" : "Retrieves details of multiple Posts by their IDs.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets" }, - "/2/tweets/firehose/stream/lang/pt": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Tweets" - ], - "summary": "Stream Portuguese Posts", - "description": "Streams all public Portuguese-language Posts in real-time.", - "operationId": "streamPostsFirehosePt", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 2, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "getPostsByIds", + "parameters" : [ + { + "name" : "ids", + "in" : "query", + "description" : "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Create Post", + "description" : "Creates a new Post for the authenticated user.", + "externalDocs" : { + "url" : "https://developer.x.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/post-tweets" }, - "/2/tweets/label/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Compliance" - ], - "summary": "Stream Post labels", - "description": "Streams all labeling events applied to Posts.", - "operationId": "streamLabelsCompliance", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post labels will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Post labels will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetLabelStreamResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "createPosts", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetCreateRequest" + } } + }, + "required" : true }, - "/2/tweets/sample/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Tweets" - ], - "summary": "Stream sampled Posts", - "description": "Streams a 1% sample of public Posts in real-time.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/api-reference/get-tweets-sample-stream" - }, - "operationId": "streamPostsSample", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "responses" : { + "201" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/analytics" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get Post analytics", + "description" : "Retrieves analytics data for specified Posts within a defined time range.", + "operationId" : "getPostsAnalytics", + "parameters" : [ + { + "name" : "ids", + "in" : "query", + "description" : "A comma separated list of Post IDs. Up to 100 are allowed in a single request.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "explode" : false, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.", + "required" : true, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "The granularity for the search counts results.", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ + "hourly", + "daily", + "weekly", + "total" + ], + "default" : "total" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/AnalyticsFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Analytics" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/compliance/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Compliance" + ], + "summary" : "Stream Posts compliance data", + "description" : "Streams all compliance data related to Posts.", + "operationId" : "streamPostsCompliance", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 4, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post Compliance events will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Post Compliance events will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetComplianceStreamResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/tweets/sample10/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Tweets" - ], - "summary": "Stream 10% sampled Posts", - "description": "Streams a 10% sample of public Posts in real-time.", - "operationId": "streamPostsSample10", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 2, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsSample10StreamResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "x-twitter-streaming" : true + } + }, + "/2/tweets/counts/all" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get count of all Posts", + "description" : "Retrieves the count of Posts matching a search query from the full archive.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" + }, + "operationId" : "getPostsCountsAll", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required" : true, + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 4096, + "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "The granularity for the search counts results.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "minute", + "hour", + "day" + ], + "default" : "hour" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/SearchCountFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsCountsAllResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/counts/recent" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get count of recent Posts", + "description" : "Retrieves the count of Posts from the last 7 days matching a search query.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/counts/api-reference/get-tweets-counts-recent" }, - "/2/tweets/search/all": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Search all Posts", - "description": "Retrieves Posts from the full archive matching a search query.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" - }, - "operationId": "searchPostsAll", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 4096, - "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "since_id", - "in": "query", - "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of search results to be returned by a request.", - "required": false, - "schema": { - "type": "integer", - "minimum": 10, - "maximum": 500, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "sort_order", - "in": "query", - "description": "This order in which to return results.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "recency", - "relevancy" - ] - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsSearchAllResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getPostsCountsRecent", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required" : true, + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 4096, + "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "granularity", + "in" : "query", + "description" : "The granularity for the search counts results.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "minute", + "hour", + "day" + ], + "default" : "hour" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/SearchCountFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsCountsRecentResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/firehose/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Tweets" + ], + "summary" : "Stream all Posts", + "description" : "Streams all public Posts in real-time.", + "operationId" : "streamPostsFirehose", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 20, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/search/recent": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Search recent Posts", - "description": "Retrieves Posts from the last 7 days matching a search query.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent" - }, - "operationId": "searchPostsRecent", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 4096, - "example": "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "since_id", - "in": "query", - "description": "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "Returns results with a Post ID less than (that is, older than) the specified ID.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of search results to be returned by a request.", - "required": false, - "schema": { - "type": "integer", - "minimum": 10, - "maximum": 100, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "sort_order", - "in": "query", - "description": "This order in which to return results.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "recency", - "relevancy" - ] - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsSearchRecentResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/firehose/stream/lang/en" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Tweets" + ], + "summary" : "Stream English Posts", + "description" : "Streams all public English-language Posts in real-time.", + "operationId" : "streamPostsFirehoseEn", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 8, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/search/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Tweets" - ], - "summary": "Stream filtered Posts", - "description": "Streams Posts in real-time matching the active rule set.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream" - }, - "operationId": "streamPosts", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FilteredStreamingTweetResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "x-twitter-streaming" : true + } + }, + "/2/tweets/firehose/stream/lang/ja" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Tweets" + ], + "summary" : "Stream Japanese Posts", + "description" : "Streams all public Japanese-language Posts in real-time.", + "operationId" : "streamPostsFirehoseJa", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 2, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/search/stream/rules": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Tweets" - ], - "summary": "Get stream rules", - "description": "Retrieves the active rule set or a subset of rules for the filtered stream.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules" - }, - "operationId": "getRules", - "parameters": [ - { - "name": "ids", - "in": "query", - "description": "A comma-separated list of Rule IDs.", - "required": false, - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RuleId" - } - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32", - "default": 1000 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This value is populated by passing the 'next_token' returned in a request to paginate through results.", - "required": false, - "schema": { - "type": "string", - "minLength": 16, - "maxLength": 16 - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RulesLookupResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Tweets" - ], - "summary": "Update stream rules", - "description": "Adds or deletes rules from the active rule set for the filtered stream.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/post-tweets-search-stream-rules" - }, - "operationId": "updateRules", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "description": "Dry Run can be used with both the add and delete action, with the expected result given, but without actually taking any action in the system (meaning the end state will always be as it was when the request was submitted). This is particularly useful to validate rule changes.", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "name": "delete_all", - "in": "query", - "description": "Delete All can be used to delete all of the rules associated this client app, it should be specified with no other parameters. Once deleted, rules cannot be recovered.", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddOrDeleteRulesRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddOrDeleteRulesResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/firehose/stream/lang/ko" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Tweets" + ], + "summary" : "Stream Korean Posts", + "description" : "Streams all public Korean-language Posts in real-time.", + "operationId" : "streamPostsFirehoseKo", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 2, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/search/stream/rules/counts": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Tweets" - ], - "summary": "Get stream rule counts", - "description": "Retrieves the count of rules in the active rule set for the filtered stream.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules-counts" - }, - "operationId": "getRuleCounts", - "parameters": [ - { - "$ref": "#/components/parameters/RulesCountFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsSearchStreamRulesCountsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/firehose/stream/lang/pt" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Tweets" + ], + "summary" : "Stream Portuguese Posts", + "description" : "Streams all public Portuguese-language Posts in real-time.", + "operationId" : "streamPostsFirehosePt", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 2, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/tweets/{id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Delete Post", - "description": "Deletes a specific Post by its ID, if owned by the authenticated user.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id" - }, - "operationId": "deletePosts", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the Post to be deleted.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get Post by ID", - "description": "Retrieves details of a specific Post by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id" - }, - "operationId": "getPostsById", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "A single Post ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/label/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Compliance" + ], + "summary" : "Stream Post labels", + "description" : "Streams all labeling events applied to Posts.", + "operationId" : "streamLabelsCompliance", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Post labels will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Post labels will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetLabelStreamResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/tweets/{id}/liking_users": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "like.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get Liking Users", - "description": "Retrieves a list of Users who liked a specific Post by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-tweets-id-liking_users" - }, - "operationId": "getPostsLikingUsers", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "A single Post ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsIdLikingUsersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/sample/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Tweets" + ], + "summary" : "Stream sampled Posts", + "description" : "Streams a 1% sample of public Posts in real-time.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/api-reference/get-tweets-sample-stream" + }, + "operationId" : "streamPostsSample", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StreamingTweetResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/{id}/quote_tweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get Quoted Posts", - "description": "Retrieves a list of Posts that quote a specific Post by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets" - }, - "operationId": "getPostsQuotedPosts", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "A single Post ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results to be returned.", - "required": false, - "schema": { - "type": "integer", - "minimum": 10, - "maximum": 100, - "format": "int32", - "default": 10 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "exclude", - "in": "query", - "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required": false, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "replies", - "retweets" - ] - }, - "example": [ - "replies", - "retweets" - ] - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsIdQuoteTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/sample10/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Tweets" + ], + "summary" : "Stream 10% sampled Posts", + "description" : "Streams a 10% sample of public Posts in real-time.", + "operationId" : "streamPostsSample10", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 2, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsSample10StreamResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } }, - "/2/tweets/{id}/retweeted_by": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get Reposted by", - "description": "Retrieves a list of Users who reposted a specific Post by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweeted_by" - }, - "operationId": "getPostsRepostedBy", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "A single Post ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsIdRetweetedByResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/search/all" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Search all Posts", + "description" : "Retrieves Posts from the full archive matching a search query.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all" + }, + "operationId" : "searchPostsAll", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required" : true, + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 4096, + "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of search results to be returned by a request.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 10, + "maximum" : 500, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "sort_order", + "in" : "query", + "description" : "This order in which to return results.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "recency", + "relevancy" + ] + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsSearchAllResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/tweets/search/recent" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Search recent Posts", + "description" : "Retrieves Posts from the last 7 days matching a search query.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent" }, - "/2/tweets/{id}/retweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get Reposts", - "description": "Retrieves a list of Posts that repost a specific Post by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets" - }, - "operationId": "getPostsReposts", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "A single Post ID.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2TweetsIdRetweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "searchPostsRecent", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "One query/rule/filter for matching Posts. Refer to https://t.co/rulelength to identify the max query length.", + "required" : true, + "schema" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 4096, + "example" : "(from:TwitterDev OR from:TwitterAPI) has:media -is:retweet" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Posts will be provided. Timestamp is in second granularity and is inclusive (i.e. 12:00:01 includes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Posts will be provided. Timestamp is in second granularity and is exclusive (i.e. 12:00:01 excludes the first second of the minute).", + "required" : false, + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "Returns results with a Post ID greater than (that is, more recent than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "Returns results with a Post ID less than (that is, older than) the specified ID.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of search results to be returned by a request.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 10, + "maximum" : 100, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "sort_order", + "in" : "query", + "description" : "This order in which to return results.", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ + "recency", + "relevancy" + ] + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsSearchRecentResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/search/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Tweets" + ], + "summary" : "Stream filtered Posts", + "description" : "Streams Posts in real-time matching the active rule set.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream" }, - "/2/tweets/{tweet_id}/hidden": { - "put": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.moderate.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Hide reply", - "description": "Hides or unhides a reply to a conversation owned by the authenticated user.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden" - }, - "operationId": "hidePostsReply", - "parameters": [ - { - "name": "tweet_id", - "in": "path", - "description": "The ID of the reply that you want to hide or unhide.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetHideRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TweetHideResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "streamPosts", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/FilteredStreamingTweetResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/usage/tweets": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Usage" - ], - "summary": "Get usage", - "description": "Retrieves usage statistics for Posts over a specified number of days.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets" - }, - "operationId": "getUsage", - "parameters": [ - { - "name": "days", - "in": "query", - "description": "The number of days for which you need usage for.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 90, - "format": "int32", - "default": 7 - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UsageFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsageTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/tweets/search/stream/rules" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Tweets" + ], + "summary" : "Get stream rules", + "description" : "Retrieves the active rule set or a subset of rules for the filtered stream.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules" + }, + "operationId" : "getRules", + "parameters" : [ + { + "name" : "ids", + "in" : "query", + "description" : "A comma-separated list of Rule IDs.", + "required" : false, + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/RuleId" + } + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32", + "default" : 1000 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This value is populated by passing the 'next_token' returned in a request to paginate through results.", + "required" : false, + "schema" : { + "type" : "string", + "minLength" : 16, + "maxLength" : 16 + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RulesLookupResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "post" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Tweets" + ], + "summary" : "Update stream rules", + "description" : "Adds or deletes rules from the active rule set for the filtered stream.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/post-tweets-search-stream-rules" }, - "/2/users": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get Users by IDs", - "description": "Retrieves details of multiple Users by their IDs.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users" - }, - "operationId": "getUsersByIds", - "parameters": [ - { - "name": "ids", - "in": "query", - "description": "A list of User IDs, comma-separated. You can specify up to 100 IDs.", - "required": true, - "example": "2244994945,6253282,12", - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "updateRules", + "parameters" : [ + { + "name" : "dry_run", + "in" : "query", + "description" : "Dry Run can be used with both the add and delete action, with the expected result given, but without actually taking any action in the system (meaning the end state will always be as it was when the request was submitted). This is particularly useful to validate rule changes.", + "required" : false, + "schema" : { + "type" : "boolean" + }, + "style" : "form" + }, + { + "name" : "delete_all", + "in" : "query", + "description" : "Delete All can be used to delete all of the rules associated this client app, it should be specified with no other parameters. Once deleted, rules cannot be recovered.", + "required" : false, + "schema" : { + "type" : "boolean" + }, + "style" : "form" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddOrDeleteRulesRequest" + } } + }, + "required" : true }, - "/2/users/by": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get Users by usernames", - "description": "Retrieves details of multiple Users by their usernames.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by" - }, - "operationId": "getUsersByUsernames", - "parameters": [ - { - "name": "usernames", - "in": "query", - "description": "A list of usernames, comma-separated.", - "required": true, - "schema": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "type": "string", - "description": "The X handle (screen name) of this User.", - "pattern": "^[A-Za-z0-9_]{1,15}$" - }, - "example": "TwitterDev,TwitterAPI" - }, - "explode": false, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersByResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddOrDeleteRulesResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/tweets/search/stream/rules/counts" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Tweets" + ], + "summary" : "Get stream rule counts", + "description" : "Retrieves the count of rules in the active rule set for the filtered stream.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/api-reference/get-tweets-search-stream-rules-counts" }, - "/2/users/by/username/{username}": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get User by username", - "description": "Retrieves details of a specific User by their username.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username" - }, - "operationId": "getUsersByUsername", - "parameters": [ - { - "name": "username", - "in": "path", - "description": "A username.", - "required": true, - "example": "TwitterDev", - "schema": { - "type": "string", - "pattern": "^[A-Za-z0-9_]{1,15}$" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersByUsernameUsernameResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getRuleCounts", + "parameters" : [ + { + "$ref" : "#/components/parameters/RulesCountFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsSearchStreamRulesCountsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/tweets/{id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Delete Post", + "description" : "Deletes a specific Post by its ID, if owned by the authenticated user.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/manage-tweets/api-reference/delete-tweets-id" }, - "/2/users/compliance/stream": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Stream", - "Compliance" - ], - "summary": "Stream Users compliance data", - "description": "Streams all compliance data related to Users.", - "operationId": "streamUsersCompliance", - "parameters": [ - { - "name": "backfill_minutes", - "in": "query", - "description": "The number of minutes of backfill requested.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "format": "int32" - }, - "style": "form" - }, - { - "name": "partition", - "in": "query", - "description": "The partition number.", - "required": true, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "format": "int32" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the User Compliance events will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the User Compliance events will be provided.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserComplianceStreamResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - }, - "x-twitter-streaming": true + "operationId" : "deletePosts", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the Post to be deleted.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetDeleteResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get Post by ID", + "description" : "Retrieves details of a specific Post by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id" }, - "/2/users/me": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get my User", - "description": "Retrieves details of the authenticated user.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me" - }, - "operationId": "getMyUser", - "parameters": [ - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersMeResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getPostsById", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "A single Post ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsIdResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/tweets/{id}/liking_users" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "like.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get Liking Users", + "description" : "Retrieves a list of Users who liked a specific Post by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-tweets-id-liking_users" }, - "/2/users/personalized_trends": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Trends" - ], - "summary": "Get personalized Trends", - "description": "Retrieves personalized trending topics for the authenticated user.", - "externalDocs": { - "url": "https://developer.x.com/" - }, - "operationId": "getUsersPersonalizedTrends", - "parameters": [ - { - "$ref": "#/components/parameters/PersonalizedTrendFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersPersonalizedTrendsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getPostsLikingUsers", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "A single Post ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsIdLikingUsersResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{id}/quote_tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get Quoted Posts", + "description" : "Retrieves a list of Posts that quote a specific Post by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/quote-tweets/api-reference/get-tweets-id-quote_tweets" }, - "/2/users/reposts_of_me": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "timeline.read", - "tweet.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get Reposts of me", - "description": "Retrieves a list of Posts that repost content from the authenticated user.", - "operationId": "getUsersRepostsOfMe", - "parameters": [ - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersRepostsOfMeResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getPostsQuotedPosts", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "A single Post ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results to be returned.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 10, + "maximum" : 100, + "format" : "int32", + "default" : 10 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "exclude", + "in" : "query", + "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required" : false, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "replies", + "retweets" + ] + }, + "example" : [ + "replies", + "retweets" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsIdQuoteTweetsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/tweets/{id}/retweeted_by" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get Reposted by", + "description" : "Retrieves a list of Users who reposted a specific Post by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweeted_by" }, - "/2/users/search": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Search Users", - "description": "Retrieves a list of Users matching a search query.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-search" - }, - "operationId": "searchUsers", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "TThe the query string by which to query for users.", - "required": true, - "example": "someXUser", - "schema": { - "$ref": "#/components/schemas/UserSearchQueryVnext" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "next_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersSearchResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getPostsRepostedBy", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "A single Post ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsIdRetweetedByResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/tweets/{id}/retweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get Reposts", + "description" : "Retrieves a list of Posts that repost a specific Post by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/get-tweets-id-retweets" }, - "/2/users/{id}": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get User by ID", - "description": "Retrieves details of a specific User by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id" - }, - "operationId": "getUsersById", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getPostsReposts", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "A single Post ID.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2TweetsIdRetweetsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/tweets/{tweet_id}/hidden" : { + "put" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.moderate.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Hide reply", + "description" : "Hides or unhides a reply to a conversation owned by the authenticated user.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden" }, - "/2/users/{id}/blocking": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "block.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get blocking", - "description": "Retrieves a list of Users blocked by the specified User ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking" - }, - "operationId": "getUsersBlocking", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdBlockingResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "hidePostsReply", + "parameters" : [ + { + "name" : "tweet_id", + "in" : "path", + "description" : "The ID of the reply that you want to hide or unhide.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetHideRequest" + } } + } }, - "/2/users/{id}/bookmarks": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "bookmark.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Bookmarks" - ], - "summary": "Get Bookmarks", - "description": "Retrieves a list of Posts bookmarked by the authenticated user.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks" - }, - "operationId": "getUsersBookmarks", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdBookmarksResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "bookmark.write", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Bookmarks" - ], - "summary": "Create Bookmark", - "description": "Adds a post to the authenticated user’s bookmarks.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks" - }, - "operationId": "createUsersBookmark", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to add bookmarks.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookmarkAddRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookmarkMutationResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TweetHideResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/usage/tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Usage" + ], + "summary" : "Get usage", + "description" : "Retrieves usage statistics for Posts over a specified number of days.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/usage/tweets/api-reference/get-usage-tweets" }, - "/2/users/{id}/bookmarks/folders": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "bookmark.read", - "users.read" - ] - } - ], - "tags": [ - "Bookmarks" - ], - "summary": "Get Bookmark folders", - "description": "Retrieves a list of Bookmark folders created by the authenticated user.", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "getUsersBookmarkFolders", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookmarkFoldersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsage", + "parameters" : [ + { + "name" : "days", + "in" : "query", + "description" : "The number of days for which you need usage for.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 90, + "format" : "int32", + "default" : 7 + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UsageFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsageTweetsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get Users by IDs", + "description" : "Retrieves details of multiple Users by their IDs.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users" }, - "/2/users/{id}/bookmarks/folders/{folder_id}": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "bookmark.read", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Bookmarks" - ], - "summary": "Get Bookmarks by folder ID", - "description": "Retrieves Posts in a specific Bookmark folder by its ID for the authenticated user.", - "externalDocs": { - "url": "https://developer.x.com" - }, - "operationId": "getUsersBookmarksByFolderId", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "folder_id", - "in": "path", - "description": "The ID of the Bookmark Folder that the authenticated User is trying to fetch Posts for.", - "required": true, - "schema": { - "$ref": "#/components/schemas/BookmarkFolderId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookmarkFolderPostsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersByIds", + "parameters" : [ + { + "name" : "ids", + "in" : "query", + "description" : "A list of User IDs, comma-separated. You can specify up to 100 IDs.", + "required" : true, + "example" : "2244994945,6253282,12", + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/by" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get Users by usernames", + "description" : "Retrieves details of multiple Users by their usernames.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by" }, - "/2/users/{id}/bookmarks/{tweet_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "bookmark.write", - "tweet.read", - "users.read" - ] - } - ], - "tags": [ - "Bookmarks" - ], - "summary": "Delete Bookmark", - "description": "Removes a Post from the authenticated user’s Bookmarks by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id" - }, - "operationId": "deleteUsersBookmark", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User whose bookmark is to be removed.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "tweet_id", - "in": "path", - "description": "The ID of the Post that the source User is removing from bookmarks.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookmarkMutationResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersByUsernames", + "parameters" : [ + { + "name" : "usernames", + "in" : "query", + "description" : "A list of usernames, comma-separated.", + "required" : true, + "schema" : { + "type" : "array", + "minItems" : 1, + "maxItems" : 100, + "items" : { + "type" : "string", + "description" : "The X handle (screen name) of this User.", + "pattern" : "^[A-Za-z0-9_]{1,15}$" + }, + "example" : "TwitterDev,TwitterAPI" + }, + "explode" : false, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersByResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/by/username/{username}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get User by username", + "description" : "Retrieves details of a specific User by their username.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username" }, - "/2/users/{id}/dm/block": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Block DMs", - "description": "Blocks direct messages to or from a specific User by their ID for the authenticated user.", - "externalDocs": { - "url": "https://developer.x.com/" - }, - "operationId": "blockUsersDms", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the target User that the authenticated user requesting to block dms for.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersDMBlockCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersByUsername", + "parameters" : [ + { + "name" : "username", + "in" : "path", + "description" : "A username.", + "required" : true, + "example" : "TwitterDev", + "schema" : { + "type" : "string", + "pattern" : "^[A-Za-z0-9_]{1,15}$" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersByUsernameUsernameResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/compliance/stream" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Stream", + "Compliance" + ], + "summary" : "Stream Users compliance data", + "description" : "Streams all compliance data related to Users.", + "operationId" : "streamUsersCompliance", + "parameters" : [ + { + "name" : "backfill_minutes", + "in" : "query", + "description" : "The number of minutes of backfill requested.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 5, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "partition", + "in" : "query", + "description" : "The partition number.", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 4, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the User Compliance events will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the User Compliance events will be provided.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UserComplianceStreamResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } }, - "/2/users/{id}/dm/unblock": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "dm.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Unblock DMs", - "description": "Unblocks direct messages to or from a specific User by their ID for the authenticated user.", - "externalDocs": { - "url": "https://developer.x.com/" - }, - "operationId": "unblockUsersDms", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the target User that the authenticated user requesting to unblock dms for.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersDMUnBlockCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "x-twitter-streaming" : true + } + }, + "/2/users/me" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get my User", + "description" : "Retrieves details of the authenticated user.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me" + }, + "operationId" : "getMyUser", + "parameters" : [ + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersMeResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/personalized_trends" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Trends" + ], + "summary" : "Get personalized Trends", + "description" : "Retrieves personalized trending topics for the authenticated user.", + "externalDocs" : { + "url" : "https://developer.x.com/" }, - "/2/users/{id}/followed_lists": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Get followed Lists", - "description": "Retrieves a list of Lists followed by a specific User by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists" - }, - "operationId": "getUsersFollowedLists", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/ListFieldsParameter" - }, - { - "$ref": "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdFollowedListsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Follow List", - "description": "Causes the authenticated user to follow a specific List by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/post-users-id-followed-lists" - }, - "operationId": "followList", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that will follow the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListFollowedRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListFollowedResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersPersonalizedTrends", + "parameters" : [ + { + "$ref" : "#/components/parameters/PersonalizedTrendFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersPersonalizedTrendsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/reposts_of_me" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "timeline.read", + "tweet.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get Reposts of me", + "description" : "Retrieves a list of Posts that repost content from the authenticated user.", + "operationId" : "getUsersRepostsOfMe", + "parameters" : [ + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersRepostsOfMeResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/search" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Search Users", + "description" : "Retrieves a list of Users matching a search query.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-search" }, - "/2/users/{id}/followed_lists/{list_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Unfollow List", - "description": "Causes the authenticated user to unfollow a specific List by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/delete-users-id-followed-lists-list_id" - }, - "operationId": "unfollowList", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that will unfollow the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "list_id", - "in": "path", - "description": "The ID of the List to unfollow.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListFollowedResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "searchUsers", + "parameters" : [ + { + "name" : "query", + "in" : "query", + "description" : "TThe the query string by which to query for users.", + "required" : true, + "example" : "someXUser", + "schema" : { + "$ref" : "#/components/schemas/UserSearchQueryVnext" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "next_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersSearchResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get User by ID", + "description" : "Retrieves details of a specific User by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id" }, - "/2/users/{id}/followers": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "follows.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get followers", - "description": "Retrieves a list of Users who follow a specific User by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" - }, - "operationId": "getUsersFollowers", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdFollowersResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersById", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/blocking" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "block.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get blocking", + "description" : "Retrieves a list of Users blocked by the specified User ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/get-users-blocking" }, - "/2/users/{id}/following": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "follows.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get following", - "description": "Retrieves a list of Users followed by a specific User by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following" - }, - "operationId": "getUsersFollowing", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken32" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdFollowingResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "follows.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Follow User", - "description": "Causes the authenticated user to follow a specific user by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following" - }, - "operationId": "followUser", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to follow the target User.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersFollowingCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersFollowingCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersBlocking", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdBlockingResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/bookmarks" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "bookmark.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Bookmarks" + ], + "summary" : "Get Bookmarks", + "description" : "Retrieves a list of Posts bookmarked by the authenticated user.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/get-users-id-bookmarks" }, - "/2/users/{id}/liked_tweets": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "like.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get liked Posts", - "description": "Retrieves a list of Posts liked by a specific User by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets" - }, - "operationId": "getUsersLikedPosts", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 5, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdLikedTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersBookmarks", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdBookmarksResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "bookmark.write", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Bookmarks" + ], + "summary" : "Create Bookmark", + "description" : "Adds a post to the authenticated user’s bookmarks.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/post-users-id-bookmarks" }, - "/2/users/{id}/likes": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "like.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Like Post", - "description": "Causes the authenticated user to Like a specific Post by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-id-likes" - }, - "operationId": "likePost", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to like the Post.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersLikesCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersLikesCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "createUsersBookmark", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to add bookmarks.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BookmarkAddRequest" + } } + }, + "required" : true }, - "/2/users/{id}/likes/{tweet_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "like.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Unlike Post", - "description": "Causes the authenticated user to Unlike a specific Post by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id" - }, - "operationId": "unlikePost", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to unlike the Post.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "tweet_id", - "in": "path", - "description": "The ID of the Post that the User is requesting to unlike.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersLikesDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BookmarkMutationResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/bookmarks/folders" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "bookmark.read", + "users.read" + ] + } + ], + "tags" : [ + "Bookmarks" + ], + "summary" : "Get Bookmark folders", + "description" : "Retrieves a list of Bookmark folders created by the authenticated user.", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/users/{id}/list_memberships": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Get List memberships", - "description": "Retrieves a list of Lists that a specific User is a member of by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" - }, - "operationId": "getUsersListMemberships", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/ListFieldsParameter" - }, - { - "$ref": "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdListMembershipsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersBookmarkFolders", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BookmarkFoldersResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/bookmarks/folders/{folder_id}" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "bookmark.read", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Bookmarks" + ], + "summary" : "Get Bookmarks by folder ID", + "description" : "Retrieves Posts in a specific Bookmark folder by its ID for the authenticated user.", + "externalDocs" : { + "url" : "https://developer.x.com" }, - "/2/users/{id}/mentions": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get mentions", - "description": "Retrieves a list of Posts that mention a specific User by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions" - }, - "operationId": "getUsersMentions", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "since_id", - "in": "query", - "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required": false, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required": false, - "example": "1346889436626259968", - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 5, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdMentionsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersBookmarksByFolderId", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "folder_id", + "in" : "path", + "description" : "The ID of the Bookmark Folder that the authenticated User is trying to fetch Posts for.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/BookmarkFolderId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BookmarkFolderPostsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/bookmarks/{tweet_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "bookmark.write", + "tweet.read", + "users.read" + ] + } + ], + "tags" : [ + "Bookmarks" + ], + "summary" : "Delete Bookmark", + "description" : "Removes a Post from the authenticated user’s Bookmarks by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/bookmarks/api-reference/delete-users-id-bookmarks-tweet_id" }, - "/2/users/{id}/muting": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "mute.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Get muting", - "description": "Retrieves a list of Users muted by the authenticated user.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting" - }, - "operationId": "getUsersMuting", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserExpansionsParameter" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdMutingResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "mute.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Mute User", - "description": "Causes the authenticated user to mute a specific User by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting" - }, - "operationId": "muteUser", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to mute the target User.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MuteUserRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MuteUserMutationResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "deleteUsersBookmark", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User whose bookmark is to be removed.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "tweet_id", + "in" : "path", + "description" : "The ID of the Post that the source User is removing from bookmarks.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BookmarkMutationResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/dm/block" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Block DMs", + "description" : "Blocks direct messages to or from a specific User by their ID for the authenticated user.", + "externalDocs" : { + "url" : "https://developer.x.com/" }, - "/2/users/{id}/owned_lists": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Get owned Lists", - "description": "Retrieves a list of Lists owned by a specific User by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists" - }, - "operationId": "getUsersOwnedLists", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32", - "default": 100 - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get a specified 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationTokenLong" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/ListFieldsParameter" - }, - { - "$ref": "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdOwnedListsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "blockUsersDms", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the target User that the authenticated user requesting to block dms for.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersDMBlockCreateResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/dm/unblock" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "dm.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Unblock DMs", + "description" : "Unblocks direct messages to or from a specific User by their ID for the authenticated user.", + "externalDocs" : { + "url" : "https://developer.x.com/" }, - "/2/users/{id}/pinned_lists": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "list.read", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Get pinned Lists", - "description": "Retrieves a list of Lists pinned by the authenticated user.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/get-users-id-pinned_lists" - }, - "operationId": "getUsersPinnedLists", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "$ref": "#/components/parameters/ListFieldsParameter" - }, - { - "$ref": "#/components/parameters/ListExpansionsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdPinnedListsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Pin List", - "description": "Causes the authenticated user to pin a specific List by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/post-users-id-pinned-lists" - }, - "operationId": "pinList", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that will pin the List.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPinnedRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPinnedResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "unblockUsersDms", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the target User that the authenticated user requesting to unblock dms for.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersDMUnBlockCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/followed_lists" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Get followed Lists", + "description" : "Retrieves a list of Lists followed by a specific User by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/get-users-id-followed_lists" }, - "/2/users/{id}/pinned_lists/{list_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "list.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Lists" - ], - "summary": "Unpin List", - "description": "Causes the authenticated user to unpin a specific List by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/delete-users-id-pinned-lists-list_id" - }, - "operationId": "unpinList", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User for whom to return results.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "list_id", - "in": "path", - "description": "The ID of the List to unpin.", - "required": true, - "schema": { - "$ref": "#/components/schemas/ListId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListUnpinResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersFollowedLists", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/ListFieldsParameter" + }, + { + "$ref" : "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdFollowedListsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Follow List", + "description" : "Causes the authenticated user to follow a specific List by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/post-users-id-followed-lists" }, - "/2/users/{id}/retweets": { - "post": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Repost Post", - "description": "Causes the authenticated user to repost a specific Post by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets" - }, - "operationId": "repostPost", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to repost the Post.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersRetweetsCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersRetweetsCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "followList", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that will follow the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListFollowedRequest" + } } + } }, - "/2/users/{id}/retweets/{source_tweet_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "tweet.write", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Unrepost Post", - "description": "Causes the authenticated user to unrepost a specific Post by its ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id" - }, - "operationId": "unrepostPost", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to repost the Post.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "source_tweet_id", - "in": "path", - "description": "The ID of the Post that the User is requesting to unretweet.", - "required": true, - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersRetweetsDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListFollowedResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/followed_lists/{list_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Unfollow List", + "description" : "Causes the authenticated user to unfollow a specific List by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-follows/api-reference/delete-users-id-followed-lists-list_id" }, - "/2/users/{id}/timelines/reverse_chronological": { - "get": { - "security": [ - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get Timeline", - "description": "Retrieves a reverse chronological list of Posts in the authenticated User’s Timeline.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological" - }, - "operationId": "getUsersTimeline", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the authenticated source User to list Reverse Chronological Timeline Posts of.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "since_id", - "in": "query", - "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required": false, - "example": "791775337160081409", - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required": false, - "example": "1346889436626259968", - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "exclude", - "in": "query", - "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required": false, - "schema": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "replies", - "retweets" - ] - }, - "example": [ - "replies", - "retweets" - ] - }, - "explode": false, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdTimelinesReverseChronologicalResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "unfollowList", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that will unfollow the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "list_id", + "in" : "path", + "description" : "The ID of the List to unfollow.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListFollowedResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/followers" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "follows.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get followers", + "description" : "Retrieves a list of Users who follow a specific User by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers" }, - "/2/users/{id}/tweets": { - "get": { - "security": [ - { - "BearerToken": [] - }, - { - "OAuth2UserToken": [ - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Tweets" - ], - "summary": "Get Posts", - "description": "Retrieves a list of posts authored by a specific User by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets" - }, - "operationId": "getUsersPosts", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "The ID of the User to lookup.", - "required": true, - "example": "2244994945", - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - }, - { - "name": "since_id", - "in": "query", - "description": "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", - "required": false, - "example": "791775337160081409", - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "until_id", - "in": "query", - "description": "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", - "required": false, - "example": "1346889436626259968", - "schema": { - "$ref": "#/components/schemas/TweetId" - }, - "style": "form" - }, - { - "name": "max_results", - "in": "query", - "description": "The maximum number of results.", - "required": false, - "schema": { - "type": "integer", - "minimum": 5, - "maximum": 100, - "format": "int32" - }, - "style": "form" - }, - { - "name": "pagination_token", - "in": "query", - "description": "This parameter is used to get the next 'page' of results.", - "required": false, - "schema": { - "$ref": "#/components/schemas/PaginationToken36" - }, - "style": "form" - }, - { - "name": "exclude", - "in": "query", - "description": "The set of entities to exclude (e.g. 'replies' or 'retweets').", - "required": false, - "schema": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "replies", - "retweets" - ] - }, - "example": [ - "replies", - "retweets" - ] - }, - "explode": false, - "style": "form" - }, - { - "name": "start_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-01T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "name": "end_time", - "in": "query", - "description": "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", - "required": false, - "example": "2021-02-14T18:40:40.000Z", - "schema": { - "type": "string", - "format": "date-time" - }, - "style": "form" - }, - { - "$ref": "#/components/parameters/TweetFieldsParameter" - }, - { - "$ref": "#/components/parameters/TweetExpansionsParameter" - }, - { - "$ref": "#/components/parameters/MediaFieldsParameter" - }, - { - "$ref": "#/components/parameters/PollFieldsParameter" - }, - { - "$ref": "#/components/parameters/UserFieldsParameter" - }, - { - "$ref": "#/components/parameters/PlaceFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2UsersIdTweetsResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersFollowers", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdFollowersResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/following" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "follows.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get following", + "description" : "Retrieves a list of Users followed by a specific User by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following" }, - "/2/users/{source_user_id}/following/{target_user_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "follows.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Unfollow User", - "description": "Causes the authenticated user to unfollow a specific user by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following" - }, - "operationId": "unfollowUser", - "parameters": [ - { - "name": "source_user_id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to unfollow the target User.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "target_user_id", - "in": "path", - "description": "The ID of the User that the source User is requesting to unfollow.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersFollowingDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersFollowing", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken32" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdFollowingResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "follows.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Follow User", + "description" : "Causes the authenticated user to follow a specific user by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following" }, - "/2/users/{source_user_id}/muting/{target_user_id}": { - "delete": { - "security": [ - { - "OAuth2UserToken": [ - "mute.write", - "tweet.read", - "users.read" - ] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Users" - ], - "summary": "Unmute User", - "description": "Causes the authenticated user to unmute a specific user by their ID.", - "externalDocs": { - "url": "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting" - }, - "operationId": "unmuteUser", - "parameters": [ - { - "name": "source_user_id", - "in": "path", - "description": "The ID of the authenticated source User that is requesting to unmute the target User.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserIdMatchesAuthenticatedUser" - }, - "style": "simple" - }, - { - "name": "target_user_id", - "in": "path", - "description": "The ID of the User that the source User is requesting to unmute.", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MuteUserMutationResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "followUser", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to follow the target User.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersFollowingCreateRequest" + } } + } }, - "/2/webhooks": { - "get": { - "security": [ - { - "BearerToken": [] - } - ], - "tags": [ - "Webhooks" - ], - "summary": "Get webhook", - "description": "Get a list of webhook configs associated with a client app.", - "externalDocs": { - "url": "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId": "getWebhooks", - "parameters": [ - { - "$ref": "#/components/parameters/WebhookConfigFieldsParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Get2WebhooksResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "post": { - "security": [ - { - "BearerToken": [] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Webhooks" - ], - "summary": "Create webhook", - "description": "Creates a new webhook configuration.", - "externalDocs": { - "url": "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId": "createWebhooks", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfigCreateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfigCreateResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersFollowingCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/liked_tweets" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "like.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get liked Posts", + "description" : "Retrieves a list of Posts liked by a specific User by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/get-users-id-liked_tweets" }, - "/2/webhooks/{webhook_id}": { - "delete": { - "security": [ - { - "BearerToken": [] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Webhooks" - ], - "summary": "Delete webhook", - "description": "Deletes an existing webhook configuration.", - "externalDocs": { - "url": "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId": "deleteWebhooks", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The ID of the webhook to delete.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfigDeleteResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } - }, - "put": { - "security": [ - { - "BearerToken": [] - }, - { - "UserToken": [] - } - ], - "tags": [ - "Webhooks" - ], - "summary": "Validate webhook", - "description": "Triggers a CRC check for a given webhook.", - "externalDocs": { - "url": "https://docs.x.com/x-api/webhooks/introduction" - }, - "operationId": "validateWebhooks", - "parameters": [ - { - "name": "webhook_id", - "in": "path", - "description": "The ID of the webhook to check.", - "required": true, - "schema": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookConfigPutResponse" - } - } - } - }, - "default": { - "description": "The request has failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - }, - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - } + "operationId" : "getUsersLikedPosts", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 5, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdLikedTweetsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } } + } }, - "servers": [ - { - "description": "X API", - "url": "https://api.x.com" - } - ], - "tags": [ - { - "name": "Account Activity", - "description": "Endpoints relating to retrieving, managing AAA subscriptions", - "externalDocs": { - "description": "Find out more", - "url": "https://docs.x.com/x-api/enterprise-gnip-2.0/fundamentals/account-activity" + "/2/users/{id}/likes" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "like.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Like Post", + "description" : "Causes the authenticated user to Like a specific Post by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-id-likes" + }, + "operationId" : "likePost", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to like the Post.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersLikesCreateRequest" + } } + } }, - { - "name": "Bookmarks", - "description": "Endpoints related to retrieving, managing bookmarks of a user", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/bookmarks" + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersLikesCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/likes/{tweet_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "like.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Unlike Post", + "description" : "Causes the authenticated user to Unlike a specific Post by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-id-likes-tweet_id" }, - { - "name": "Compliance", - "description": "Endpoints related to keeping X data in your systems compliant", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-tweet/introduction" + "operationId" : "unlikePost", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to unlike the Post.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "tweet_id", + "in" : "path", + "description" : "The ID of the Post that the User is requesting to unlike.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersLikesDeleteResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/list_memberships" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Get List memberships", + "description" : "Retrieves a list of Lists that a specific User is a member of by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-members/api-reference/get-users-id-list_memberships" }, - { - "name": "Direct Messages", - "description": "Endpoints related to retrieving, managing Direct Messages", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/direct-messages" + "operationId" : "getUsersListMemberships", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/ListFieldsParameter" + }, + { + "$ref" : "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdListMembershipsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/mentions" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get mentions", + "description" : "Retrieves a list of Posts that mention a specific User by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions" }, - { - "name": "General", - "description": "Miscellaneous endpoints for general API functionality", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api" + "operationId" : "getUsersMentions", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required" : false, + "example" : "1346889436626259968", + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 5, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdMentionsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/muting" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "mute.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Get muting", + "description" : "Retrieves a list of Users muted by the authenticated user.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/get-users-muting" }, - { - "name": "Lists", - "description": "Endpoints related to retrieving, managing Lists", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/lists" + "operationId" : "getUsersMuting", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 1000, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdMutingResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "mute.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Mute User", + "description" : "Causes the authenticated user to mute a specific User by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/post-users-user_id-muting" }, - { - "name": "Media", - "description": "Endpoints related to Media", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.x.com" + "operationId" : "muteUser", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to mute the target User.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MuteUserRequest" + } } + } }, - { - "name": "MediaUpload", - "description": "Endpoints related to uploading Media", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.x.com" + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MuteUserMutationResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/owned_lists" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Get owned Lists", + "description" : "Retrieves a list of Lists owned by a specific User by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/list-lookup/api-reference/get-users-id-owned_lists" }, - { - "name": "Spaces", - "description": "Endpoints related to retrieving, managing Spaces", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/spaces" + "operationId" : "getUsersOwnedLists", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32", + "default" : 100 + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get a specified 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationTokenLong" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/ListFieldsParameter" + }, + { + "$ref" : "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdOwnedListsResponse" + } + } } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/pinned_lists" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.read", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Get pinned Lists", + "description" : "Retrieves a list of Lists pinned by the authenticated user.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/get-users-id-pinned_lists" }, - { - "name": "Stream", - "description": "Endpoints related to streaming", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.x.com" + "operationId" : "getUsersPinnedLists", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "$ref" : "#/components/parameters/ListFieldsParameter" + }, + { + "$ref" : "#/components/parameters/ListExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdPinnedListsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + }, + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Pin List", + "description" : "Causes the authenticated user to pin a specific List by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/post-users-id-pinned-lists" }, - { - "name": "Tweets", - "description": "Endpoints related to retrieving, searching, and modifying Tweets", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup" + "operationId" : "pinList", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that will pin the List.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPinnedRequest" + } } + }, + "required" : true }, - { - "name": "Users", - "description": "Endpoints related to retrieving, managing relationships of Users", - "externalDocs": { - "description": "Find out more", - "url": "https://developer.twitter.com/en/docs/twitter-api/users/lookup" - } - } - ], - "components": { - "securitySchemes": { - "BearerToken": { - "type": "http", - "scheme": "bearer" - }, - "OAuth2UserToken": { - "type": "oauth2", - "flows": { - "authorizationCode": { - "authorizationUrl": "https://api.x.com/2/oauth2/authorize", - "tokenUrl": "https://api.x.com/2/oauth2/token", - "scopes": { - "block.read": "View accounts you have blocked.", - "bookmark.read": "Read your bookmarked Posts.", - "bookmark.write": "Create and delete your bookmarks.", - "dm.read": "Read all your Direct Messages.", - "dm.write": "Send and manage your Direct Messages.", - "follows.read": "View accounts you follow and accounts following you.", - "follows.write": "Follow and unfollow accounts on your behalf.", - "like.read": "View Posts you have liked and likes you can see.", - "like.write": "Like and unlike Posts on your behalf.", - "list.read": "View Lists, members, and followers of Lists you created or are a member of, including private Lists.", - "list.write": "Create and manage Lists on your behalf.", - "media.write": "Upload media, such as photos and videos, on your behalf.", - "mute.read": "View accounts you have muted.", - "mute.write": "Mute and unmute accounts on your behalf.", - "offline.access": "Request a refresh token for the app.", - "space.read": "View all Spaces you have access to.", - "timeline.read": "View all Custom Timelines you can see, including public Custom Timelines from other developers.", - "tweet.moderate.write": "Hide and unhide replies to your Posts.", - "tweet.read": "View all Posts you can see, including those from protected accounts.", - "tweet.write": "Post and repost on your behalf.", - "users.read": "View any account you can see, including protected accounts." - } - } - } - }, - "UserToken": { - "type": "http", - "scheme": "OAuth" + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPinnedResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } } + } + } + } + }, + "/2/users/{id}/pinned_lists/{list_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "list.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Lists" + ], + "summary" : "Unpin List", + "description" : "Causes the authenticated user to unpin a specific List by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists/pinned-lists/api-reference/delete-users-id-pinned-lists-list_id" }, - "schemas": { - "AddOrDeleteRulesRequest": { - "oneOf": [ - { - "$ref": "#/components/schemas/AddRulesRequest" - }, - { - "$ref": "#/components/schemas/DeleteRulesRequest" - } - ] - }, - "AddOrDeleteRulesResponse": { - "type": "object", - "description": "A response from modifying user-specified stream filtering rules.", - "required": [ - "meta" - ], - "properties": { - "data": { - "type": "array", - "description": "All user-specified stream filtering rules that were created.", - "items": { - "$ref": "#/components/schemas/Rule" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "$ref": "#/components/schemas/RulesResponseMetadata" - } - } - }, - "AddRulesRequest": { - "type": "object", - "description": "A request to add a user-specified stream filtering rule.", - "required": [ - "add" - ], - "properties": { - "add": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RuleNoId" - } - } - } - }, - "Aggregate": { - "type": "integer", - "description": "The sum of results returned in this response.", - "format": "int32" - }, - "AllProjectClientApps": { - "type": "array", - "description": "Client App Rule Counts for all applications in the project", - "items": { - "$ref": "#/components/schemas/AppRulesCount" - } - }, - "AllowDownloadStatus": { - "type": "object", - "properties": { - "allow_download": { - "type": "boolean", - "example": true - } - } - }, - "AltText": { - "type": "object", - "required": [ - "text" - ], - "properties": { - "text": { - "type": "string", - "description": "Description of media ( <= 1000 characters )", - "maxLength": 1000, - "example": "A dancing cat" - } - } - }, - "Analytics": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "timestamped_metrics": { - "type": "array", - "title": "Timestamped Metrics", - "description": "Array containing metrics data along with the timestamps of their recording.", - "items": { - "$ref": "#/components/schemas/TimestampedMetrics" - } - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "AnimatedGif": { - "allOf": [ - { - "$ref": "#/components/schemas/Media" - }, - { - "type": "object", - "properties": { - "preview_image_url": { - "type": "string", - "format": "uri" - }, - "variants": { - "$ref": "#/components/schemas/Variants" - } - } - } - ] - }, - "AppRulesCount": { - "type": "object", - "description": "A count of user-provided stream filtering rules at the client application level.", - "properties": { - "client_app_id": { - "$ref": "#/components/schemas/ClientAppId" - }, - "rule_count": { - "type": "integer", - "description": "Number of rules for client application", - "format": "int32" - } - } - }, - "AudiencePolicy": { - "type": "object", - "properties": { - "creator_subscriptions": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "Any" - ] - } - }, - "x_subscriptions": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "Any" - ] - } - } - } - }, - "BookmarkAddRequest": { - "type": "object", - "required": [ - "tweet_id" - ], - "properties": { - "tweet_id": { - "$ref": "#/components/schemas/TweetId" - } - } - }, - "BookmarkFolderId": { - "type": "string", - "description": "The unique identifier of this Bookmark folder.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "BookmarkFolderPostsResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - } - }, - "BookmarkFoldersResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/BookmarkFolderId" - }, - "name": { - "type": "string" - } - } - } - } - }, - "BookmarkMutationResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "bookmarked": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "CashtagEntity": { - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref": "#/components/schemas/CashtagFields" - } - ] - }, - "CashtagFields": { - "type": "object", - "description": "Represent the portion of text recognized as a Cashtag, and its start and end position within the text.", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "example": "TWTR" - } - } - }, - "ClientAppId": { - "type": "string", - "description": "The ID of the client application", - "minLength": 1, - "maxLength": 19 - }, - "ClientAppUsage": { - "type": "object", - "description": "Usage per client app", - "properties": { - "client_app_id": { - "type": "string", - "description": "The unique identifier for this project", - "format": "^[0-9]{1,19}$" - }, - "usage": { - "type": "array", - "description": "The usage value", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UsageFields" - } - }, - "usage_result_count": { - "type": "integer", - "description": "The number of results returned", - "format": "int32" - } - } - }, - "ClientDisconnectedProblem": { - "description": "Your client has gone away.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } + "operationId" : "unpinList", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User for whom to return results.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "list_id", + "in" : "path", + "description" : "The ID of the List to unpin.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/ListId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListUnpinResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/retweets" : { + "post" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Repost Post", + "description" : "Causes the authenticated user to repost a specific Post by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/post-users-id-retweets" + }, + "operationId" : "repostPost", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to repost the Post.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersRetweetsCreateRequest" + } + } + } + }, + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersRetweetsCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/retweets/{source_tweet_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "tweet.write", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Unrepost Post", + "description" : "Causes the authenticated user to unrepost a specific Post by its ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/retweets/api-reference/delete-users-id-retweets-tweet_id" + }, + "operationId" : "unrepostPost", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to repost the Post.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "source_tweet_id", + "in" : "path", + "description" : "The ID of the Post that the User is requesting to unretweet.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersRetweetsDeleteResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/timelines/reverse_chronological" : { + "get" : { + "security" : [ + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get Timeline", + "description" : "Retrieves a reverse chronological list of Posts in the authenticated User’s Timeline.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-reverse-chronological" + }, + "operationId" : "getUsersTimeline", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the authenticated source User to list Reverse Chronological Timeline Posts of.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required" : false, + "example" : "791775337160081409", + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required" : false, + "example" : "1346889436626259968", + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "exclude", + "in" : "query", + "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required" : false, + "schema" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "replies", + "retweets" ] - }, - "ClientForbiddenProblem": { - "description": "A problem that indicates your client is forbidden from making this request.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "reason": { - "type": "string", - "enum": [ - "official-client-forbidden", - "client-not-enrolled" - ] - }, - "registration_url": { - "type": "string", - "format": "uri" - } - } - } + }, + "example" : [ + "replies", + "retweets" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdTimelinesReverseChronologicalResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{id}/tweets" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "OAuth2UserToken" : [ + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Tweets" + ], + "summary" : "Get Posts", + "description" : "Retrieves a list of posts authored by a specific User by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets" + }, + "operationId" : "getUsersPosts", + "parameters" : [ + { + "name" : "id", + "in" : "path", + "description" : "The ID of the User to lookup.", + "required" : true, + "example" : "2244994945", + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + }, + { + "name" : "since_id", + "in" : "query", + "description" : "The minimum Post ID to be included in the result set. This parameter takes precedence over start_time if both are specified.", + "required" : false, + "example" : "791775337160081409", + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "until_id", + "in" : "query", + "description" : "The maximum Post ID to be included in the result set. This parameter takes precedence over end_time if both are specified.", + "required" : false, + "example" : "1346889436626259968", + "schema" : { + "$ref" : "#/components/schemas/TweetId" + }, + "style" : "form" + }, + { + "name" : "max_results", + "in" : "query", + "description" : "The maximum number of results.", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 5, + "maximum" : 100, + "format" : "int32" + }, + "style" : "form" + }, + { + "name" : "pagination_token", + "in" : "query", + "description" : "This parameter is used to get the next 'page' of results.", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/PaginationToken36" + }, + "style" : "form" + }, + { + "name" : "exclude", + "in" : "query", + "description" : "The set of entities to exclude (e.g. 'replies' or 'retweets').", + "required" : false, + "schema" : { + "type" : "array", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "replies", + "retweets" ] - }, - "Community": { - "type": "object", - "description": "A X Community is a curated group of Posts.", - "required": [ - "id", - "name" - ], - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "$ref": "#/components/schemas/CommunityId" - }, - "name": { - "type": "string", - "description": "The name of this Community." - } - } - }, - "CommunityId": { - "type": "string", - "description": "The unique identifier of this Community.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "ComplianceJob": { - "type": "object", - "required": [ - "id", - "type", - "created_at", - "upload_url", - "download_url", - "upload_expires_at", - "download_expires_at", - "status" - ], - "properties": { - "created_at": { - "$ref": "#/components/schemas/CreatedAt" - }, - "download_expires_at": { - "$ref": "#/components/schemas/DownloadExpiration" - }, - "download_url": { - "$ref": "#/components/schemas/DownloadUrl" - }, - "id": { - "$ref": "#/components/schemas/JobId" - }, - "name": { - "$ref": "#/components/schemas/ComplianceJobName" - }, - "status": { - "$ref": "#/components/schemas/ComplianceJobStatus" - }, - "type": { - "$ref": "#/components/schemas/ComplianceJobType" - }, - "upload_expires_at": { - "$ref": "#/components/schemas/UploadExpiration" - }, - "upload_url": { - "$ref": "#/components/schemas/UploadUrl" - } - } - }, - "ComplianceJobName": { - "type": "string", - "description": "User-provided name for a compliance job.", - "maxLength": 64, - "example": "my-job" - }, - "ComplianceJobStatus": { - "type": "string", - "description": "Status of a compliance job.", - "enum": [ - "created", - "in_progress", - "failed", - "complete", - "expired" + }, + "example" : [ + "replies", + "retweets" + ] + }, + "explode" : false, + "style" : "form" + }, + { + "name" : "start_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Posts will be provided. The since_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-01T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "name" : "end_time", + "in" : "query", + "description" : "YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Posts will be provided. The until_id parameter takes precedence if it is also specified.", + "required" : false, + "example" : "2021-02-14T18:40:40.000Z", + "schema" : { + "type" : "string", + "format" : "date-time" + }, + "style" : "form" + }, + { + "$ref" : "#/components/parameters/TweetFieldsParameter" + }, + { + "$ref" : "#/components/parameters/TweetExpansionsParameter" + }, + { + "$ref" : "#/components/parameters/MediaFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PollFieldsParameter" + }, + { + "$ref" : "#/components/parameters/UserFieldsParameter" + }, + { + "$ref" : "#/components/parameters/PlaceFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2UsersIdTweetsResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{source_user_id}/following/{target_user_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "follows.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Unfollow User", + "description" : "Causes the authenticated user to unfollow a specific user by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following" + }, + "operationId" : "unfollowUser", + "parameters" : [ + { + "name" : "source_user_id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to unfollow the target User.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "target_user_id", + "in" : "path", + "description" : "The ID of the User that the source User is requesting to unfollow.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsersFollowingDeleteResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/users/{source_user_id}/muting/{target_user_id}" : { + "delete" : { + "security" : [ + { + "OAuth2UserToken" : [ + "mute.write", + "tweet.read", + "users.read" + ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Users" + ], + "summary" : "Unmute User", + "description" : "Causes the authenticated user to unmute a specific user by their ID.", + "externalDocs" : { + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/mutes/api-reference/delete-users-user_id-muting" + }, + "operationId" : "unmuteUser", + "parameters" : [ + { + "name" : "source_user_id", + "in" : "path", + "description" : "The ID of the authenticated source User that is requesting to unmute the target User.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserIdMatchesAuthenticatedUser" + }, + "style" : "simple" + }, + { + "name" : "target_user_id", + "in" : "path", + "description" : "The ID of the User that the source User is requesting to unmute.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MuteUserMutationResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/webhooks" : { + "get" : { + "security" : [ + { + "BearerToken" : [ ] + } + ], + "tags" : [ + "Webhooks" + ], + "summary" : "Get webhook", + "description" : "Get a list of webhook configs associated with a client app.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId" : "getWebhooks", + "parameters" : [ + { + "$ref" : "#/components/parameters/WebhookConfigFieldsParameter" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Get2WebhooksResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "post" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Webhooks" + ], + "summary" : "Create webhook", + "description" : "Creates a new webhook configuration.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId" : "createWebhooks", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigCreateRequest" + } + } + } + }, + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigCreateResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + }, + "/2/webhooks/{webhook_id}" : { + "delete" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Webhooks" + ], + "summary" : "Delete webhook", + "description" : "Deletes an existing webhook configuration.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId" : "deleteWebhooks", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The ID of the webhook to delete.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigDeleteResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + }, + "put" : { + "security" : [ + { + "BearerToken" : [ ] + }, + { + "UserToken" : [ ] + } + ], + "tags" : [ + "Webhooks" + ], + "summary" : "Validate webhook", + "description" : "Triggers a CRC check for a given webhook.", + "externalDocs" : { + "url" : "https://docs.x.com/x-api/webhooks/introduction" + }, + "operationId" : "validateWebhooks", + "parameters" : [ + { + "name" : "webhook_id", + "in" : "path", + "description" : "The ID of the webhook to check.", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "style" : "simple" + } + ], + "responses" : { + "200" : { + "description" : "The request has succeeded.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/WebhookConfigPutResponse" + } + } + } + }, + "default" : { + "description" : "The request has failed.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + }, + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + } + } + } + }, + "servers" : [ + { + "description" : "X API", + "url" : "https://api.x.com" + } + ], + "tags" : [ + { + "name" : "Account Activity", + "description" : "Endpoints relating to retrieving, managing AAA subscriptions", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://docs.x.com/x-api/enterprise-gnip-2.0/fundamentals/account-activity" + } + }, + { + "name" : "Bookmarks", + "description" : "Endpoints related to retrieving, managing bookmarks of a user", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/bookmarks" + } + }, + { + "name" : "Compliance", + "description" : "Endpoints related to keeping X data in your systems compliant", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/compliance/batch-tweet/introduction" + } + }, + { + "name" : "Direct Messages", + "description" : "Endpoints related to retrieving, managing Direct Messages", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/direct-messages" + } + }, + { + "name" : "General", + "description" : "Miscellaneous endpoints for general API functionality", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api" + } + }, + { + "name" : "Lists", + "description" : "Endpoints related to retrieving, managing Lists", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/lists" + } + }, + { + "name" : "Media", + "description" : "Endpoints related to Media", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.x.com" + } + }, + { + "name" : "MediaUpload", + "description" : "Endpoints related to uploading Media", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.x.com" + } + }, + { + "name" : "Spaces", + "description" : "Endpoints related to retrieving, managing Spaces", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/spaces" + } + }, + { + "name" : "Stream", + "description" : "Endpoints related to streaming", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.x.com" + } + }, + { + "name" : "Tweets", + "description" : "Endpoints related to retrieving, searching, and modifying Tweets", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/tweets/lookup" + } + }, + { + "name" : "Users", + "description" : "Endpoints related to retrieving, managing relationships of Users", + "externalDocs" : { + "description" : "Find out more", + "url" : "https://developer.twitter.com/en/docs/twitter-api/users/lookup" + } + } + ], + "components" : { + "securitySchemes" : { + "BearerToken" : { + "type" : "http", + "scheme" : "bearer" + }, + "OAuth2UserToken" : { + "type" : "oauth2", + "flows" : { + "authorizationCode" : { + "authorizationUrl" : "https://api.x.com/2/oauth2/authorize", + "tokenUrl" : "https://api.x.com/2/oauth2/token", + "scopes" : { + "block.read" : "View accounts you have blocked.", + "bookmark.read" : "Read your bookmarked Posts.", + "bookmark.write" : "Create and delete your bookmarks.", + "dm.read" : "Read all your Direct Messages.", + "dm.write" : "Send and manage your Direct Messages.", + "follows.read" : "View accounts you follow and accounts following you.", + "follows.write" : "Follow and unfollow accounts on your behalf.", + "like.read" : "View Posts you have liked and likes you can see.", + "like.write" : "Like and unlike Posts on your behalf.", + "list.read" : "View Lists, members, and followers of Lists you created or are a member of, including private Lists.", + "list.write" : "Create and manage Lists on your behalf.", + "media.write" : "Upload media, such as photos and videos, on your behalf.", + "mute.read" : "View accounts you have muted.", + "mute.write" : "Mute and unmute accounts on your behalf.", + "offline.access" : "Request a refresh token for the app.", + "space.read" : "View all Spaces you have access to.", + "timeline.read" : "View all Custom Timelines you can see, including public Custom Timelines from other developers.", + "tweet.moderate.write" : "Hide and unhide replies to your Posts.", + "tweet.read" : "View all Posts you can see, including those from protected accounts.", + "tweet.write" : "Post and repost on your behalf.", + "users.read" : "View any account you can see, including protected accounts." + } + } + } + }, + "UserToken" : { + "type" : "http", + "scheme" : "OAuth" + } + }, + "schemas" : { + "AddOrDeleteRulesRequest" : { + "oneOf" : [ + { + "$ref" : "#/components/schemas/AddRulesRequest" + }, + { + "$ref" : "#/components/schemas/DeleteRulesRequest" + } + ] + }, + "AddOrDeleteRulesResponse" : { + "type" : "object", + "description" : "A response from modifying user-specified stream filtering rules.", + "required" : [ + "meta" + ], + "properties" : { + "data" : { + "type" : "array", + "description" : "All user-specified stream filtering rules that were created.", + "items" : { + "$ref" : "#/components/schemas/Rule" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "$ref" : "#/components/schemas/RulesResponseMetadata" + } + } + }, + "AddRulesRequest" : { + "type" : "object", + "description" : "A request to add a user-specified stream filtering rule.", + "required" : [ + "add" + ], + "properties" : { + "add" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/RuleNoId" + } + } + } + }, + "Aggregate" : { + "type" : "integer", + "description" : "The sum of results returned in this response.", + "format" : "int32" + }, + "AllProjectClientApps" : { + "type" : "array", + "description" : "Client App Rule Counts for all applications in the project", + "items" : { + "$ref" : "#/components/schemas/AppRulesCount" + } + }, + "AllowDownloadStatus" : { + "type" : "object", + "properties" : { + "allow_download" : { + "type" : "boolean", + "example" : true + } + } + }, + "AltText" : { + "type" : "object", + "required" : [ + "text" + ], + "properties" : { + "text" : { + "type" : "string", + "description" : "Description of media ( <= 1000 characters )", + "maxLength" : 1000, + "example" : "A dancing cat" + } + } + }, + "Analytics" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "timestamped_metrics" : { + "type" : "array", + "title" : "Timestamped Metrics", + "description" : "Array containing metrics data along with the timestamps of their recording.", + "items" : { + "$ref" : "#/components/schemas/TimestampedMetrics" + } + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "AnimatedGif" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/Media" + }, + { + "type" : "object", + "properties" : { + "preview_image_url" : { + "type" : "string", + "format" : "uri" + }, + "variants" : { + "$ref" : "#/components/schemas/Variants" + } + } + } + ] + }, + "AppRulesCount" : { + "type" : "object", + "description" : "A count of user-provided stream filtering rules at the client application level.", + "properties" : { + "client_app_id" : { + "$ref" : "#/components/schemas/ClientAppId" + }, + "rule_count" : { + "type" : "integer", + "description" : "Number of rules for client application", + "format" : "int32" + } + } + }, + "AudiencePolicy" : { + "type" : "object", + "properties" : { + "creator_subscriptions" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ + "Any" + ] + } + }, + "x_subscriptions" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ + "Any" + ] + } + } + } + }, + "BookmarkAddRequest" : { + "type" : "object", + "required" : [ + "tweet_id" + ], + "properties" : { + "tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + }, + "BookmarkFolderId" : { + "type" : "string", + "description" : "The unique identifier of this Bookmark folder.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "BookmarkFolderPostsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + } + } + }, + "BookmarkFoldersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/BookmarkFolderId" + }, + "name" : { + "type" : "string" + } + } + } + } + }, + "BookmarkMutationResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "bookmarked" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "CashtagEntity" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref" : "#/components/schemas/CashtagFields" + } + ] + }, + "CashtagFields" : { + "type" : "object", + "description" : "Represent the portion of text recognized as a Cashtag, and its start and end position within the text.", + "required" : [ + "tag" + ], + "properties" : { + "tag" : { + "type" : "string", + "example" : "TWTR" + } + } + }, + "ClientAppId" : { + "type" : "string", + "description" : "The ID of the client application", + "minLength" : 1, + "maxLength" : 19 + }, + "ClientAppUsage" : { + "type" : "object", + "description" : "Usage per client app", + "properties" : { + "client_app_id" : { + "type" : "string", + "description" : "The unique identifier for this project", + "format" : "^[0-9]{1,19}$" + }, + "usage" : { + "type" : "array", + "description" : "The usage value", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UsageFields" + } + }, + "usage_result_count" : { + "type" : "integer", + "description" : "The number of results returned", + "format" : "int32" + } + } + }, + "ClientDisconnectedProblem" : { + "description" : "Your client has gone away.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "ClientForbiddenProblem" : { + "description" : "A problem that indicates your client is forbidden from making this request.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "reason" : { + "type" : "string", + "enum" : [ + "official-client-forbidden", + "client-not-enrolled" ] - }, - "ComplianceJobType": { - "type": "string", - "description": "Type of compliance job to list.", - "enum": [ - "tweets", - "users" + }, + "registration_url" : { + "type" : "string", + "format" : "uri" + } + } + } + ] + }, + "Community" : { + "type" : "object", + "description" : "A X Community is a curated group of Posts.", + "required" : [ + "id", + "name" + ], + "properties" : { + "created_at" : { + "type" : "string", + "format" : "date-time" + }, + "id" : { + "$ref" : "#/components/schemas/CommunityId" + }, + "name" : { + "type" : "string", + "description" : "The name of this Community." + } + } + }, + "CommunityId" : { + "type" : "string", + "description" : "The unique identifier of this Community.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "ComplianceJob" : { + "type" : "object", + "required" : [ + "id", + "type", + "created_at", + "upload_url", + "download_url", + "upload_expires_at", + "download_expires_at", + "status" + ], + "properties" : { + "created_at" : { + "$ref" : "#/components/schemas/CreatedAt" + }, + "download_expires_at" : { + "$ref" : "#/components/schemas/DownloadExpiration" + }, + "download_url" : { + "$ref" : "#/components/schemas/DownloadUrl" + }, + "id" : { + "$ref" : "#/components/schemas/JobId" + }, + "name" : { + "$ref" : "#/components/schemas/ComplianceJobName" + }, + "status" : { + "$ref" : "#/components/schemas/ComplianceJobStatus" + }, + "type" : { + "$ref" : "#/components/schemas/ComplianceJobType" + }, + "upload_expires_at" : { + "$ref" : "#/components/schemas/UploadExpiration" + }, + "upload_url" : { + "$ref" : "#/components/schemas/UploadUrl" + } + } + }, + "ComplianceJobName" : { + "type" : "string", + "description" : "User-provided name for a compliance job.", + "maxLength" : 64, + "example" : "my-job" + }, + "ComplianceJobStatus" : { + "type" : "string", + "description" : "Status of a compliance job.", + "enum" : [ + "created", + "in_progress", + "failed", + "complete", + "expired" + ] + }, + "ComplianceJobType" : { + "type" : "string", + "description" : "Type of compliance job to list.", + "enum" : [ + "tweets", + "users" + ] + }, + "ConflictProblem" : { + "description" : "You cannot create a new job if one is already in progress.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "ConnectionExceptionProblem" : { + "description" : "A problem that indicates something is wrong with the connection.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "connection_issue" : { + "type" : "string", + "enum" : [ + "TooManyConnections", + "ProvisioningSubscription", + "RuleConfigurationIssue", + "RulesInvalidIssue" ] - }, - "ConflictProblem": { - "description": "You cannot create a new job if one is already in progress.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } + } + } + } + ] + }, + "ContentExpiration" : { + "type" : "object", + "required" : [ + "timestamp_sec" + ], + "properties" : { + "timestamp_sec" : { + "type" : "number", + "description" : "Expiration time for content as a Unix timestamp in seconds", + "format" : "long", + "example" : 1740787200 + } + } + }, + "ContextAnnotation" : { + "type" : "object", + "description" : "Annotation inferred from the Tweet text.", + "required" : [ + "domain", + "entity" + ], + "properties" : { + "domain" : { + "$ref" : "#/components/schemas/ContextAnnotationDomainFields" + }, + "entity" : { + "$ref" : "#/components/schemas/ContextAnnotationEntityFields" + } + } + }, + "ContextAnnotationDomainFields" : { + "type" : "object", + "description" : "Represents the data for the context annotation domain.", + "required" : [ + "id" + ], + "properties" : { + "description" : { + "type" : "string", + "description" : "Description of the context annotation domain." + }, + "id" : { + "type" : "string", + "description" : "The unique id for a context annotation domain.", + "pattern" : "^[0-9]{1,19}$" + }, + "name" : { + "type" : "string", + "description" : "Name of the context annotation domain." + } + } + }, + "ContextAnnotationEntityFields" : { + "type" : "object", + "description" : "Represents the data for the context annotation entity.", + "required" : [ + "id" + ], + "properties" : { + "description" : { + "type" : "string", + "description" : "Description of the context annotation entity." + }, + "id" : { + "type" : "string", + "description" : "The unique id for a context annotation entity.", + "pattern" : "^[0-9]{1,19}$" + }, + "name" : { + "type" : "string", + "description" : "Name of the context annotation entity." + } + } + }, + "CountryCode" : { + "type" : "string", + "description" : "A two-letter ISO 3166-1 alpha-2 country code.", + "pattern" : "^[A-Z]{2}$", + "example" : "US" + }, + "CreateAttachmentsMessageRequest" : { + "type" : "object", + "required" : [ + "attachments" + ], + "properties" : { + "attachments" : { + "$ref" : "#/components/schemas/DmAttachments" + }, + "text" : { + "type" : "string", + "description" : "Text of the message.", + "minLength" : 1 + } + } + }, + "CreateComplianceJobRequest" : { + "type" : "object", + "description" : "A request to create a new batch compliance job.", + "required" : [ + "type" + ], + "properties" : { + "name" : { + "$ref" : "#/components/schemas/ComplianceJobName" + }, + "resumable" : { + "type" : "boolean", + "description" : "If true, this endpoint will return a pre-signed URL with resumable uploads enabled." + }, + "type" : { + "type" : "string", + "description" : "Type of compliance job to list.", + "enum" : [ + "tweets", + "users" + ] + } + } + }, + "CreateComplianceJobResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/ComplianceJob" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "CreateDmConversationRequest" : { + "type" : "object", + "required" : [ + "conversation_type", + "participant_ids", + "message" + ], + "properties" : { + "conversation_type" : { + "type" : "string", + "description" : "The conversation type that is being created.", + "enum" : [ + "Group" + ] + }, + "message" : { + "$ref" : "#/components/schemas/CreateMessageRequest" + }, + "participant_ids" : { + "$ref" : "#/components/schemas/DmParticipants" + } + }, + "additionalProperties" : false + }, + "CreateDmEventResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "dm_conversation_id", + "dm_event_id" + ], + "properties" : { + "dm_conversation_id" : { + "$ref" : "#/components/schemas/DmConversationId" + }, + "dm_event_id" : { + "$ref" : "#/components/schemas/DmEventId" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "CreateMessageRequest" : { + "anyOf" : [ + { + "$ref" : "#/components/schemas/CreateTextMessageRequest" + }, + { + "$ref" : "#/components/schemas/CreateAttachmentsMessageRequest" + } + ] + }, + "CreateNoteRequest" : { + "type" : "object", + "title" : "Note", + "required" : [ + "test_mode", + "post_id", + "info" + ], + "properties" : { + "info" : { + "$ref" : "#/components/schemas/NoteInfo" + }, + "post_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "test_mode" : { + "type" : "boolean", + "description" : "If true, the note being submitted is only for testing the capability of the bot, and won't be publicly visible. If false, the note being submitted will be a new proposed note on the product." + } + }, + "additionalProperties" : false + }, + "CreateNoteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/NoteId" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "CreateTextMessageRequest" : { + "type" : "object", + "required" : [ + "text" + ], + "properties" : { + "attachments" : { + "$ref" : "#/components/schemas/DmAttachments" + }, + "text" : { + "type" : "string", + "description" : "Text of the message.", + "minLength" : 1 + } + } + }, + "CreatedAt" : { + "type" : "string", + "description" : "Creation time of the compliance job.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "DeleteDmResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "DeleteNoteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "deleted" + ], + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "DeleteRulesRequest" : { + "type" : "object", + "description" : "A response from deleting user-specified stream filtering rules.", + "required" : [ + "delete" + ], + "properties" : { + "delete" : { + "type" : "object", + "description" : "IDs and values of all deleted user-specified stream filtering rules.", + "properties" : { + "ids" : { + "type" : "array", + "description" : "IDs of all deleted user-specified stream filtering rules.", + "items" : { + "$ref" : "#/components/schemas/RuleId" + } + }, + "values" : { + "type" : "array", + "description" : "Values of all deleted user-specified stream filtering rules.", + "items" : { + "$ref" : "#/components/schemas/RuleValue" + } + } + } + } + } + }, + "DisallowedResourceProblem" : { + "description" : "A problem that indicates that the resource requested violates the precepts of this API.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "required" : [ + "resource_id", + "resource_type", + "section" + ], + "properties" : { + "resource_id" : { + "type" : "string" + }, + "resource_type" : { + "type" : "string", + "enum" : [ + "user", + "tweet", + "media", + "list", + "space" ] - }, - "ConnectionExceptionProblem": { - "description": "A problem that indicates something is wrong with the connection.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "connection_issue": { - "type": "string", - "enum": [ - "TooManyConnections", - "ProvisioningSubscription", - "RuleConfigurationIssue", - "RulesInvalidIssue" - ] - } - } - } + }, + "section" : { + "type" : "string", + "enum" : [ + "data", + "includes" ] - }, - "ContentExpiration": { - "type": "object", - "required": [ - "timestamp_sec" - ], - "properties": { - "timestamp_sec": { - "type": "number", - "description": "Expiration time for content as a Unix timestamp in seconds", - "format": "long", - "example": 1740787200 - } - } - }, - "ContextAnnotation": { - "type": "object", - "description": "Annotation inferred from the Tweet text.", - "required": [ - "domain", - "entity" - ], - "properties": { - "domain": { - "$ref": "#/components/schemas/ContextAnnotationDomainFields" - }, - "entity": { - "$ref": "#/components/schemas/ContextAnnotationEntityFields" - } - } - }, - "ContextAnnotationDomainFields": { - "type": "object", - "description": "Represents the data for the context annotation domain.", - "required": [ - "id" - ], - "properties": { - "description": { - "type": "string", - "description": "Description of the context annotation domain." - }, - "id": { - "type": "string", - "description": "The unique id for a context annotation domain.", - "pattern": "^[0-9]{1,19}$" - }, - "name": { - "type": "string", - "description": "Name of the context annotation domain." - } - } - }, - "ContextAnnotationEntityFields": { - "type": "object", - "description": "Represents the data for the context annotation entity.", - "required": [ - "id" - ], - "properties": { - "description": { - "type": "string", - "description": "Description of the context annotation entity." - }, - "id": { - "type": "string", - "description": "The unique id for a context annotation entity.", - "pattern": "^[0-9]{1,19}$" - }, - "name": { - "type": "string", - "description": "Name of the context annotation entity." - } - } - }, - "CountryCode": { - "type": "string", - "description": "A two-letter ISO 3166-1 alpha-2 country code.", - "pattern": "^[A-Z]{2}$", - "example": "US" - }, - "CreateAttachmentsMessageRequest": { - "type": "object", - "required": [ - "attachments" - ], - "properties": { - "attachments": { - "$ref": "#/components/schemas/DmAttachments" - }, - "text": { - "type": "string", - "description": "Text of the message.", - "minLength": 1 - } - } - }, - "CreateComplianceJobRequest": { - "type": "object", - "description": "A request to create a new batch compliance job.", - "required": [ - "type" - ], - "properties": { - "name": { - "$ref": "#/components/schemas/ComplianceJobName" - }, - "resumable": { - "type": "boolean", - "description": "If true, this endpoint will return a pre-signed URL with resumable uploads enabled." - }, - "type": { - "type": "string", - "description": "Type of compliance job to list.", - "enum": [ - "tweets", - "users" - ] - } - } - }, - "CreateComplianceJobResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/ComplianceJob" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "CreateDmConversationRequest": { - "type": "object", - "required": [ - "conversation_type", - "participant_ids", - "message" - ], - "properties": { - "conversation_type": { - "type": "string", - "description": "The conversation type that is being created.", - "enum": [ - "Group" - ] - }, - "message": { - "$ref": "#/components/schemas/CreateMessageRequest" - }, - "participant_ids": { - "$ref": "#/components/schemas/DmParticipants" - } + } + } + } + ] + }, + "DisplayTextRange" : { + "type" : "array", + "description" : "Represent a boundary range (start and end zero-based indices) for the portion of text that is displayed for a post. `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", + "minItems" : 2, + "maxItems" : 2, + "items" : { + "type" : "integer", + "minimum" : 0 + } + }, + "DmAttachments" : { + "type" : "array", + "description" : "Attachments to a DM Event.", + "items" : { + "$ref" : "#/components/schemas/DmMediaAttachment" + } + }, + "DmConversationId" : { + "type" : "string", + "description" : "Unique identifier of a DM conversation. This can either be a numeric string, or a pair of numeric strings separated by a '-' character in the case of one-on-one DM Conversations.", + "pattern" : "^([0-9]{1,19}-[0-9]{1,19}|[0-9]{15,19})$", + "example" : "123123123-456456456" + }, + "DmEvent" : { + "type" : "object", + "required" : [ + "id", + "event_type" + ], + "properties" : { + "attachments" : { + "type" : "object", + "description" : "Specifies the type of attachments (if any) present in this DM.", + "properties" : { + "card_ids" : { + "type" : "array", + "description" : "A list of card IDs (if cards are attached).", + "minItems" : 1, + "items" : { + "type" : "string" + } + }, + "media_keys" : { + "type" : "array", + "description" : "A list of Media Keys for each one of the media attachments (if media are attached).", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/MediaKey" + } + } + } + }, + "cashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/CashtagEntity" + } + }, + "created_at" : { + "type" : "string", + "format" : "date-time" + }, + "dm_conversation_id" : { + "$ref" : "#/components/schemas/DmConversationId" + }, + "event_type" : { + "type" : "string", + "example" : "MessageCreate" + }, + "hashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/HashtagEntity" + } + }, + "id" : { + "$ref" : "#/components/schemas/DmEventId" + }, + "mentions" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/MentionEntity" + } + }, + "participant_ids" : { + "type" : "array", + "description" : "A list of participants for a ParticipantsJoin or ParticipantsLeave event_type.", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "referenced_tweets" : { + "type" : "array", + "description" : "A list of Posts this DM refers to.", + "minItems" : 1, + "items" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + } + }, + "sender_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "text" : { + "type" : "string" + }, + "urls" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UrlEntityDm" + } + } + } + }, + "DmEventId" : { + "type" : "string", + "description" : "Unique identifier of a DM Event.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "DmMediaAttachment" : { + "type" : "object", + "required" : [ + "media_id" + ], + "properties" : { + "media_id" : { + "$ref" : "#/components/schemas/MediaId" + } + } + }, + "DmParticipants" : { + "type" : "array", + "description" : "Participants for the DM Conversation.", + "minItems" : 2, + "maxItems" : 49, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "DomainRestrictions" : { + "type" : "object", + "required" : [ + "whitelist" + ], + "properties" : { + "whitelist" : { + "type" : "array", + "description" : "List of whitelisted domains", + "items" : { + "type" : "string" + } + } + } + }, + "DownloadExpiration" : { + "type" : "string", + "description" : "Expiration time of the download URL.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "DownloadUrl" : { + "type" : "string", + "description" : "URL from which the user will retrieve their compliance results.", + "format" : "uri" + }, + "DuplicateRuleProblem" : { + "description" : "The rule you have submitted is a duplicate.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "id" : { + "type" : "string" + }, + "value" : { + "type" : "string" + } + } + } + ] + }, + "End" : { + "type" : "string", + "description" : "The end time of the bucket.", + "format" : "date-time" + }, + "Engagement" : { + "type" : "object", + "description" : "An Engagement Api Response.", + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "type" : "object", + "properties" : { + "error" : { + "type" : "string" }, - "additionalProperties": false - }, - "CreateDmEventResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "dm_conversation_id", - "dm_event_id" - ], - "properties": { - "dm_conversation_id": { - "$ref": "#/components/schemas/DmConversationId" - }, - "dm_event_id": { - "$ref": "#/components/schemas/DmEventId" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } + "tweets" : { + "type" : "array", + "items" : { + "type" : "string" + } } - }, - "CreateMessageRequest": { - "anyOf": [ - { - "$ref": "#/components/schemas/CreateTextMessageRequest" - }, - { - "$ref": "#/components/schemas/CreateAttachmentsMessageRequest" - } + } + } + }, + "measurement" : { + "type" : "object", + "properties" : { + "metrics_time_series" : { + "type" : "array", + "minItems" : 1, + "items" : { + "type" : "object", + "properties" : { + "tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "value" : { + "type" : "object", + "properties" : { + "metric_values" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "metric_type" : { + "type" : "string" + }, + "metric_value" : { + "type" : "number" + } + } + } + }, + "timestamp" : { + "type" : "object", + "properties" : { + "iso8601_time" : { + "type" : "string" + } + } + } + } + } + } + } + }, + "metrics_total" : { + "type" : "array", + "minItems" : 1, + "items" : { + "type" : "object", + "properties" : { + "tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "value" : { + "type" : "array", + "minItems" : 1, + "items" : { + "type" : "object", + "properties" : { + "metric_type" : { + "type" : "string" + }, + "metric_value" : { + "type" : "number" + } + } + } + } + } + } + } + } + } + } + }, + "EntityIndicesInclusiveExclusive" : { + "type" : "object", + "description" : "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", + "required" : [ + "start", + "end" + ], + "properties" : { + "end" : { + "type" : "integer", + "description" : "Index (zero-based) at which position this entity ends. The index is exclusive.", + "minimum" : 0, + "example" : 61 + }, + "start" : { + "type" : "integer", + "description" : "Index (zero-based) at which position this entity starts. The index is inclusive.", + "minimum" : 0, + "example" : 50 + } + } + }, + "EntityIndicesInclusiveInclusive" : { + "type" : "object", + "description" : "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is inclusive.", + "required" : [ + "start", + "end" + ], + "properties" : { + "end" : { + "type" : "integer", + "description" : "Index (zero-based) at which position this entity ends. The index is inclusive.", + "minimum" : 0, + "example" : 61 + }, + "start" : { + "type" : "integer", + "description" : "Index (zero-based) at which position this entity starts. The index is inclusive.", + "minimum" : 0, + "example" : 50 + } + } + }, + "Error" : { + "type" : "object", + "required" : [ + "code", + "message" + ], + "properties" : { + "code" : { + "type" : "integer", + "format" : "int32" + }, + "message" : { + "type" : "string" + } + } + }, + "Expansions" : { + "type" : "object", + "properties" : { + "media" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Media" + } + }, + "places" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Place" + } + }, + "polls" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Poll" + } + }, + "topics" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Topic" + } + }, + "tweets" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "users" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + } + } + }, + "FieldUnauthorizedProblem" : { + "description" : "A problem that indicates that you are not allowed to see a particular field on a Tweet, User, etc.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "required" : [ + "resource_type", + "field", + "section" + ], + "properties" : { + "field" : { + "type" : "string" + }, + "resource_type" : { + "type" : "string", + "enum" : [ + "user", + "tweet", + "media", + "list", + "space" ] - }, - "CreateNoteRequest": { - "type": "object", - "title": "Note", - "required": [ - "test_mode", - "post_id", - "info" - ], - "properties": { - "info": { - "$ref": "#/components/schemas/NoteInfo" - }, - "post_id": { - "$ref": "#/components/schemas/TweetId" - }, - "test_mode": { - "type": "boolean", - "description": "If true, the note being submitted is only for testing the capability of the bot, and won't be publicly visible. If false, the note being submitted will be a new proposed note on the product." - } + }, + "section" : { + "type" : "string", + "enum" : [ + "data", + "includes" + ] + } + } + } + ] + }, + "FilteredStreamingTweetResponse" : { + "type" : "object", + "description" : "A Tweet or error that can be returned by the streaming Tweet API. The values returned with a successful streamed Tweet includes the user provided rules that the Tweet matched.", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "matching_rules" : { + "type" : "array", + "description" : "The list of rules which matched the Tweet", + "items" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/RuleId" }, - "additionalProperties": false - }, - "CreateNoteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/NoteId" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "CreateTextMessageRequest": { - "type": "object", - "required": [ - "text" - ], - "properties": { - "attachments": { - "$ref": "#/components/schemas/DmAttachments" - }, - "text": { - "type": "string", - "description": "Text of the message.", - "minLength": 1 - } - } - }, - "CreatedAt": { - "type": "string", - "description": "Creation time of the compliance job.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "DeleteDmResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "DeleteNoteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "deleted" - ], - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } + "tag" : { + "$ref" : "#/components/schemas/RuleTag" } - }, - "DeleteRulesRequest": { - "type": "object", - "description": "A response from deleting user-specified stream filtering rules.", - "required": [ - "delete" - ], - "properties": { - "delete": { - "type": "object", - "description": "IDs and values of all deleted user-specified stream filtering rules.", - "properties": { - "ids": { - "type": "array", - "description": "IDs of all deleted user-specified stream filtering rules.", - "items": { - "$ref": "#/components/schemas/RuleId" - } - }, - "values": { - "type": "array", - "description": "Values of all deleted user-specified stream filtering rules.", - "items": { - "$ref": "#/components/schemas/RuleValue" - } - } - } - } - } - }, - "DisallowedResourceProblem": { - "description": "A problem that indicates that the resource requested violates the precepts of this API.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "required": [ - "resource_id", - "resource_type", - "section" - ], - "properties": { - "resource_id": { - "type": "string" - }, - "resource_type": { - "type": "string", - "enum": [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "section": { - "type": "string", - "enum": [ - "data", - "includes" - ] - } - } - } - ] - }, - "DisplayTextRange": { - "type": "array", - "description": "Represent a boundary range (start and end zero-based indices) for the portion of text that is displayed for a post. `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", - "minItems": 2, - "maxItems": 2, - "items": { - "type": "integer", - "minimum": 0 - } - }, - "DmAttachments": { - "type": "array", - "description": "Attachments to a DM Event.", - "items": { - "$ref": "#/components/schemas/DmMediaAttachment" - } - }, - "DmConversationId": { - "type": "string", - "description": "Unique identifier of a DM conversation. This can either be a numeric string, or a pair of numeric strings separated by a '-' character in the case of one-on-one DM Conversations.", - "pattern": "^([0-9]{1,19}-[0-9]{1,19}|[0-9]{15,19})$", - "example": "123123123-456456456" - }, - "DmEvent": { - "type": "object", - "required": [ - "id", - "event_type" - ], - "properties": { - "attachments": { - "type": "object", - "description": "Specifies the type of attachments (if any) present in this DM.", - "properties": { - "card_ids": { - "type": "array", - "description": "A list of card IDs (if cards are attached).", - "minItems": 1, - "items": { - "type": "string" - } - }, - "media_keys": { - "type": "array", - "description": "A list of Media Keys for each one of the media attachments (if media are attached).", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/MediaKey" - } - } - } - }, - "cashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/CashtagEntity" - } - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "dm_conversation_id": { - "$ref": "#/components/schemas/DmConversationId" - }, - "event_type": { - "type": "string", - "example": "MessageCreate" - }, - "hashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/HashtagEntity" - } - }, - "id": { - "$ref": "#/components/schemas/DmEventId" - }, - "mentions": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/MentionEntity" - } - }, - "participant_ids": { - "type": "array", - "description": "A list of participants for a ParticipantsJoin or ParticipantsLeave event_type.", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "referenced_tweets": { - "type": "array", - "description": "A list of Posts this DM refers to.", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - }, - "sender_id": { - "$ref": "#/components/schemas/UserId" - }, - "text": { - "type": "string" - }, - "urls": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UrlEntityDm" - } - } - } - }, - "DmEventId": { - "type": "string", - "description": "Unique identifier of a DM Event.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "DmMediaAttachment": { - "type": "object", - "required": [ - "media_id" - ], - "properties": { - "media_id": { - "$ref": "#/components/schemas/MediaId" - } - } - }, - "DmParticipants": { - "type": "array", - "description": "Participants for the DM Conversation.", - "minItems": 2, - "maxItems": 49, - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "DomainRestrictions": { - "type": "object", - "required": [ - "whitelist" - ], - "properties": { - "whitelist": { - "type": "array", - "description": "List of whitelisted domains", - "items": { - "type": "string" - } - } - } - }, - "DownloadExpiration": { - "type": "string", - "description": "Expiration time of the download URL.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "DownloadUrl": { - "type": "string", - "description": "URL from which the user will retrieve their compliance results.", - "format": "uri" - }, - "DuplicateRuleProblem": { - "description": "The rule you have submitted is a duplicate.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "value": { - "type": "string" - } - } - } - ] - }, - "End": { - "type": "string", - "description": "The end time of the bucket.", - "format": "date-time" - }, - "Engagement": { - "type": "object", - "description": "An Engagement Api Response.", - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "tweets": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "measurement": { - "type": "object", - "properties": { - "metrics_time_series": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "value": { - "type": "object", - "properties": { - "metric_values": { - "type": "array", - "items": { - "type": "object", - "properties": { - "metric_type": { - "type": "string" - }, - "metric_value": { - "type": "number" - } - } - } - }, - "timestamp": { - "type": "object", - "properties": { - "iso8601_time": { - "type": "string" - } - } - } - } - } - } - } - }, - "metrics_total": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "value": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "metric_type": { - "type": "string" - }, - "metric_value": { - "type": "number" - } - } - } - } - } - } - } - } - } - } - }, - "EntityIndicesInclusiveExclusive": { - "type": "object", - "description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is exclusive.", - "required": [ - "start", - "end" - ], - "properties": { - "end": { - "type": "integer", - "description": "Index (zero-based) at which position this entity ends. The index is exclusive.", - "minimum": 0, - "example": 61 - }, - "start": { - "type": "integer", - "description": "Index (zero-based) at which position this entity starts. The index is inclusive.", - "minimum": 0, - "example": 50 - } - } - }, - "EntityIndicesInclusiveInclusive": { - "type": "object", - "description": "Represent a boundary range (start and end index) for a recognized entity (for example a hashtag or a mention). `start` must be smaller than `end`. The start index is inclusive, the end index is inclusive.", - "required": [ - "start", - "end" - ], - "properties": { - "end": { - "type": "integer", - "description": "Index (zero-based) at which position this entity ends. The index is inclusive.", - "minimum": 0, - "example": 61 - }, - "start": { - "type": "integer", - "description": "Index (zero-based) at which position this entity starts. The index is inclusive.", - "minimum": 0, - "example": 50 - } - } - }, - "Error": { - "type": "object", - "required": [ - "code", - "message" - ], - "properties": { - "code": { - "type": "integer", - "format": "int32" - }, - "message": { - "type": "string" - } - } - }, - "Expansions": { - "type": "object", - "properties": { - "media": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Media" - } - }, - "places": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Place" - } - }, - "polls": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Poll" - } - }, - "topics": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Topic" - } - }, - "tweets": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "users": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "FieldUnauthorizedProblem": { - "description": "A problem that indicates that you are not allowed to see a particular field on a Tweet, User, etc.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "required": [ - "resource_type", - "field", - "section" - ], - "properties": { - "field": { - "type": "string" - }, - "resource_type": { - "type": "string", - "enum": [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "section": { - "type": "string", - "enum": [ - "data", - "includes" - ] - } - } - } - ] - }, - "FilteredStreamingTweetResponse": { - "type": "object", - "description": "A Tweet or error that can be returned by the streaming Tweet API. The values returned with a successful streamed Tweet includes the user provided rules that the Tweet matched.", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "matching_rules": { - "type": "array", - "description": "The list of rules which matched the Tweet", - "items": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/RuleId" - }, - "tag": { - "$ref": "#/components/schemas/RuleTag" - } - } - } - } - } - }, - "FoundMediaOrigin": { - "type": "object", - "required": [ - "provider", - "id" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Identifier of media within provider ( <= 24 characters ))", - "example": "u5BzatR15TZ04" - }, - "provider": { - "type": "string", - "description": "The media provider (e.g., 'giphy') that sourced the media ( <= 8 Characters )", - "example": "giphy" - } - } - }, - "FullTextEntities": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "minItems": 1, - "items": { - "description": "Annotation for entities based on the Tweet text.", - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveInclusive" - }, - { - "type": "object", - "description": "Represents the data for the annotation.", - "properties": { - "normalized_text": { - "type": "string", - "description": "Text used to determine annotation.", - "example": "Barack Obama" - }, - "probability": { - "type": "number", - "description": "Confidence factor for annotation type.", - "minimum": 0, - "maximum": 1, - "format": "double" - }, - "type": { - "type": "string", - "description": "Annotation type.", - "example": "Person" - } - } - } - ] - } - }, - "cashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/CashtagEntity" - } - }, - "hashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/HashtagEntity" - } - }, - "mentions": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/MentionEntity" - } - }, - "urls": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UrlEntity" - } - } - } - }, - "GenericProblem": { - "description": "A generic problem with no additional information beyond that provided by the HTTP status code.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "Geo": { - "type": "object", - "required": [ - "type", - "bbox", - "properties" - ], - "properties": { - "bbox": { - "type": "array", - "minItems": 4, - "maxItems": 4, - "items": { - "type": "number", - "minimum": -180, - "maximum": 180, - "format": "double" - }, - "example": [ - -105.193475, - 39.60973, - -105.053164, - 39.761974 - ] - }, - "geometry": { - "$ref": "#/components/schemas/Point" - }, - "properties": { - "type": "object" - }, - "type": { - "type": "string", - "enum": [ - "Feature" - ] - } - } - }, - "GeoRestrictions": { - "oneOf": [ - { - "type": "object", - "required": [ - "whitelisted_country_codes", - "blacklisted_country_codes" - ], - "properties": { - "blacklisted_country_codes": { - "type": "array", - "description": "List of blacklisted country codes", - "minItems": 0, - "maxItems": 0, - "items": { - "type": "string", - "description": "Country code in ISO 3166-1 alpha-2 format", - "pattern": "^[a-zA-Z]{2}$", - "example": "us" - } - }, - "whitelisted_country_codes": { - "type": "array", - "description": "List of whitelisted country codes", - "minItems": 1, - "items": { - "type": "string", - "description": "Country code in ISO 3166-1 alpha-2 format", - "pattern": "^[a-zA-Z]{2}$", - "example": "us" - } - } - } - }, - { - "type": "object", - "required": [ - "whitelisted_country_codes", - "blacklisted_country_codes" - ], - "properties": { - "blacklisted_country_codes": { - "type": "array", - "description": "List of blacklisted country codes", - "minItems": 1, - "items": { - "type": "string", - "description": "Country code in ISO 3166-1 alpha-2 format", - "pattern": "^[a-zA-Z]{2}$", - "example": "us" - } - }, - "whitelisted_country_codes": { - "type": "array", - "description": "List of whitelisted country codes", - "minItems": 0, - "maxItems": 0, - "items": { - "type": "string", - "description": "Country code in ISO 3166-1 alpha-2 format", - "pattern": "^[a-zA-Z]{2}$", - "example": "us" - } - } - } - } - ] - }, - "Get2CommunitiesIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Community" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2CommunitiesSearchResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Community" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - } - } - } - } - }, - "Get2ComplianceJobsIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/ComplianceJob" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2ComplianceJobsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/ComplianceJob" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmConversationsIdDmEventsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/DmEvent" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmConversationsWithParticipantIdDmEventsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/DmEvent" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2DmEventsEventIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/DmEvent" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2DmEventsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/DmEvent" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2FdxAccountsAccountidContactResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/PlaidAccountContact" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidPayment-networksResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/PlaidAccountPaymentNetwork" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/PlaidAccount" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxAccountsAccountidTransactionsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/PlaidAccountTransaction" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2FdxCustomersCurrentResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/PlaidCustomer" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2Insights28hrResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Engagement" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2InsightsHistoricalResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Engagement" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2LikesFirehoseStreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/LikeWithTweetAuthor" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2LikesSample10StreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/LikeWithTweetAuthor" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2ListsIdFollowersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2ListsIdMembersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2ListsIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/List" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2ListsIdTweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2MediaAnalyticsResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/MediaAnalytics" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2MediaMediaKeyResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Media" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2MediaResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Media" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2NotesSearchNotesWrittenResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Note" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2NotesSearchPostsEligibleForNotesResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesByCreatorIdsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Space" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesIdBuyersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Space" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2SpacesIdTweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2SpacesResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Space" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2SpacesSearchResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Space" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TrendsByWoeidWoeidResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Trend" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2TweetsAnalyticsResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Analytics" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2TweetsCountsAllResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/SearchCount" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "total_tweet_count": { - "$ref": "#/components/schemas/Aggregate" - } - } - } - } - }, - "Get2TweetsCountsRecentResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/SearchCount" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "total_tweet_count": { - "$ref": "#/components/schemas/Aggregate" - } - } - } - } - }, - "Get2TweetsFirehoseStreamLangEnResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangJaResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangKoResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamLangPtResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsFirehoseStreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsIdLikingUsersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdQuoteTweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsIdRetweetedByResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsIdRetweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSample10StreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSampleStreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSearchAllResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsSearchRecentResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2TweetsSearchStreamResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2TweetsSearchStreamRulesCountsResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/RulesCount" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2UsageTweetsResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Usage" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2UsersByResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2UsersByUsernameUsernameResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/User" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2UsersIdBlockingResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdBookmarksResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowedListsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/List" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdFollowingResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdLikedTweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdListMembershipsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/List" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdMentionsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdMutingResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdOwnedListsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/List" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdPinnedListsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/List" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/User" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2UsersIdTimelinesReverseChronologicalResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersIdTweetsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "newest_id": { - "$ref": "#/components/schemas/NewestId" - }, - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "oldest_id": { - "$ref": "#/components/schemas/OldestId" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersMeResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/User" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2UsersPersonalizedTrendsResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/PersonalizedTrend" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Get2UsersRepostsOfMeResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Tweet" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - }, - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "Get2UsersResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "Get2UsersSearchResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/User" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - }, - "meta": { - "type": "object", - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "previous_token": { - "$ref": "#/components/schemas/PreviousToken" - } - } - } - } - }, - "Get2WebhooksResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/WebhookConfig" - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "meta": { - "type": "object", - "properties": { - "result_count": { - "$ref": "#/components/schemas/ResultCount" - } - } - } - } - }, - "HashtagEntity": { - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref": "#/components/schemas/HashtagFields" - } - ] - }, - "HashtagFields": { - "type": "object", - "description": "Represent the portion of text recognized as a Hashtag, and its start and end position within the text.", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "description": "The text of the Hashtag.", - "example": "MondayMotivation" - } - } - }, - "HttpStatusCode": { - "type": "integer", - "description": "HTTP Status Code.", - "minimum": 100, - "maximum": 599 - }, - "InvalidRequestProblem": { - "description": "A problem that indicates this request is invalid.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "parameters": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - } - ] - }, - "InvalidRuleProblem": { - "description": "The rule you have submitted is invalid.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "JobId": { - "type": "string", - "description": "Compliance Job ID.", - "pattern": "^[0-9]{1,19}$", - "example": "1372966999991541762" - }, - "KillAllConnectionsResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "killed_connections": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "LikeComplianceSchema": { - "type": "object", - "required": [ - "delete" - ], - "properties": { - "delete": { - "$ref": "#/components/schemas/UnlikeComplianceSchema" - } - } - }, - "LikeId": { - "type": "string", - "description": "The unique identifier of this Like.", - "pattern": "^[A-Za-z0-9_]{1,40}$", - "example": "8ba4f34e6235d905a46bac021d98e923" - }, - "LikeWithTweetAuthor": { - "type": "object", - "description": "A Like event, with the tweet author user and the tweet being liked", - "properties": { - "created_at": { - "type": "string", - "description": "Creation time of the Tweet.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "id": { - "$ref": "#/components/schemas/LikeId" - }, - "liked_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "timestamp_ms": { - "type": "integer", - "description": "Timestamp in milliseconds of creation.", - "format": "int32" - }, - "tweet_author_id": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "LikesComplianceStreamResponse": { - "description": "Likes compliance stream events.", - "oneOf": [ - { - "type": "object", - "description": "Compliance event.", - "required": [ - "data" - ], - "properties": { - "data": { - "$ref": "#/components/schemas/LikeComplianceSchema" - } - } - }, - { - "type": "object", - "required": [ - "errors" - ], - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - ] - }, - "List": { - "type": "object", - "description": "A X List is a curated group of accounts.", - "required": [ - "id", - "name" - ], - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "description": { - "type": "string" - }, - "follower_count": { - "type": "integer" - }, - "id": { - "$ref": "#/components/schemas/ListId" - }, - "member_count": { - "type": "integer" - }, - "name": { - "type": "string", - "description": "The name of this List." - }, - "owner_id": { - "$ref": "#/components/schemas/UserId" - }, - "private": { - "type": "boolean" - } - } - }, - "ListAddUserRequest": { - "type": "object", - "required": [ - "user_id" - ], - "properties": { - "user_id": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "ListCreateRequest": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "description": { - "type": "string", - "minLength": 0, - "maxLength": 100 - }, - "name": { - "type": "string", - "minLength": 1, - "maxLength": 25 - }, - "private": { - "type": "boolean", - "default": false - } - } - }, - "ListCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "description": "A X List is a curated group of accounts.", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/ListId" - }, - "name": { - "type": "string", - "description": "The name of this List." - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListFollowedRequest": { - "type": "object", - "required": [ - "list_id" - ], - "properties": { - "list_id": { - "$ref": "#/components/schemas/ListId" - } - } - }, - "ListFollowedResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "following": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListId": { - "type": "string", - "description": "The unique identifier of this List.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "ListMutateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "is_member": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListPinnedRequest": { - "type": "object", - "required": [ - "list_id" - ], - "properties": { - "list_id": { - "$ref": "#/components/schemas/ListId" - } - } - }, - "ListPinnedResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "pinned": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListUnpinResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "pinned": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ListUpdateRequest": { - "type": "object", - "properties": { - "description": { - "type": "string", - "minLength": 0, - "maxLength": 100 - }, - "name": { - "type": "string", - "minLength": 1, - "maxLength": 25 - }, - "private": { - "type": "boolean" - } - } - }, - "ListUpdateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "updated": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "ManagementInfo": { - "type": "object", - "required": [ - "managed" - ], - "properties": { - "managed": { - "type": "boolean", - "description": "Indicates if the media is managed by Media Studio", - "example": false - } - } - }, - "Media": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "height": { - "$ref": "#/components/schemas/MediaHeight" - }, - "media_key": { - "$ref": "#/components/schemas/MediaKey" - }, - "type": { - "type": "string" - }, - "width": { - "$ref": "#/components/schemas/MediaWidth" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "animated_gif": "#/components/schemas/AnimatedGif", - "photo": "#/components/schemas/Photo", - "video": "#/components/schemas/Video" - } - } - }, - "MediaAnalytics": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "media_key": { - "$ref": "#/components/schemas/MediaKey" - }, - "timestamped_metrics": { - "type": "array", - "title": "Timestamped Metrics", - "description": "Array containing metrics data along with the timestamps of their recording.", - "items": { - "$ref": "#/components/schemas/MediaTimestampedMetrics" - } - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "MediaCategory": { - "type": "string", - "description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size, video duration) and enable advanced features.", - "enum": [ - "amplify_video", - "tweet_gif", - "tweet_image", - "tweet_video", - "dm_gif", - "dm_image", - "dm_video", - "subtitles" - ], - "example": "tweet_video" - }, - "MediaCategoryOneShot": { - "type": "string", - "description": "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size) and enable advanced features.", - "enum": [ - "tweet_image", - "dm_image", - "subtitles" - ], - "example": "tweet_image" - }, - "MediaCategorySubtitles": { - "type": "string", - "description": "The media category of uploaded media to which subtitles should be added/deleted", - "enum": [ - "AmplifyVideo", - "TweetVideo" - ], - "example": "TweetVideo" - }, - "MediaHeight": { - "type": "integer", - "description": "The height of the media in pixels.", - "minimum": 0 - }, - "MediaId": { - "type": "string", - "description": "The unique identifier of this Media.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "MediaKey": { - "type": "string", - "description": "The Media Key identifier for this attachment.", - "pattern": "^([0-9]+)_([0-9]+)$" - }, - "MediaMetrics": { - "type": "object", - "properties": { - "cta_url_clicks": { - "type": "integer", - "title": "CTA URL Clicks", - "description": "Tracks the number of clicks on a call-to-action URL" - }, - "cta_watch_clicks": { - "type": "integer", - "title": "CTA Watch Clicks", - "description": "Tracks the number of clicks to watch a video or media content" - }, - "play_from_tap": { - "type": "integer", - "title": "Play From Tap", - "description": "Tracks the number of times a video or media is played from a user tap" - }, - "playback25": { - "type": "integer", - "title": "Playback 25%", - "description": "Tracks the number of times a video reaches 25% of its duration" - }, - "playback50": { - "type": "integer", - "title": "Playback 50%", - "description": "Tracks the number of times a video reaches 50% of its duration" - }, - "playback75": { - "type": "integer", - "title": "Playback 75%", - "description": "Tracks the number of times a video reaches 75% of its duration" - }, - "playback_complete": { - "type": "integer", - "title": "Playback Complete", - "description": "Tracks the number of times a video is played to completion" - }, - "playback_start": { - "type": "integer", - "title": "Playback Start", - "description": "Tracks the number of times a video playback is initiated" - }, - "video_views": { - "type": "integer", - "title": "Video Views", - "description": "Tracks the number of times a video is viewed" - }, - "watch_time_ms": { - "type": "integer", - "title": "Watch Time (ms)", - "description": "Tracks the total time spent watching a video, measured in milliseconds" - } - } - }, - "MediaPayloadBinary": { - "type": "string", - "description": "The file to upload.", - "format": "binary" - }, - "MediaPayloadByte": { - "type": "string", - "description": "The file to upload.", - "format": "byte" - }, - "MediaSegments": { - "oneOf": [ - { - "type": "integer", - "description": "An integer value representing the media upload segment.", - "minimum": 0, - "maximum": 999, - "format": "int32" - }, - { - "type": "string", - "description": "An integer value representing the media upload segment.", - "pattern": "^[0-9]{1,3}$", - "format": "integer" - } - ] - }, - "MediaTimestampedMetrics": { - "type": "object", - "properties": { - "metrics": { - "$ref": "#/components/schemas/MediaMetrics" - }, - "timestamp": { - "type": "string", - "title": "Timestamp", - "description": "ISO8601 Time", - "example": "2025-03-17T06:30:00Z" - } - } - }, - "MediaUploadAppendRequest": { - "anyOf": [ - { - "type": "object", - "required": [ - "media", - "segment_index" - ], - "properties": { - "media": { - "$ref": "#/components/schemas/MediaPayloadBinary" - }, - "segment_index": { - "$ref": "#/components/schemas/MediaSegments" - } - } - }, - { - "type": "object", - "required": [ - "media", - "segment_index" - ], - "properties": { - "media": { - "$ref": "#/components/schemas/MediaPayloadByte" - }, - "segment_index": { - "$ref": "#/components/schemas/MediaSegments" - } - } - } - ] - }, - "MediaUploadAppendResponse": { - "type": "object", - "description": "A response from getting a media upload request status.", - "required": [ - "meta" - ], - "properties": { - "data": { - "type": "object", - "properties": { - "expires_at": { - "type": "integer", - "description": "Unix epoch time in seconds after when the upload session expires.", - "format": "int64" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "MediaUploadConfigRequest": { - "type": "object", - "properties": { - "additional_owners": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "media_category": { - "$ref": "#/components/schemas/MediaCategory" - }, - "media_type": { - "type": "string", - "description": "The type of media.", - "enum": [ - "video/mp4", - "video/webm", - "video/mp2t", - "video/quicktime", - "text/srt", - "text/vtt", - "image/jpeg", - "image/gif", - "image/bmp", - "image/png", - "image/webp", - "image/pjpeg", - "image/tiff", - "model/gltf-binary", - "model/vnd.usdz+zip" - ], - "example": "video/mp4" - }, - "shared": { - "type": "boolean", - "description": "Whether this media is shared or not." - }, - "total_bytes": { - "type": "integer", - "description": "The total size of the media upload in bytes.", - "minimum": 0, - "maximum": 17179869184 - } - }, - "additionalProperties": false - }, - "MediaUploadRequestOneShot": { - "type": "object", - "required": [ - "media", - "media_category" - ], - "properties": { - "additional_owners": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "media": { - "anyOf": [ - { - "$ref": "#/components/schemas/MediaPayloadBinary" - }, - { - "$ref": "#/components/schemas/MediaPayloadByte" - } - ] - }, - "media_category": { - "$ref": "#/components/schemas/MediaCategoryOneShot" - }, - "media_type": { - "type": "string", - "description": "The type of image or subtitle.", - "enum": [ - "text/srt", - "text/vtt", - "image/jpeg", - "image/bmp", - "image/png", - "image/webp", - "image/pjpeg", - "image/tiff" - ], - "example": "image/png" - }, - "shared": { - "type": "boolean", - "description": "Whether this media is shared or not.", - "default": false - } - }, - "additionalProperties": false - }, - "MediaUploadResponse": { - "type": "object", - "description": "A response from getting a media upload request status.", - "required": [ - "meta" - ], - "properties": { - "data": { - "type": "object", - "required": [ - "id", - "media_key" - ], - "properties": { - "expires_after_secs": { - "type": "integer", - "description": "Number of seconds after which upload session expires.", - "format": "int32" - }, - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "media_key": { - "$ref": "#/components/schemas/MediaKey" - }, - "processing_info": { - "$ref": "#/components/schemas/ProcessingInfo" - }, - "size": { - "type": "integer", - "description": "Size of the upload", - "format": "int32" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "MediaWidth": { - "type": "integer", - "description": "The width of the media in pixels.", - "minimum": 0 - }, - "MentionEntity": { - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref": "#/components/schemas/MentionFields" - } - ] - }, - "MentionFields": { - "type": "object", - "description": "Represent the portion of text recognized as a User mention, and its start and end position within the text.", - "required": [ - "username" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/UserId" - }, - "username": { - "$ref": "#/components/schemas/UserName" - } - } - }, - "MetadataCreateRequest": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "metadata": { - "type": "object", - "properties": { - "allow_download_status": { - "$ref": "#/components/schemas/AllowDownloadStatus" - }, - "alt_text": { - "$ref": "#/components/schemas/AltText" - }, - "audience_policy": { - "$ref": "#/components/schemas/AudiencePolicy" - }, - "content_expiration": { - "$ref": "#/components/schemas/ContentExpiration" - }, - "domain_restrictions": { - "$ref": "#/components/schemas/DomainRestrictions" - }, - "found_media_origin": { - "$ref": "#/components/schemas/FoundMediaOrigin" - }, - "geo_restrictions": { - "$ref": "#/components/schemas/GeoRestrictions" - }, - "management_info": { - "$ref": "#/components/schemas/ManagementInfo" - }, - "preview_image": { - "$ref": "#/components/schemas/PreviewImage" - }, - "sensitive_media_warning": { - "$ref": "#/components/schemas/SensitiveMediaWarning" - }, - "shared_info": { - "$ref": "#/components/schemas/SharedInfo" - }, - "sticker_info": { - "$ref": "#/components/schemas/StickerInfo" - }, - "upload_source": { - "$ref": "#/components/schemas/UploadSource" - } - } - } - } - }, - "MetadataCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "associated_metadata": { - "type": "object", - "properties": { - "allow_download_status": { - "$ref": "#/components/schemas/AllowDownloadStatus" - }, - "alt_text": { - "$ref": "#/components/schemas/AltText" - }, - "audience_policy": { - "$ref": "#/components/schemas/AudiencePolicy" - }, - "content_expiration": { - "$ref": "#/components/schemas/ContentExpiration" - }, - "domain_restrictions": { - "$ref": "#/components/schemas/DomainRestrictions" - }, - "found_media_origin": { - "$ref": "#/components/schemas/FoundMediaOrigin" - }, - "geo_restrictions": { - "$ref": "#/components/schemas/GeoRestrictions" - }, - "management_info": { - "$ref": "#/components/schemas/ManagementInfo" - }, - "preview_image": { - "$ref": "#/components/schemas/PreviewImage" - }, - "sensitive_media_warning": { - "$ref": "#/components/schemas/SensitiveMediaWarning" - }, - "shared_info": { - "$ref": "#/components/schemas/SharedInfo" - }, - "sticker_info": { - "$ref": "#/components/schemas/StickerInfo" - }, - "upload_source": { - "$ref": "#/components/schemas/UploadSource" - } - } - }, - "id": { - "$ref": "#/components/schemas/MediaId" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Metrics": { - "type": "object", - "properties": { - "app_install_attempts": { - "type": "integer", - "title": "App Install Attempts", - "description": "Tracks number of App Install Attempts" - }, - "app_opens": { - "type": "integer", - "title": "App Opens", - "description": "Tracks number of App opens" - }, - "detail_expands": { - "type": "integer", - "title": "Detail Expands", - "description": "Tracks number of Detail expands" - }, - "email_tweet": { - "type": "integer", - "title": "Email Tweet", - "description": "Tracks number of Email Tweet actions" - }, - "engagements": { - "type": "integer", - "title": "Engagements", - "description": "Tracks total Engagements" - }, - "follows": { - "type": "integer", - "title": "Follows", - "description": "Tracks number of Follows" - }, - "hashtag_clicks": { - "type": "integer", - "title": "Hashtag Clicks", - "description": "Tracks number of Hashtag clicks" - }, - "impressions": { - "type": "integer", - "title": "Impressions", - "description": "Tracks number of Impressions" - }, - "likes": { - "type": "integer", - "title": "Likes", - "description": "Tracks number of Likes" - }, - "link_clicks": { - "type": "integer", - "title": "Link Clicks", - "description": "Tracks number of Link clicks" - }, - "media_engagements": { - "type": "integer", - "title": "Media Engagements", - "description": "Tracks number of Media engagements" - }, - "media_views": { - "type": "integer", - "title": "Media Views", - "description": "Tracks number of Media views" - }, - "permalink_clicks": { - "type": "integer", - "title": "Permalink Clicks", - "description": "Tracks number of Permalink clicks" - }, - "profile_visits": { - "type": "integer", - "title": "Profile Visits", - "description": "Tracks number of Profile visits" - }, - "quote_tweets": { - "type": "integer", - "title": "Quote Tweets", - "description": "Tracks number of Quote Tweets" - }, - "replies": { - "type": "integer", - "title": "Replies", - "description": "Tracks number of Replies" - }, - "retweets": { - "type": "integer", - "title": "Retweets", - "description": "Tracks number of Retweets" - }, - "url_clicks": { - "type": "integer", - "title": "URL Clicks", - "description": "Tracks number of URL clicks" - }, - "user_profile_clicks": { - "type": "integer", - "title": "User Profile Clicks", - "description": "Tracks number of User Profile clicks" - } - } - }, - "MisleadingTags": { - "type": "string", - "description": "Community Note misleading tags type.", - "enum": [ - "disputed_claim_as_fact", - "factual_error", - "manipulated_media", - "misinterpreted_satire", - "missing_important_context", - "other", - "outdated_information" - ] - }, - "MuteUserMutationResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "muting": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "MuteUserRequest": { - "type": "object", - "required": [ - "target_user_id" - ], - "properties": { - "target_user_id": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "NewestId": { - "type": "string", - "description": "The newest id in this response." - }, - "NextToken": { - "type": "string", - "description": "The next token.", - "minLength": 1 - }, - "NonCompliantRulesProblem": { - "description": "A problem that indicates the user's rule set is not compliant.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "Note": { - "type": "object", - "description": "A X Community Note is a note on a Post.", - "required": [ - "id", - "post_id", - "note_info" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/NoteId" - }, - "info": { - "$ref": "#/components/schemas/NoteInfo" - }, - "post_id": { - "$ref": "#/components/schemas/TweetId" - }, - "status": { - "$ref": "#/components/schemas/NoteRatingStatus" - }, - "test_result": { - "$ref": "#/components/schemas/NoteTestResult" - } - } - }, - "NoteClassification": { - "type": "string", - "description": "Community Note classification type.", - "enum": [ - "misinformed_or_potentially_misleading", - "not_misleading" - ] - }, - "NoteId": { - "type": "string", - "description": "The unique identifier of this Community Note.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "NoteInfo": { - "type": "object", - "description": "A X Community Note is a note on a Post.", - "required": [ - "text", - "classification", - "misleading_tags", - "trustworthy_sources" - ], - "properties": { - "classification": { - "$ref": "#/components/schemas/NoteClassification" - }, - "misleading_tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MisleadingTags" - } - }, - "text": { - "type": "string", - "description": "The text summary in the Community Note.", - "pattern": "^(?=.*https?://\\S+).+$" - }, - "trustworthy_sources": { - "type": "boolean", - "description": "Whether the note provided trustworthy links." - } - }, - "additionalProperties": false - }, - "NoteRatingStatus": { - "type": "string", - "description": "Community Note rating status. Only returned when test result is false", - "enum": [ - "currently_rated_helpful", - "currently_rated_not_helpful", - "firm_reject", - "insufficient_consensus", - "minimum_ratings_not_met", - "needs_more_ratings", - "needs_your_help" - ] - }, - "NoteTestResult": { - "type": "object", - "description": "The test result of a community note.", - "properties": { - "evaluator_score": { - "type": "number", - "description": "The score given to a written test note.", - "format": "double" - }, - "evaluator_type": { - "type": "string", - "description": "The type of evaluator response." - } - } - }, - "NoteTweetText": { - "type": "string", - "description": "The note content of the Tweet.", - "example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\… https:\/\/t.co\/56a0vZUx7i" - }, - "Oauth1PermissionsProblem": { - "description": "A problem that indicates your client application does not have the required OAuth1 permissions for the requested endpoint.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "OldestId": { - "type": "string", - "description": "The oldest id in this response." - }, - "OperationalDisconnectProblem": { - "description": "You have been disconnected for operational reasons.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "disconnect_type": { - "type": "string", - "enum": [ - "OperationalDisconnect", - "UpstreamOperationalDisconnect", - "ForceDisconnect", - "UpstreamUncleanDisconnect", - "SlowReader", - "InternalError", - "ClientApplicationStateDegraded", - "InvalidRules" - ] - } - } - } - ] - }, - "PaginationToken32": { - "type": "string", - "description": "A base32 pagination token.", - "minLength": 16 - }, - "PaginationToken36": { - "type": "string", - "description": "A base36 pagination token.", - "minLength": 1 - }, - "PaginationTokenLong": { - "type": "string", - "description": "A 'long' pagination token.", - "minLength": 1, - "maxLength": 19 - }, - "PersonalizedTrend": { - "type": "object", - "description": "A trend.", - "properties": { - "category": { - "type": "string", - "description": "Category of this trend." - }, - "post_count": { - "type": "integer", - "description": "Number of posts pertaining to this trend." - }, - "trend_name": { - "type": "string", - "description": "Name of the trend." - }, - "trending_since": { - "type": "string", - "description": "Time since this is trending." - } - } - }, - "Photo": { - "allOf": [ - { - "$ref": "#/components/schemas/Media" - }, - { - "type": "object", - "properties": { - "alt_text": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - } - } - ] - }, - "Place": { - "type": "object", - "required": [ - "id", - "full_name" - ], - "properties": { - "contained_within": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/PlaceId" - } - }, - "country": { - "type": "string", - "description": "The full name of the county in which this place exists.", - "example": "United States" - }, - "country_code": { - "$ref": "#/components/schemas/CountryCode" - }, - "full_name": { - "type": "string", - "description": "The full name of this place.", - "example": "Lakewood, CO" - }, - "geo": { - "$ref": "#/components/schemas/Geo" - }, - "id": { - "$ref": "#/components/schemas/PlaceId" - }, - "name": { - "type": "string", - "description": "The human readable name of this place.", - "example": "Lakewood" - }, - "place_type": { - "$ref": "#/components/schemas/PlaceType" - } - } - }, - "PlaceId": { - "type": "string", - "description": "The identifier for this place.", - "example": "f7eb2fa2fea288b1" - }, - "PlaceType": { - "type": "string", - "enum": [ - "poi", - "neighborhood", - "city", - "admin", - "country", - "unknown" - ], - "example": "city" - }, - "PlaidAccount": { - "type": "object", - "description": "Descriptor for a Plaid account.", - "required": [ - "accountId", - "accountCategory", - "accountNumberDisplay", - "accountType", - "currency", - "productName", - "status" - ], - "properties": { - "accountCategory": { - "type": "string", - "description": "The category of the account (e.g., personal, business)." - }, - "accountId": { - "type": "string", - "description": "The Plaid account ID." - }, - "accountNumberDisplay": { - "type": "string", - "description": "The last 2-4 digits of the account number." - }, - "accountType": { - "type": "string", - "description": "The type of the account (e.g., checking, savings)." - }, - "availableBalance": { - "type": "number", - "description": "The available balance of the account." - }, - "currency": { - "$ref": "#/components/schemas/PlaidCurrency" - }, - "currentBalance": { - "type": "number", - "description": "The current balance of the account." - }, - "nickname": { - "type": "string", - "description": "The nickname of the account." - }, - "productName": { - "type": "string", - "description": "The name of the product associated with the account." - }, - "status": { - "type": "string", - "description": "The status of the account." - } - } - }, - "PlaidAccountContact": { - "type": "object", - "description": "Contact information associated with a Plaid account.", - "required": [ - "name", - "addresses", - "emails", - "telephones" - ], - "properties": { - "addresses": { - "type": "array", - "description": "List of addresses associated with the account holder.", - "items": { - "$ref": "#/components/schemas/PlaidAddress" - } - }, - "emails": { - "type": "array", - "description": "List of email addresses associated with the account holder.", - "items": { - "type": "string" - } - }, - "name": { - "$ref": "#/components/schemas/PlaidName" - }, - "relationship": { - "type": "string", - "description": "Relationship of the contact to the account." - }, - "telephones": { - "type": "array", - "description": "List of telephone numbers associated with the account holder.", - "items": { - "$ref": "#/components/schemas/PlaidTelephone" - } - } - } - }, - "PlaidAccountPaymentNetwork": { - "type": "object", - "description": "Payment network details associated with the account.", - "required": [ - "identifier", - "type", - "transferIn", - "transferOut", - "bankId" - ], - "properties": { - "bankId": { - "type": "string", - "description": "The bank ID associated with the account." - }, - "identifier": { - "type": "string", - "description": "The payment network identifier." - }, - "transferIn": { - "type": "boolean", - "description": "Indicates if transfers into the account are supported." - }, - "transferOut": { - "type": "boolean", - "description": "Indicates if transfers out of the account are supported." - }, - "type": { - "type": "string", - "description": "The type of payment network (e.g., ACH, SEPA)." - } - } - }, - "PlaidAccountTransaction": { - "type": "object", - "description": "Descriptor for a Plaid account.", - "required": [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "status", - "transactionId", - "transactionTimestamp" - ], - "properties": { - "accountCategory": { - "type": "string", - "description": "The category of the account (e.g., personal, business)." - }, - "amount": { - "type": "number", - "description": "The amount transacted." - }, - "debitCreditMemo": { - "type": "string", - "description": "Memo for transaction (e.g. CREDIT)" - }, - "description": { - "type": "string", - "description": "The transaction description" - }, - "postedTimestamp": { - "type": "string", - "description": "The timestamp when the transaction was posted." - }, - "status": { - "type": "string", - "description": "The status of the transaction." - }, - "transactionId": { - "type": "string", - "description": "The identifier for the transaction." - }, - "transactionTimestamp": { - "type": "string", - "description": "The timestamp when the transaction occurred." - } - } - }, - "PlaidAddress": { - "type": "object", - "description": "Address information for the account holder.", - "required": [ - "city", - "country", - "line1" - ], - "properties": { - "city": { - "type": "string", - "description": "The city of the address." - }, - "country": { - "type": "string", - "description": "The country of the address (ISO 3166-1 alpha-2 code)." - }, - "line1": { - "type": "string", - "description": "The first line of the address." - }, - "line2": { - "type": "string", - "description": "The second line of the address." - }, - "postalCode": { - "type": "string", - "description": "The postal code of the address." - }, - "region": { - "type": "string", - "description": "The region or state of the address." - } - } - }, - "PlaidCurrency": { - "type": "object", - "description": "Currency information.", - "required": [ - "currencyCode" - ], - "properties": { - "currencyCode": { - "type": "string", - "description": "The ISO 4217 currency code." - } - } - }, - "PlaidCustomer": { - "type": "object", - "description": "A user id for the plaid customer", - "properties": { - "customerId": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "PlaidName": { - "type": "object", - "description": "Name information for the account holder.", - "required": [ - "first", - "last" - ], - "properties": { - "first": { - "type": "string", - "description": "The first name of the account holder." - }, - "last": { - "type": "string", - "description": "The last name of the account holder." - } - } - }, - "PlaidTelephone": { - "type": "object", - "description": "Telephone information for the account holder.", - "required": [ - "country", - "number", - "type" - ], - "properties": { - "country": { - "type": "string", - "description": "The country code for the phone number (e.g., '+1')." - }, - "number": { - "type": "string", - "description": "The phone number." - }, - "type": { - "type": "string", - "description": "The type of phone number (e.g., 'mobile')." - } - } - }, - "Point": { - "type": "object", - "description": "A [GeoJson Point](https://tools.ietf.org/html/rfc7946#section-3.1.2) geometry object.", - "required": [ - "type", - "coordinates" - ], - "properties": { - "coordinates": { - "$ref": "#/components/schemas/Position" - }, - "type": { - "type": "string", - "enum": [ - "Point" - ], - "example": "Point" - } - } - }, - "Poll": { - "type": "object", - "description": "Represent a Poll attached to a Tweet.", - "required": [ - "id", - "options" - ], - "properties": { - "duration_minutes": { - "type": "integer", - "minimum": 5, - "maximum": 10080, - "format": "int32" - }, - "end_datetime": { - "type": "string", - "format": "date-time" - }, - "id": { - "$ref": "#/components/schemas/PollId" - }, - "options": { - "type": "array", - "minItems": 2, - "maxItems": 4, - "items": { - "$ref": "#/components/schemas/PollOption" - } - }, - "voting_status": { - "type": "string", - "enum": [ - "open", - "closed" - ] - } - } - }, - "PollId": { - "type": "string", - "description": "Unique identifier of this poll.", - "pattern": "^[0-9]{1,19}$", - "example": "1365059861688410112" - }, - "PollOption": { - "type": "object", - "description": "Describes a choice in a Poll object.", - "required": [ - "position", - "label", - "votes" - ], - "properties": { - "label": { - "$ref": "#/components/schemas/PollOptionLabel" - }, - "position": { - "type": "integer", - "description": "Position of this choice in the poll." - }, - "votes": { - "type": "integer", - "description": "Number of users who voted for this choice." - } - } - }, - "PollOptionLabel": { - "type": "string", - "description": "The text of a poll choice.", - "minLength": 1, - "maxLength": 25 - }, - "Position": { - "type": "array", - "description": "A [GeoJson Position](https://tools.ietf.org/html/rfc7946#section-3.1.1) in the format `[longitude,latitude]`.", - "minItems": 2, - "maxItems": 2, - "items": { - "type": "number" - }, - "example": [ - -105.18816086351444, - 40.247749999999996 - ] - }, - "PreviewImage": { - "type": "object", - "required": [ - "media_key" - ], - "properties": { - "media_key": { - "type": "object", - "properties": { - "media": { - "$ref": "#/components/schemas/MediaId" - }, - "media_category": { - "type": "string", - "description": "The media category of media", - "enum": [ - "TweetImage" - ], - "default": "TweetImage", - "example": "TweetImage" - } - } - } - } - }, - "PreviousToken": { - "type": "string", - "description": "The previous token.", - "minLength": 1 - }, - "Problem": { - "type": "object", - "description": "An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).", - "required": [ - "type", - "title" - ], - "properties": { - "detail": { - "type": "string" - }, - "status": { - "type": "integer" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "about:blank": "#/components/schemas/GenericProblem", - "https://api.twitter.com/2/problems/client-disconnected": "#/components/schemas/ClientDisconnectedProblem", - "https://api.twitter.com/2/problems/client-forbidden": "#/components/schemas/ClientForbiddenProblem", - "https://api.twitter.com/2/problems/conflict": "#/components/schemas/ConflictProblem", - "https://api.twitter.com/2/problems/disallowed-resource": "#/components/schemas/DisallowedResourceProblem", - "https://api.twitter.com/2/problems/duplicate-rules": "#/components/schemas/DuplicateRuleProblem", - "https://api.twitter.com/2/problems/invalid-request": "#/components/schemas/InvalidRequestProblem", - "https://api.twitter.com/2/problems/invalid-rules": "#/components/schemas/InvalidRuleProblem", - "https://api.twitter.com/2/problems/noncompliant-rules": "#/components/schemas/NonCompliantRulesProblem", - "https://api.twitter.com/2/problems/not-authorized-for-field": "#/components/schemas/FieldUnauthorizedProblem", - "https://api.twitter.com/2/problems/not-authorized-for-resource": "#/components/schemas/ResourceUnauthorizedProblem", - "https://api.twitter.com/2/problems/operational-disconnect": "#/components/schemas/OperationalDisconnectProblem", - "https://api.twitter.com/2/problems/resource-not-found": "#/components/schemas/ResourceNotFoundProblem", - "https://api.twitter.com/2/problems/resource-unavailable": "#/components/schemas/ResourceUnavailableProblem", - "https://api.twitter.com/2/problems/rule-cap": "#/components/schemas/RulesCapProblem", - "https://api.twitter.com/2/problems/streaming-connection": "#/components/schemas/ConnectionExceptionProblem", - "https://api.twitter.com/2/problems/unsupported-authentication": "#/components/schemas/UnsupportedAuthenticationProblem", - "https://api.twitter.com/2/problems/usage-capped": "#/components/schemas/UsageCapExceededProblem" - } - } - }, - "ProcessingInfo": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "check_after_secs": { - "type": "integer", - "description": "Number of seconds to check again for status", - "format": "int32" - }, - "progress_percent": { - "type": "integer", - "description": "Percent of upload progress", - "format": "int32" - }, - "state": { - "type": "string", - "description": "State of upload", - "enum": [ - "succeeded", - "in_progress", - "pending", - "failed" - ] - } - } - }, - "ReplayJobCreateResponse": { - "type": "object", - "description": "Confirmation that the replay job request was accepted.", - "required": [ - "job_id", - "created_at" - ], - "properties": { - "created_at": { - "type": "string", - "description": "The UTC timestamp indicating when the replay job was created.", - "format": "date-time", - "example": "2025-04-24T20:57:15.242Z" - }, - "job_id": { - "type": "string", - "description": "The unique identifier for the initiated replay job.", - "example": "1915510368169844736" - } - } - }, - "ReplySettings": { - "type": "string", - "description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, and following.", - "pattern": "^[A-Za-z]{1,12}$", - "enum": [ - "everyone", - "mentionedUsers", - "following", - "other" - ] - }, - "ReplySettingsWithVerifiedUsers": { - "type": "string", - "description": "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, subscribers, verified and following.", - "pattern": "^[A-Za-z]{1,12}$", - "enum": [ - "everyone", - "mentionedUsers", - "following", - "other", - "subscribers", - "verified" - ] - }, - "ResourceNotFoundProblem": { - "description": "A problem that indicates that a given Tweet, User, etc. does not exist.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "required": [ - "parameter", - "value", - "resource_id", - "resource_type" - ], - "properties": { - "parameter": { - "type": "string", - "minLength": 1 - }, - "resource_id": { - "type": "string" - }, - "resource_type": { - "type": "string", - "enum": [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "value": { - "type": "string", - "description": "Value will match the schema of the field." - } - } - } - ] - }, - "ResourceUnauthorizedProblem": { - "description": "A problem that indicates you are not allowed to see a particular Tweet, User, etc.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "required": [ - "value", - "resource_id", - "resource_type", - "section", - "parameter" - ], - "properties": { - "parameter": { - "type": "string" - }, - "resource_id": { - "type": "string" - }, - "resource_type": { - "type": "string", - "enum": [ - "user", - "tweet", - "media", - "list", - "space" - ] - }, - "section": { - "type": "string", - "enum": [ - "data", - "includes" - ] - }, - "value": { - "type": "string" - } - } - } - ] - }, - "ResourceUnavailableProblem": { - "description": "A problem that indicates a particular Tweet, User, etc. is not available to you.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "required": [ - "parameter", - "resource_id", - "resource_type" - ], - "properties": { - "parameter": { - "type": "string", - "minLength": 1 - }, - "resource_id": { - "type": "string" - }, - "resource_type": { - "type": "string", - "enum": [ - "user", - "tweet", - "media", - "list", - "space" - ] - } - } - } - ] - }, - "ResultCount": { - "type": "integer", - "description": "The number of results returned in this response.", - "format": "int32" - }, - "Rule": { - "type": "object", - "description": "A user-provided stream filtering rule.", - "required": [ - "value" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/RuleId" - }, - "tag": { - "$ref": "#/components/schemas/RuleTag" - }, - "value": { - "$ref": "#/components/schemas/RuleValue" - } - } - }, - "RuleId": { - "type": "string", - "description": "Unique identifier of this rule.", - "pattern": "^[0-9]{1,19}$", - "example": "120897978112909812" - }, - "RuleNoId": { - "type": "object", - "description": "A user-provided stream filtering rule.", - "required": [ - "value" - ], - "properties": { - "tag": { - "$ref": "#/components/schemas/RuleTag" - }, - "value": { - "$ref": "#/components/schemas/RuleValue" - } - } - }, - "RuleTag": { - "type": "string", - "description": "A tag meant for the labeling of user provided rules.", - "example": "Non-retweeted coffee Posts" - }, - "RuleValue": { - "type": "string", - "description": "The filterlang value of the rule.", - "example": "coffee -is:retweet" - }, - "RulesCapProblem": { - "description": "You have exceeded the maximum number of rules.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "RulesCount": { - "type": "object", - "description": "A count of user-provided stream filtering rules at the application and project levels.", - "properties": { - "all_project_client_apps": { - "$ref": "#/components/schemas/AllProjectClientApps" - }, - "cap_per_client_app": { - "type": "integer", - "description": "Cap of number of rules allowed per client application", - "format": "int32" - }, - "cap_per_project": { - "type": "integer", - "description": "Cap of number of rules allowed per project", - "format": "int32" - }, - "client_app_rules_count": { - "$ref": "#/components/schemas/AppRulesCount" - }, - "project_rules_count": { - "type": "integer", - "description": "Number of rules for project", - "format": "int32" - } - } - }, - "RulesLookupResponse": { - "type": "object", - "required": [ - "meta" - ], - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Rule" - } - }, - "meta": { - "$ref": "#/components/schemas/RulesResponseMetadata" - } - } - }, - "RulesRequestSummary": { - "oneOf": [ - { - "type": "object", - "description": "A summary of the results of the addition of user-specified stream filtering rules.", - "required": [ - "created", - "not_created", - "valid", - "invalid" - ], - "properties": { - "created": { - "type": "integer", - "description": "Number of user-specified stream filtering rules that were created.", - "format": "int32", - "example": 1 - }, - "invalid": { - "type": "integer", - "description": "Number of invalid user-specified stream filtering rules.", - "format": "int32", - "example": 1 - }, - "not_created": { - "type": "integer", - "description": "Number of user-specified stream filtering rules that were not created.", - "format": "int32", - "example": 1 - }, - "valid": { - "type": "integer", - "description": "Number of valid user-specified stream filtering rules.", - "format": "int32", - "example": 1 - } - } - }, - { - "type": "object", - "required": [ - "deleted", - "not_deleted" - ], - "properties": { - "deleted": { - "type": "integer", - "description": "Number of user-specified stream filtering rules that were deleted.", - "format": "int32" - }, - "not_deleted": { - "type": "integer", - "description": "Number of user-specified stream filtering rules that were not deleted.", - "format": "int32" - } - } - } - ] - }, - "RulesResponseMetadata": { - "type": "object", - "required": [ - "sent" - ], - "properties": { - "next_token": { - "$ref": "#/components/schemas/NextToken" - }, - "result_count": { - "type": "integer", - "description": "Number of Rules in result set.", - "format": "int32" - }, - "sent": { - "type": "string" - }, - "summary": { - "$ref": "#/components/schemas/RulesRequestSummary" - } - } - }, - "SearchCount": { - "type": "object", - "description": "Represent a Search Count Result.", - "required": [ - "end", - "start", - "tweet_count" - ], - "properties": { - "end": { - "$ref": "#/components/schemas/End" - }, - "start": { - "$ref": "#/components/schemas/Start" - }, - "tweet_count": { - "$ref": "#/components/schemas/TweetCount" - } - } - }, - "SensitiveMediaWarning": { - "type": "object", - "properties": { - "adult_content": { - "type": "boolean", - "description": "Indicates if the content contains adult material", - "example": true - }, - "graphic_violence": { - "type": "boolean", - "description": "Indicates if the content depicts graphic violence", - "example": true - }, - "other": { - "type": "boolean", - "description": "Indicates if the content has other sensitive characteristics", - "example": false - } - } - }, - "SharedInfo": { - "type": "object", - "required": [ - "shared" - ], - "properties": { - "shared": { - "type": "boolean", - "description": "Indicates if the media is shared in direct messages", - "example": false - } - } - }, - "Space": { - "type": "object", - "description": "", - "required": [ - "id", - "state" - ], - "properties": { - "created_at": { - "type": "string", - "description": "Creation time of the Space.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "creator_id": { - "$ref": "#/components/schemas/UserId" - }, - "ended_at": { - "type": "string", - "description": "End time of the Space.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "host_ids": { - "type": "array", - "description": "The user ids for the hosts of the Space.", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "id": { - "$ref": "#/components/schemas/SpaceId" - }, - "invited_user_ids": { - "type": "array", - "description": "An array of user ids for people who were invited to a Space.", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "is_ticketed": { - "type": "boolean", - "description": "Denotes if the Space is a ticketed Space.", - "example": "false" - }, - "lang": { - "type": "string", - "description": "The language of the Space.", - "example": "en" - }, - "participant_count": { - "type": "integer", - "description": "The number of participants in a Space.", - "format": "int32", - "example": 10 - }, - "scheduled_start": { - "type": "string", - "description": "A date time stamp for when a Space is scheduled to begin.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "speaker_ids": { - "type": "array", - "description": "An array of user ids for people who were speakers in a Space.", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "started_at": { - "type": "string", - "description": "When the Space was started as a date string.", - "format": "date-time", - "example": "2021-7-14T04:35:55Z" - }, - "state": { - "type": "string", - "description": "The current state of the Space.", - "enum": [ - "live", - "scheduled", - "ended" - ], - "example": "live" - }, - "subscriber_count": { - "type": "integer", - "description": "The number of people who have either purchased a ticket or set a reminder for this Space.", - "format": "int32", - "example": 10 - }, - "title": { - "type": "string", - "description": "The title of the Space.", - "example": "Spaces are Awesome" - }, - "topics": { - "type": "array", - "description": "The topics of a Space, as selected by its creator.", - "items": { - "type": "object", - "description": "The X Topic object.", - "required": [ - "id", - "name" - ], - "properties": { - "description": { - "type": "string", - "description": "The description of the given topic." - }, - "id": { - "type": "string", - "description": "An ID suitable for use in the REST API." - }, - "name": { - "type": "string", - "description": "The name of the given topic." - } - }, - "example": { - "description": "All about technology", - "id": "848920371311001600", - "name": "Technology" - } - } - }, - "updated_at": { - "type": "string", - "description": "When the Space was last updated.", - "format": "date-time", - "example": "2021-7-14T04:35:55Z" - } - } - }, - "SpaceId": { - "type": "string", - "description": "The unique identifier of this Space.", - "pattern": "^[a-zA-Z0-9]{1,13}$", - "example": "1SLjjRYNejbKM" - }, - "Start": { - "type": "string", - "description": "The start time of the bucket.", - "format": "date-time" - }, - "Sticker": { - "type": "object", - "properties": { - "aspect_ratio": { - "type": "number", - "description": "width-to-height ratio of the media", - "format": "double", - "example": 1.78 - }, - "group_annotation_id": { - "type": "number", - "description": "A unique identifier for the group of annotations associated with the media", - "format": "long", - "example": 987654321098765 - }, - "id": { - "type": "string", - "description": "Unique identifier for sticker", - "example": "12345" - }, - "sticker_set_annotation_id": { - "type": "number", - "description": "A unique identifier for the sticker set associated with the media", - "format": "long", - "example": 123456789012345 - }, - "transform_a": { - "type": "number", - "description": "Scale or rotate the media on the x-axis", - "format": "double", - "example": 1.0 - }, - "transform_b": { - "type": "number", - "description": "Skew the media on the x-axis", - "format": "double", - "example": 0.0 - }, - "transform_c": { - "type": "number", - "description": "Skew the media on the y-axis", - "format": "double", - "example": 0.0 - }, - "transform_d": { - "type": "number", - "description": "Scale or rotate the media on the y-axis", - "format": "double", - "example": 1.0 - }, - "transform_tx": { - "type": "number", - "description": "Scale or rotate the media on the x-axis", - "format": "double", - "example": 10.5 - }, - "transform_ty": { - "type": "number", - "description": "The vertical translation (shift) value for the media", - "format": "double", - "example": -5.2 - } - } - }, - "StickerInfo": { - "type": "object", - "required": [ - "stickers" - ], - "properties": { - "stickers": { - "type": "array", - "description": "Stickers list must not be empty and should not exceed 25", - "items": { - "$ref": "#/components/schemas/Sticker" - } - } - } - }, - "StreamingLikeResponseV2": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/LikeWithTweetAuthor" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "StreamingTweetResponse": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Tweet" - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - }, - "includes": { - "$ref": "#/components/schemas/Expansions" - } - } - }, - "SubscriptionsCountGetResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "description": "The count of active subscriptions across all webhooks", - "required": [ - "account_name", - "provisioned_count", - "subscriptions_count_all", - "subscriptions_count_direct_messages" - ], - "properties": { - "account_name": { - "type": "string", - "description": "The account name" - }, - "provisioned_count": { - "type": "string", - "description": "The limit for subscriptions for this app" - }, - "subscriptions_count_all": { - "type": "string", - "description": "The number of active subscriptions across all webhooks" - }, - "subscriptions_count_direct_messages": { - "type": "string", - "description": "The number of active direct message subscriptions" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsCreateRequest": { - "type": "object" - }, - "SubscriptionsCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "subscribed": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "subscribed": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsGetResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "subscribed": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubscriptionsListGetResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "description": "The list of active subscriptions for a specified webhook", - "required": [ - "application_id", - "webhook_id", - "webhook_url", - "subscriptions" - ], - "properties": { - "application_id": { - "type": "string", - "description": "The application ID" - }, - "subscriptions": { - "type": "array", - "description": "List of active subscriptions for the webhook", - "items": { - "type": "object", - "properties": { - "user_id": { - "type": "string", - "description": "The ID of the user the webhook is subscribed to" - } - } - } - }, - "webhook_id": { - "type": "string", - "description": "The associated webhook ID" - }, - "webhook_url": { - "type": "string", - "description": "The url for the associated webhook" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubtitleLanguageCode": { - "type": "string", - "description": "The language code should be a BCP47 code (e.g. 'EN\", \"SP\")", - "pattern": "^[A-Z]{2}$", - "example": "EN" - }, - "Subtitles": { - "type": "object", - "properties": { - "display_name": { - "type": "string", - "description": "Language name in a human readable form", - "example": "English" - }, - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "language_code": { - "$ref": "#/components/schemas/SubtitleLanguageCode" - } - } - }, - "SubtitlesCreateRequest": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "media_category": { - "$ref": "#/components/schemas/MediaCategorySubtitles" - }, - "subtitles": { - "$ref": "#/components/schemas/Subtitles" - } - } - }, - "SubtitlesCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "id", - "media_category", - "associated_subtitles" - ], - "properties": { - "associated_subtitles": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Subtitles" - } - }, - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "media_category": { - "$ref": "#/components/schemas/MediaCategorySubtitles" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "SubtitlesDeleteRequest": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/MediaId" - }, - "language_code": { - "$ref": "#/components/schemas/SubtitleLanguageCode" - }, - "media_category": { - "$ref": "#/components/schemas/MediaCategorySubtitles" - } - } - }, - "SubtitlesDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "deleted" - ], - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "TimestampedMetrics": { - "type": "object", - "properties": { - "metrics": { - "$ref": "#/components/schemas/Metrics" - }, - "timestamp": { - "type": "string", - "title": "Timestamp", - "description": "ISO8601 Time", - "example": "2025-03-17T06:30:00Z" - } - } - }, - "Topic": { - "type": "object", - "description": "The topic of a Space, as selected by its creator.", - "required": [ - "id", - "name" - ], - "properties": { - "description": { - "type": "string", - "description": "The description of the given topic.", - "example": "All about technology" - }, - "id": { - "$ref": "#/components/schemas/TopicId" - }, - "name": { - "type": "string", - "description": "The name of the given topic.", - "example": "Technology" - } - } - }, - "TopicId": { - "type": "string", - "description": "Unique identifier of this Topic." - }, - "Trend": { - "type": "object", - "description": "A trend.", - "properties": { - "trend_name": { - "type": "string", - "description": "Name of the trend." - }, - "tweet_count": { - "type": "integer", - "description": "Number of Posts in this trend.", - "format": "int32" - } - } - }, - "Tweet": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "description": "Specifies the type of attachments (if any) present in this Tweet.", - "properties": { - "media_keys": { - "type": "array", - "description": "A list of Media Keys for each one of the media attachments (if media are attached).", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/MediaKey" - } - }, - "media_source_tweet_id": { - "type": "array", - "description": "A list of Posts the media on this Tweet was originally posted in. For example, if the media on a tweet is re-used in another Tweet, this refers to the original, source Tweet..", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/TweetId" - } - }, - "poll_ids": { - "type": "array", - "description": "A list of poll IDs (if polls are attached).", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/PollId" - } - } - } - }, - "author_id": { - "$ref": "#/components/schemas/UserId" - }, - "community_id": { - "$ref": "#/components/schemas/CommunityId" - }, - "context_annotations": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/ContextAnnotation" - } - }, - "conversation_id": { - "$ref": "#/components/schemas/TweetId" - }, - "created_at": { - "type": "string", - "description": "Creation time of the Tweet.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "display_text_range": { - "$ref": "#/components/schemas/DisplayTextRange" - }, - "edit_controls": { - "type": "object", - "required": [ - "is_edit_eligible", - "editable_until", - "edits_remaining" - ], - "properties": { - "editable_until": { - "type": "string", - "description": "Time when Tweet is no longer editable.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "edits_remaining": { - "type": "integer", - "description": "Number of times this Tweet can be edited." - }, - "is_edit_eligible": { - "type": "boolean", - "description": "Indicates if this Tweet is eligible to be edited.", - "example": false - } - } - }, - "edit_history_tweet_ids": { - "type": "array", - "description": "A list of Tweet Ids in this Tweet chain.", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/TweetId" - } - }, - "entities": { - "$ref": "#/components/schemas/FullTextEntities" - }, - "geo": { - "type": "object", - "description": "The location tagged on the Tweet, if the user provided one.", - "properties": { - "coordinates": { - "$ref": "#/components/schemas/Point" - }, - "place_id": { - "$ref": "#/components/schemas/PlaceId" - } - } - }, - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "in_reply_to_user_id": { - "$ref": "#/components/schemas/UserId" - }, - "lang": { - "type": "string", - "description": "Language of the Tweet, if detected by X. Returned as a BCP47 language tag.", - "example": "en" - }, - "non_public_metrics": { - "type": "object", - "description": "Nonpublic engagement metrics for the Tweet at the time of the request.", - "properties": { - "impression_count": { - "type": "integer", - "description": "Number of times this Tweet has been viewed.", - "format": "int32" - } - } - }, - "note_tweet": { - "type": "object", - "description": "The full-content of the Tweet, including text beyond 280 characters.", - "properties": { - "entities": { - "type": "object", - "properties": { - "cashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/CashtagEntity" - } - }, - "hashtags": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/HashtagEntity" - } - }, - "mentions": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/MentionEntity" - } - }, - "urls": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UrlEntity" - } - } - } - }, - "text": { - "$ref": "#/components/schemas/NoteTweetText" - } - } - }, - "organic_metrics": { - "type": "object", - "description": "Organic nonpublic engagement metrics for the Tweet at the time of the request.", - "required": [ - "impression_count", - "retweet_count", - "reply_count", - "like_count" - ], - "properties": { - "impression_count": { - "type": "integer", - "description": "Number of times this Tweet has been viewed." - }, - "like_count": { - "type": "integer", - "description": "Number of times this Tweet has been liked." - }, - "reply_count": { - "type": "integer", - "description": "Number of times this Tweet has been replied to." - }, - "retweet_count": { - "type": "integer", - "description": "Number of times this Tweet has been Retweeted." - } - } - }, - "possibly_sensitive": { - "type": "boolean", - "description": "Indicates if this Tweet contains URLs marked as sensitive, for example content suitable for mature audiences.", - "example": false - }, - "promoted_metrics": { - "type": "object", - "description": "Promoted nonpublic engagement metrics for the Tweet at the time of the request.", - "properties": { - "impression_count": { - "type": "integer", - "description": "Number of times this Tweet has been viewed.", - "format": "int32" - }, - "like_count": { - "type": "integer", - "description": "Number of times this Tweet has been liked.", - "format": "int32" - }, - "reply_count": { - "type": "integer", - "description": "Number of times this Tweet has been replied to.", - "format": "int32" - }, - "retweet_count": { - "type": "integer", - "description": "Number of times this Tweet has been Retweeted.", - "format": "int32" - } - } - }, - "public_metrics": { - "type": "object", - "description": "Engagement metrics for the Tweet at the time of the request.", - "required": [ - "retweet_count", - "reply_count", - "like_count", - "impression_count", - "bookmark_count" - ], - "properties": { - "bookmark_count": { - "type": "integer", - "description": "Number of times this Tweet has been bookmarked.", - "format": "int32" - }, - "impression_count": { - "type": "integer", - "description": "Number of times this Tweet has been viewed.", - "format": "int32" - }, - "like_count": { - "type": "integer", - "description": "Number of times this Tweet has been liked." - }, - "quote_count": { - "type": "integer", - "description": "Number of times this Tweet has been quoted." - }, - "reply_count": { - "type": "integer", - "description": "Number of times this Tweet has been replied to." - }, - "retweet_count": { - "type": "integer", - "description": "Number of times this Tweet has been Retweeted." - } - } - }, - "referenced_tweets": { - "type": "array", - "description": "A list of Posts this Tweet refers to. For example, if the parent Tweet is a Retweet, a Quoted Tweet or a Reply, it will include the related Tweet referenced to by its parent.", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "type", - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "type": { - "type": "string", - "enum": [ - "retweeted", - "quoted", - "replied_to" - ] - } - } - } - }, - "reply_settings": { - "$ref": "#/components/schemas/ReplySettingsWithVerifiedUsers" - }, - "scopes": { - "type": "object", - "description": "The scopes for this tweet", - "properties": { - "followers": { - "type": "boolean", - "description": "Indicates if this Tweet is viewable by followers without the Tweet ID", - "example": false - } - } - }, - "source": { - "type": "string", - "description": "This is deprecated." - }, - "text": { - "$ref": "#/components/schemas/TweetText" - }, - "username": { - "$ref": "#/components/schemas/UserName" - }, - "withheld": { - "$ref": "#/components/schemas/TweetWithheld" - } - }, - "example": { - "author_id": "2244994945", - "created_at": "Wed Jan 06 18:40:40 +0000 2021", - "id": "1346889436626259968", - "text": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\… https:\/\/t.co\/56a0vZUx7i", - "username": "XDevelopers" - } - }, - "TweetComplianceData": { - "description": "Tweet compliance data.", - "oneOf": [ - { - "$ref": "#/components/schemas/TweetDeleteComplianceSchema" - }, - { - "$ref": "#/components/schemas/TweetWithheldComplianceSchema" - }, - { - "$ref": "#/components/schemas/TweetDropComplianceSchema" - }, - { - "$ref": "#/components/schemas/TweetUndropComplianceSchema" - }, - { - "$ref": "#/components/schemas/TweetEditComplianceSchema" - } - ] - }, - "TweetComplianceSchema": { - "type": "object", - "required": [ - "tweet", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "quote_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "tweet": { - "type": "object", - "required": [ - "id", - "author_id" - ], - "properties": { - "author_id": { - "$ref": "#/components/schemas/UserId" - }, - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetComplianceStreamResponse": { - "description": "Tweet compliance stream events.", - "oneOf": [ - { - "type": "object", - "description": "Compliance event.", - "required": [ - "data" - ], - "properties": { - "data": { - "$ref": "#/components/schemas/TweetComplianceData" - } - } - }, - { - "type": "object", - "required": [ - "errors" - ], - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - ] - }, - "TweetCount": { - "type": "integer", - "description": "The count for the bucket." - }, - "TweetCreateRequest": { - "type": "object", - "properties": { - "card_uri": { - "type": "string", - "description": "Card Uri Parameter. This is mutually exclusive from Quote Tweet Id, Poll, Media, and Direct Message Deep Link." - }, - "community_id": { - "$ref": "#/components/schemas/CommunityId" - }, - "direct_message_deep_link": { - "type": "string", - "description": "Link to take the conversation from the public timeline to a private Direct Message." - }, - "for_super_followers_only": { - "type": "boolean", - "description": "Exclusive Tweet for super followers.", - "default": false - }, - "geo": { - "type": "object", - "description": "Place ID being attached to the Tweet for geo location.", - "properties": { - "place_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "media": { - "type": "object", - "description": "Media information being attached to created Tweet. This is mutually exclusive from Quote Tweet Id, Poll, and Card URI.", - "required": [ - "media_ids" - ], - "properties": { - "media_ids": { - "type": "array", - "description": "A list of Media Ids to be attached to a created Tweet.", - "minItems": 1, - "maxItems": 4, - "items": { - "$ref": "#/components/schemas/MediaId" - } - }, - "tagged_user_ids": { - "type": "array", - "description": "A list of User Ids to be tagged in the media for created Tweet.", - "minItems": 0, - "maxItems": 10, - "items": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "additionalProperties": false - }, - "nullcast": { - "type": "boolean", - "description": "Nullcasted (promoted-only) Posts do not appear in the public timeline and are not served to followers.", - "default": false - }, - "poll": { - "type": "object", - "description": "Poll options for a Tweet with a poll. This is mutually exclusive from Media, Quote Tweet Id, and Card URI.", - "required": [ - "options", - "duration_minutes" - ], - "properties": { - "duration_minutes": { - "type": "integer", - "description": "Duration of the poll in minutes.", - "minimum": 5, - "maximum": 10080, - "format": "int32" - }, - "options": { - "type": "array", - "minItems": 2, - "maxItems": 4, - "items": { - "type": "string", - "description": "The text of a poll choice.", - "minLength": 1, - "maxLength": 25 - } - }, - "reply_settings": { - "type": "string", - "description": "Settings to indicate who can reply to the Tweet.", - "enum": [ - "following", - "mentionedUsers", - "subscribers", - "verified" - ] - } - }, - "additionalProperties": false - }, - "quote_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "reply": { - "type": "object", - "description": "Tweet information of the Tweet being replied to.", - "required": [ - "in_reply_to_tweet_id" - ], - "properties": { - "exclude_reply_user_ids": { - "type": "array", - "description": "A list of User Ids to be excluded from the reply Tweet.", - "items": { - "$ref": "#/components/schemas/UserId" - } - }, - "in_reply_to_tweet_id": { - "$ref": "#/components/schemas/TweetId" - } - }, - "additionalProperties": false - }, - "reply_settings": { - "type": "string", - "description": "Settings to indicate who can reply to the Tweet.", - "enum": [ - "following", - "mentionedUsers", - "subscribers", - "verified" - ] - }, - "share_with_followers": { - "type": "boolean", - "description": "Share community post with followers too.", - "default": false - }, - "text": { - "$ref": "#/components/schemas/TweetText" - } - }, - "additionalProperties": false - }, - "TweetCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "id", - "text" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "text": { - "$ref": "#/components/schemas/TweetText" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "TweetDeleteComplianceSchema": { - "type": "object", - "required": [ - "delete" - ], - "properties": { - "delete": { - "$ref": "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "required": [ - "deleted" - ], - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "TweetDropComplianceSchema": { - "type": "object", - "required": [ - "drop" - ], - "properties": { - "drop": { - "$ref": "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetEditComplianceObjectSchema": { - "type": "object", - "required": [ - "tweet", - "event_at", - "initial_tweet_id", - "edit_tweet_ids" - ], - "properties": { - "edit_tweet_ids": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/TweetId" - } - }, - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "initial_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "tweet": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetEditComplianceSchema": { - "type": "object", - "required": [ - "tweet_edit" - ], - "properties": { - "tweet_edit": { - "$ref": "#/components/schemas/TweetEditComplianceObjectSchema" - } - } - }, - "TweetHideRequest": { - "type": "object", - "required": [ - "hidden" - ], - "properties": { - "hidden": { - "type": "boolean" - } - } - }, - "TweetHideResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "hidden": { - "type": "boolean" - } - } - } - } - }, - "TweetId": { - "type": "string", - "description": "Unique identifier of this Tweet. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", - "pattern": "^[0-9]{1,19}$", - "example": "1346889436626259968" - }, - "TweetLabelData": { - "description": "Tweet label data.", - "oneOf": [ - { - "$ref": "#/components/schemas/TweetNoticeSchema" - }, - { - "$ref": "#/components/schemas/TweetUnviewableSchema" - } - ] - }, - "TweetLabelStreamResponse": { - "description": "Tweet label stream events.", - "oneOf": [ - { - "type": "object", - "description": "Tweet Label event.", - "required": [ - "data" - ], - "properties": { - "data": { - "$ref": "#/components/schemas/TweetLabelData" - } - } - }, - { - "type": "object", - "required": [ - "errors" - ], - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - ] - }, - "TweetNotice": { - "type": "object", - "required": [ - "tweet", - "event_type", - "event_at", - "application" - ], - "properties": { - "application": { - "type": "string", - "description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", - "example": "apply" - }, - "details": { - "type": "string", - "description": "Information shown on the Tweet label" - }, - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "event_type": { - "type": "string", - "description": "The type of label on the Tweet", - "example": "misleading" - }, - "extended_details_url": { - "type": "string", - "description": "Link to more information about this kind of label" - }, - "label_title": { - "type": "string", - "description": "Title/header of the Tweet label" - }, - "tweet": { - "type": "object", - "required": [ - "id", - "author_id" - ], - "properties": { - "author_id": { - "$ref": "#/components/schemas/UserId" - }, - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetNoticeSchema": { - "type": "object", - "required": [ - "public_tweet_notice" - ], - "properties": { - "public_tweet_notice": { - "$ref": "#/components/schemas/TweetNotice" - } - } - }, - "TweetTakedownComplianceSchema": { - "type": "object", - "required": [ - "tweet", - "withheld_in_countries", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "quote_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "tweet": { - "type": "object", - "required": [ - "id", - "author_id" - ], - "properties": { - "author_id": { - "$ref": "#/components/schemas/UserId" - }, - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - }, - "withheld_in_countries": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/CountryCode" - } - } - } - }, - "TweetText": { - "type": "string", - "description": "The content of the Tweet.", - "example": "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\… https:\/\/t.co\/56a0vZUx7i" - }, - "TweetUndropComplianceSchema": { - "type": "object", - "required": [ - "undrop" - ], - "properties": { - "undrop": { - "$ref": "#/components/schemas/TweetComplianceSchema" - } - } - }, - "TweetUnviewable": { - "type": "object", - "required": [ - "tweet", - "event_at", - "application" - ], - "properties": { - "application": { - "type": "string", - "description": "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", - "example": "apply" - }, - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "tweet": { - "type": "object", - "required": [ - "id", - "author_id" - ], - "properties": { - "author_id": { - "$ref": "#/components/schemas/UserId" - }, - "id": { - "$ref": "#/components/schemas/TweetId" - } - } - } - } - }, - "TweetUnviewableSchema": { - "type": "object", - "required": [ - "public_tweet_unviewable" - ], - "properties": { - "public_tweet_unviewable": { - "$ref": "#/components/schemas/TweetUnviewable" - } - } - }, - "TweetWithheld": { - "type": "object", - "description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", - "required": [ - "copyright", - "country_codes" - ], - "properties": { - "copyright": { - "type": "boolean", - "description": "Indicates if the content is being withheld for on the basis of copyright infringement." - }, - "country_codes": { - "type": "array", - "description": "Provides a list of countries where this content is not available.", - "minItems": 1, - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/CountryCode" - } - }, - "scope": { - "type": "string", - "description": "Indicates whether the content being withheld is the `tweet` or a `user`.", - "enum": [ - "tweet", - "user" - ] - } - } - }, - "TweetWithheldComplianceSchema": { - "type": "object", - "required": [ - "withheld" - ], - "properties": { - "withheld": { - "$ref": "#/components/schemas/TweetTakedownComplianceSchema" - } - } - }, - "UnlikeComplianceSchema": { - "type": "object", - "required": [ - "favorite", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "favorite": { - "type": "object", - "required": [ - "id", - "user_id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "user_id": { - "$ref": "#/components/schemas/UserId" - } - } - } - } - }, - "UnsupportedAuthenticationProblem": { - "description": "A problem that indicates that the authentication used is not supported.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - } - ] - }, - "UploadExpiration": { - "type": "string", - "description": "Expiration time of the upload URL.", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "UploadSource": { - "type": "object", - "required": [ - "upload_source" - ], - "properties": { - "upload_source": { - "type": "string", - "description": "Records the source (e.g., app, device) from which the media was uploaded", - "example": "gallery" - } - } - }, - "UploadUrl": { - "type": "string", - "description": "URL to which the user will upload their Tweet or user IDs.", - "format": "uri" - }, - "Url": { - "type": "string", - "description": "A validly formatted URL.", - "format": "uri", - "example": "https://developer.twitter.com/en/docs/twitter-api" - }, - "UrlEntity": { - "description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref": "#/components/schemas/UrlFields" - } - ] - }, - "UrlEntityDm": { - "description": "Represent the portion of text recognized as a URL, and its start and end position within the text.", - "allOf": [ - { - "$ref": "#/components/schemas/EntityIndicesInclusiveExclusive" - }, - { - "$ref": "#/components/schemas/UrlFields" - } - ] - }, - "UrlFields": { - "type": "object", - "description": "Represent the portion of text recognized as a URL.", - "required": [ - "url" - ], - "properties": { - "description": { - "type": "string", - "description": "Description of the URL landing page.", - "example": "This is a description of the website." - }, - "display_url": { - "type": "string", - "description": "The URL as displayed in the X client.", - "example": "twittercommunity.com/t/introducing-…" - }, - "expanded_url": { - "$ref": "#/components/schemas/Url" - }, - "images": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UrlImage" - } - }, - "media_key": { - "$ref": "#/components/schemas/MediaKey" - }, - "status": { - "$ref": "#/components/schemas/HttpStatusCode" - }, - "title": { - "type": "string", - "description": "Title of the page the URL points to.", - "example": "Introducing the v2 follow lookup endpoints" - }, - "unwound_url": { - "type": "string", - "description": "Fully resolved url.", - "format": "uri", - "example": "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118" - }, - "url": { - "$ref": "#/components/schemas/Url" - } - } - }, - "UrlImage": { - "type": "object", - "description": "Represent the information for the URL image.", - "properties": { - "height": { - "$ref": "#/components/schemas/MediaHeight" - }, - "url": { - "$ref": "#/components/schemas/Url" - }, - "width": { - "$ref": "#/components/schemas/MediaWidth" - } - } - }, - "Usage": { - "type": "object", - "description": "Usage per client app", - "properties": { - "cap_reset_day": { - "type": "integer", - "description": "Number of days left for the Tweet cap to reset", - "format": "int32" - }, - "daily_client_app_usage": { - "type": "array", - "description": "The daily usage breakdown for each Client Application a project", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/ClientAppUsage" - } - }, - "daily_project_usage": { - "type": "object", - "description": "The daily usage breakdown for a project", - "properties": { - "project_id": { - "type": "integer", - "description": "The unique identifier for this project", - "format": "int32" - }, - "usage": { - "type": "array", - "description": "The usage value", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UsageFields" - } - } - } - }, - "project_cap": { - "type": "integer", - "description": "Total number of Posts that can be read in this project per month", - "format": "int32" - }, - "project_id": { - "type": "string", - "description": "The unique identifier for this project", - "format": "^[0-9]{1,19}$" - }, - "project_usage": { - "type": "integer", - "description": "The number of Posts read in this project", - "format": "int32" - } - } - }, - "UsageCapExceededProblem": { - "description": "A problem that indicates that a usage cap has been exceeded.", - "allOf": [ - { - "$ref": "#/components/schemas/Problem" - }, - { - "type": "object", - "properties": { - "period": { - "type": "string", - "enum": [ - "Daily", - "Monthly" - ] - }, - "scope": { - "type": "string", - "enum": [ - "Account", - "Product" - ] - } - } - } - ] - }, - "UsageFields": { - "type": "object", - "description": "Represents the data for Usage", - "properties": { - "date": { - "type": "string", - "description": "The time period for the usage", - "format": "date-time", - "example": "2021-01-06T18:40:40.000Z" - }, - "usage": { - "type": "integer", - "description": "The usage value", - "format": "int32" - } - } - }, - "User": { - "type": "object", - "description": "The X User object.", - "required": [ - "id", - "name", - "username" - ], - "properties": { - "affiliation": { - "type": "object", - "description": "Metadata about a user's affiliation.", - "properties": { - "badge_url": { - "type": "string", - "description": "The badge URL corresponding to the affiliation.", - "format": "uri" - }, - "description": { - "type": "string", - "description": "The description of the affiliation." - }, - "url": { - "type": "string", - "description": "The URL, if available, to details about an affiliation.", - "format": "uri" - }, - "user_id": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UserId" - } - } - } - }, - "connection_status": { - "type": "array", - "description": "Returns detailed information about the relationship between two users.", - "minItems": 0, - "items": { - "type": "string", - "description": "Type of connection between users.", - "enum": [ - "follow_request_received", - "follow_request_sent", - "blocking", - "followed_by", - "following", - "muting" - ] - } - }, - "created_at": { - "type": "string", - "description": "Creation time of this User.", - "format": "date-time" - }, - "description": { - "type": "string", - "description": "The text of this User's profile description (also known as bio), if the User provided one." - }, - "entities": { - "type": "object", - "description": "A list of metadata found in the User's profile description.", - "properties": { - "description": { - "$ref": "#/components/schemas/FullTextEntities" - }, - "url": { - "type": "object", - "description": "Expanded details for the URL specified in the User's profile, with start and end indices.", - "properties": { - "urls": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/UrlEntity" - } - } - } - } - } - }, - "id": { - "$ref": "#/components/schemas/UserId" - }, - "location": { - "type": "string", - "description": "The location specified in the User's profile, if the User provided one. As this is a freeform value, it may not indicate a valid location, but it may be fuzzily evaluated when performing searches with location queries." - }, - "most_recent_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "name": { - "type": "string", - "description": "The friendly name of this User, as shown on their profile." - }, - "pinned_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "profile_banner_url": { - "type": "string", - "description": "The URL to the profile banner for this User.", - "format": "uri" - }, - "profile_image_url": { - "type": "string", - "description": "The URL to the profile image for this User.", - "format": "uri" - }, - "protected": { - "type": "boolean", - "description": "Indicates if this User has chosen to protect their Posts (in other words, if this User's Posts are private)." - }, - "public_metrics": { - "type": "object", - "description": "A list of metrics for this User.", - "required": [ - "followers_count", - "following_count", - "tweet_count", - "listed_count" - ], - "properties": { - "followers_count": { - "type": "integer", - "description": "Number of Users who are following this User." - }, - "following_count": { - "type": "integer", - "description": "Number of Users this User is following." - }, - "like_count": { - "type": "integer", - "description": "The number of likes created by this User." - }, - "listed_count": { - "type": "integer", - "description": "The number of lists that include this User." - }, - "tweet_count": { - "type": "integer", - "description": "The number of Posts (including Retweets) posted by this User." - } - } - }, - "receives_your_dm": { - "type": "boolean", - "description": "Indicates if you can send a DM to this User" - }, - "subscription_type": { - "type": "string", - "description": "The X Blue subscription type of the user, eg: Basic, Premium, PremiumPlus or None.", - "enum": [ - "Basic", - "Premium", - "PremiumPlus", - "None" - ] - }, - "url": { - "type": "string", - "description": "The URL specified in the User's profile." - }, - "username": { - "$ref": "#/components/schemas/UserName" - }, - "verified": { - "type": "boolean", - "description": "Indicate if this User is a verified X User." - }, - "verified_type": { - "type": "string", - "description": "The X Blue verified type of the user, eg: blue, government, business or none.", - "enum": [ - "blue", - "government", - "business", - "none" - ] - }, - "withheld": { - "$ref": "#/components/schemas/UserWithheld" - } - }, - "example": { - "created_at": "2013-12-14T04:35:55Z", - "id": "2244994945", - "name": "X Dev", - "protected": false, - "username": "TwitterDev" - } - }, - "UserComplianceData": { - "description": "User compliance data.", - "oneOf": [ - { - "$ref": "#/components/schemas/UserProtectComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserUnprotectComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserDeleteComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserUndeleteComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserSuspendComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserUnsuspendComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserWithheldComplianceSchema" - }, - { - "$ref": "#/components/schemas/UserScrubGeoSchema" - }, - { - "$ref": "#/components/schemas/UserProfileModificationComplianceSchema" - } - ] - }, - "UserComplianceSchema": { - "type": "object", - "required": [ - "user", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "user": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/UserId" - } - } - } - } - }, - "UserComplianceStreamResponse": { - "description": "User compliance stream events.", - "oneOf": [ - { - "type": "object", - "description": "User compliance event.", - "required": [ - "data" - ], - "properties": { - "data": { - "$ref": "#/components/schemas/UserComplianceData" - } - } - }, - { - "type": "object", - "required": [ - "errors" - ], - "properties": { - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - } - ] - }, - "UserDeleteComplianceSchema": { - "type": "object", - "required": [ - "user_delete" - ], - "properties": { - "user_delete": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserId": { - "type": "string", - "description": "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", - "pattern": "^[0-9]{1,19}$", - "example": "2244994945" - }, - "UserIdMatchesAuthenticatedUser": { - "type": "string", - "description": "Unique identifier of this User. The value must be the same as the authenticated user.", - "example": "2244994945" - }, - "UserName": { - "type": "string", - "description": "The X handle (screen name) of this user.", - "pattern": "^[A-Za-z0-9_]{1,15}$" - }, - "UserProfileModificationComplianceSchema": { - "type": "object", - "required": [ - "user_profile_modification" - ], - "properties": { - "user_profile_modification": { - "$ref": "#/components/schemas/UserProfileModificationObjectSchema" - } - } - }, - "UserProfileModificationObjectSchema": { - "type": "object", - "required": [ - "user", - "profile_field", - "new_value", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "new_value": { - "type": "string" - }, - "profile_field": { - "type": "string" - }, - "user": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/UserId" - } - } - } - } - }, - "UserProtectComplianceSchema": { - "type": "object", - "required": [ - "user_protect" - ], - "properties": { - "user_protect": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserScrubGeoObjectSchema": { - "type": "object", - "required": [ - "user", - "up_to_tweet_id", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "up_to_tweet_id": { - "$ref": "#/components/schemas/TweetId" - }, - "user": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/UserId" - } - } - } - } - }, - "UserScrubGeoSchema": { - "type": "object", - "required": [ - "scrub_geo" - ], - "properties": { - "scrub_geo": { - "$ref": "#/components/schemas/UserScrubGeoObjectSchema" - } - } - }, - "UserSearchQueryVnext": { - "type": "string", - "description": "The the search string by which to query for users.", - "pattern": "^[A-Za-z0-9_' ]{1,50}$" - }, - "UserSuspendComplianceSchema": { - "type": "object", - "required": [ - "user_suspend" - ], - "properties": { - "user_suspend": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserTakedownComplianceSchema": { - "type": "object", - "required": [ - "user", - "withheld_in_countries", - "event_at" - ], - "properties": { - "event_at": { - "type": "string", - "description": "Event time.", - "format": "date-time", - "example": "2021-07-06T18:40:40.000Z" - }, - "user": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "withheld_in_countries": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/CountryCode" - } - } - } - }, - "UserUndeleteComplianceSchema": { - "type": "object", - "required": [ - "user_undelete" - ], - "properties": { - "user_undelete": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserUnprotectComplianceSchema": { - "type": "object", - "required": [ - "user_unprotect" - ], - "properties": { - "user_unprotect": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserUnsuspendComplianceSchema": { - "type": "object", - "required": [ - "user_unsuspend" - ], - "properties": { - "user_unsuspend": { - "$ref": "#/components/schemas/UserComplianceSchema" - } - } - }, - "UserWithheld": { - "type": "object", - "description": "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", - "required": [ - "country_codes" - ], - "properties": { - "country_codes": { - "type": "array", - "description": "Provides a list of countries where this content is not available.", - "minItems": 1, - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/CountryCode" - } - }, - "scope": { - "type": "string", - "description": "Indicates that the content being withheld is a `user`.", - "enum": [ - "user" - ] - } - } - }, - "UserWithheldComplianceSchema": { - "type": "object", - "required": [ - "user_withheld" - ], - "properties": { - "user_withheld": { - "$ref": "#/components/schemas/UserTakedownComplianceSchema" - } - } - }, - "UsersDMBlockCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "blocked": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersDMUnBlockCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "blocked": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersFollowingCreateRequest": { - "type": "object", - "required": [ - "target_user_id" - ], - "properties": { - "target_user_id": { - "$ref": "#/components/schemas/UserId" - } - } - }, - "UsersFollowingCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "following": { - "type": "boolean" - }, - "pending_follow": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersFollowingDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "following": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersLikesCreateRequest": { - "type": "object", - "required": [ - "tweet_id" - ], - "properties": { - "tweet_id": { - "$ref": "#/components/schemas/TweetId" - } - } - }, - "UsersLikesCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "liked": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersLikesDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "liked": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersRetweetsCreateRequest": { - "type": "object", - "required": [ - "tweet_id" - ], - "properties": { - "tweet_id": { - "$ref": "#/components/schemas/TweetId" - } + } + } + } + } + }, + "FoundMediaOrigin" : { + "type" : "object", + "required" : [ + "provider", + "id" + ], + "properties" : { + "id" : { + "type" : "string", + "description" : "Unique Identifier of media within provider ( <= 24 characters ))", + "example" : "u5BzatR15TZ04" + }, + "provider" : { + "type" : "string", + "description" : "The media provider (e.g., 'giphy') that sourced the media ( <= 8 Characters )", + "example" : "giphy" + } + } + }, + "FullTextEntities" : { + "type" : "object", + "properties" : { + "annotations" : { + "type" : "array", + "minItems" : 1, + "items" : { + "description" : "Annotation for entities based on the Tweet text.", + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveInclusive" }, - "additionalProperties": false - }, - "UsersRetweetsCreateResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/TweetId" - }, - "retweeted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "UsersRetweetsDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "retweeted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "Variant": { - "type": "object", - "properties": { - "bit_rate": { - "type": "integer", - "description": "The bit rate of the media." - }, - "content_type": { - "type": "string", - "description": "The content type of the media." - }, - "url": { - "type": "string", - "description": "The url to the media.", - "format": "uri" - } - } - }, - "Variants": { - "type": "array", - "description": "An array of all available variants of the media.", - "items": { - "$ref": "#/components/schemas/Variant" - } - }, - "Video": { - "allOf": [ - { - "$ref": "#/components/schemas/Media" - }, - { - "type": "object", - "properties": { - "duration_ms": { - "type": "integer" - }, - "non_public_metrics": { - "type": "object", - "description": "Nonpublic engagement metrics for the Media at the time of the request.", - "properties": { - "playback_0_count": { - "type": "integer", - "description": "Number of users who made it through 0% of the video.", - "format": "int32" - }, - "playback_100_count": { - "type": "integer", - "description": "Number of users who made it through 100% of the video.", - "format": "int32" - }, - "playback_25_count": { - "type": "integer", - "description": "Number of users who made it through 25% of the video.", - "format": "int32" - }, - "playback_50_count": { - "type": "integer", - "description": "Number of users who made it through 50% of the video.", - "format": "int32" - }, - "playback_75_count": { - "type": "integer", - "description": "Number of users who made it through 75% of the video.", - "format": "int32" - } - } - }, - "organic_metrics": { - "type": "object", - "description": "Organic nonpublic engagement metrics for the Media at the time of the request.", - "properties": { - "playback_0_count": { - "type": "integer", - "description": "Number of users who made it through 0% of the video.", - "format": "int32" - }, - "playback_100_count": { - "type": "integer", - "description": "Number of users who made it through 100% of the video.", - "format": "int32" - }, - "playback_25_count": { - "type": "integer", - "description": "Number of users who made it through 25% of the video.", - "format": "int32" - }, - "playback_50_count": { - "type": "integer", - "description": "Number of users who made it through 50% of the video.", - "format": "int32" - }, - "playback_75_count": { - "type": "integer", - "description": "Number of users who made it through 75% of the video.", - "format": "int32" - }, - "view_count": { - "type": "integer", - "description": "Number of times this video has been viewed.", - "format": "int32" - } - } - }, - "preview_image_url": { - "type": "string", - "format": "uri" - }, - "promoted_metrics": { - "type": "object", - "description": "Promoted nonpublic engagement metrics for the Media at the time of the request.", - "properties": { - "playback_0_count": { - "type": "integer", - "description": "Number of users who made it through 0% of the video.", - "format": "int32" - }, - "playback_100_count": { - "type": "integer", - "description": "Number of users who made it through 100% of the video.", - "format": "int32" - }, - "playback_25_count": { - "type": "integer", - "description": "Number of users who made it through 25% of the video.", - "format": "int32" - }, - "playback_50_count": { - "type": "integer", - "description": "Number of users who made it through 50% of the video.", - "format": "int32" - }, - "playback_75_count": { - "type": "integer", - "description": "Number of users who made it through 75% of the video.", - "format": "int32" - }, - "view_count": { - "type": "integer", - "description": "Number of times this video has been viewed.", - "format": "int32" - } - } - }, - "public_metrics": { - "type": "object", - "description": "Engagement metrics for the Media at the time of the request.", - "properties": { - "view_count": { - "type": "integer", - "description": "Number of times this video has been viewed.", - "format": "int32" - } - } - }, - "variants": { - "$ref": "#/components/schemas/Variants" - } - } - } - ] - }, - "WebhookConfig": { - "type": "object", - "description": "A Webhook Configuration", - "required": [ - "id", - "url", - "valid", - "created_at" - ], - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "url": { - "type": "string", - "description": "The callback URL of the webhook." - }, - "valid": { - "type": "boolean" - } - } - }, - "WebhookConfigCreateRequest": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "type": "string", - "minLength": 1, - "maxLength": 200 - } - } - }, - "WebhookConfigCreateResponse": { - "type": "object", - "description": "A Webhook Configuration", - "required": [ - "id", - "url", - "valid", - "created_at" - ], - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "id": { - "$ref": "#/components/schemas/WebhookConfigId" - }, - "url": { - "type": "string", - "description": "The callback URL of the webhook." - }, - "valid": { - "type": "boolean" - } - } - }, - "WebhookConfigDeleteResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "deleted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } - }, - "WebhookConfigId": { - "type": "string", - "description": "The unique identifier of this webhook config.", - "pattern": "^[0-9]{1,19}$", - "example": "1146654567674912769" - }, - "WebhookConfigPutResponse": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "attempted": { - "type": "boolean" - } - } - }, - "errors": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/Problem" - } - } - } + { + "type" : "object", + "description" : "Represents the data for the annotation.", + "properties" : { + "normalized_text" : { + "type" : "string", + "description" : "Text used to determine annotation.", + "example" : "Barack Obama" + }, + "probability" : { + "type" : "number", + "description" : "Confidence factor for annotation type.", + "minimum" : 0, + "maximum" : 1, + "format" : "double" + }, + "type" : { + "type" : "string", + "description" : "Annotation type.", + "example" : "Person" + } + } + } + ] + } + }, + "cashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/CashtagEntity" + } + }, + "hashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/HashtagEntity" + } + }, + "mentions" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/MentionEntity" + } + }, + "urls" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UrlEntity" + } + } + } + }, + "GenericProblem" : { + "description" : "A generic problem with no additional information beyond that provided by the HTTP status code.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "Geo" : { + "type" : "object", + "required" : [ + "type", + "bbox", + "properties" + ], + "properties" : { + "bbox" : { + "type" : "array", + "minItems" : 4, + "maxItems" : 4, + "items" : { + "type" : "number", + "minimum" : -180, + "maximum" : 180, + "format" : "double" + }, + "example" : [ + -105.193475, + 39.60973, + -105.053164, + 39.761974 + ] + }, + "geometry" : { + "$ref" : "#/components/schemas/Point" + }, + "properties" : { + "type" : "object" + }, + "type" : { + "type" : "string", + "enum" : [ + "Feature" + ] + } + } + }, + "GeoRestrictions" : { + "oneOf" : [ + { + "type" : "object", + "required" : [ + "whitelisted_country_codes", + "blacklisted_country_codes" + ], + "properties" : { + "blacklisted_country_codes" : { + "type" : "array", + "description" : "List of blacklisted country codes", + "minItems" : 0, + "maxItems" : 0, + "items" : { + "type" : "string", + "description" : "Country code in ISO 3166-1 alpha-2 format", + "pattern" : "^[a-zA-Z]{2}$", + "example" : "us" + } + }, + "whitelisted_country_codes" : { + "type" : "array", + "description" : "List of whitelisted country codes", + "minItems" : 1, + "items" : { + "type" : "string", + "description" : "Country code in ISO 3166-1 alpha-2 format", + "pattern" : "^[a-zA-Z]{2}$", + "example" : "us" + } + } + } + }, + { + "type" : "object", + "required" : [ + "whitelisted_country_codes", + "blacklisted_country_codes" + ], + "properties" : { + "blacklisted_country_codes" : { + "type" : "array", + "description" : "List of blacklisted country codes", + "minItems" : 1, + "items" : { + "type" : "string", + "description" : "Country code in ISO 3166-1 alpha-2 format", + "pattern" : "^[a-zA-Z]{2}$", + "example" : "us" + } + }, + "whitelisted_country_codes" : { + "type" : "array", + "description" : "List of whitelisted country codes", + "minItems" : 0, + "maxItems" : 0, + "items" : { + "type" : "string", + "description" : "Country code in ISO 3166-1 alpha-2 format", + "pattern" : "^[a-zA-Z]{2}$", + "example" : "us" + } + } + } + } + ] + }, + "Get2CommunitiesIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Community" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2CommunitiesSearchResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Community" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + } + } + } + } + }, + "Get2ComplianceJobsIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/ComplianceJob" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2ComplianceJobsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/ComplianceJob" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "type" : "object", + "properties" : { + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmConversationsIdDmEventsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/DmEvent" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmConversationsWithParticipantIdDmEventsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/DmEvent" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2DmEventsEventIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/DmEvent" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2DmEventsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/DmEvent" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2FdxAccountsAccountidContactResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/PlaidAccountContact" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidPayment-networksResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/PlaidAccountPaymentNetwork" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/PlaidAccount" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxAccountsAccountidTransactionsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/PlaidAccountTransaction" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2FdxCustomersCurrentResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/PlaidCustomer" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2Insights28hrResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Engagement" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2InsightsHistoricalResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Engagement" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2LikesFirehoseStreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/LikeWithTweetAuthor" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2LikesSample10StreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/LikeWithTweetAuthor" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2ListsIdFollowersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2ListsIdMembersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2ListsIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/List" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2ListsIdTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2MediaAnalyticsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/MediaAnalytics" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2MediaMediaKeyResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Media" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2MediaResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Media" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2NotesSearchNotesWrittenResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Note" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2NotesSearchPostsEligibleForNotesResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesByCreatorIdsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Space" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesIdBuyersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Space" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2SpacesIdTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2SpacesResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Space" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2SpacesSearchResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Space" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TrendsByWoeidWoeidResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Trend" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2TweetsAnalyticsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Analytics" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2TweetsCountsAllResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/SearchCount" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "total_tweet_count" : { + "$ref" : "#/components/schemas/Aggregate" + } + } + } + } + }, + "Get2TweetsCountsRecentResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/SearchCount" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "total_tweet_count" : { + "$ref" : "#/components/schemas/Aggregate" + } + } + } + } + }, + "Get2TweetsFirehoseStreamLangEnResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangJaResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangKoResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamLangPtResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsFirehoseStreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsIdLikingUsersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdQuoteTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsIdRetweetedByResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsIdRetweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSample10StreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSampleStreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSearchAllResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsSearchRecentResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2TweetsSearchStreamResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2TweetsSearchStreamRulesCountsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/RulesCount" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2UsageTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Usage" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2UsersByResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2UsersByUsernameUsernameResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/User" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2UsersIdBlockingResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdBookmarksResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowedListsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/List" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdFollowingResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdLikedTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdListMembershipsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/List" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdMentionsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdMutingResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdOwnedListsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/List" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdPinnedListsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/List" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/User" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2UsersIdTimelinesReverseChronologicalResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersIdTweetsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "newest_id" : { + "$ref" : "#/components/schemas/NewestId" + }, + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "oldest_id" : { + "$ref" : "#/components/schemas/OldestId" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersMeResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/User" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2UsersPersonalizedTrendsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/PersonalizedTrend" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Get2UsersRepostsOfMeResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Tweet" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + }, + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "Get2UsersResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "Get2UsersSearchResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/User" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + }, + "meta" : { + "type" : "object", + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "previous_token" : { + "$ref" : "#/components/schemas/PreviousToken" + } + } + } + } + }, + "Get2WebhooksResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/WebhookConfig" + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "meta" : { + "type" : "object", + "properties" : { + "result_count" : { + "$ref" : "#/components/schemas/ResultCount" + } + } + } + } + }, + "HashtagEntity" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref" : "#/components/schemas/HashtagFields" + } + ] + }, + "HashtagFields" : { + "type" : "object", + "description" : "Represent the portion of text recognized as a Hashtag, and its start and end position within the text.", + "required" : [ + "tag" + ], + "properties" : { + "tag" : { + "type" : "string", + "description" : "The text of the Hashtag.", + "example" : "MondayMotivation" + } + } + }, + "HttpStatusCode" : { + "type" : "integer", + "description" : "HTTP Status Code.", + "minimum" : 100, + "maximum" : 599 + }, + "InvalidRequestProblem" : { + "description" : "A problem that indicates this request is invalid.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "type" : "object", + "properties" : { + "message" : { + "type" : "string" + }, + "parameters" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + } + } + } + } + } + ] + }, + "InvalidRuleProblem" : { + "description" : "The rule you have submitted is invalid.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "JobId" : { + "type" : "string", + "description" : "Compliance Job ID.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1372966999991541762" + }, + "KillAllConnectionsResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "killed_connections" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "LikeComplianceSchema" : { + "type" : "object", + "required" : [ + "delete" + ], + "properties" : { + "delete" : { + "$ref" : "#/components/schemas/UnlikeComplianceSchema" + } + } + }, + "LikeId" : { + "type" : "string", + "description" : "The unique identifier of this Like.", + "pattern" : "^[A-Za-z0-9_]{1,40}$", + "example" : "8ba4f34e6235d905a46bac021d98e923" + }, + "LikeWithTweetAuthor" : { + "type" : "object", + "description" : "A Like event, with the tweet author user and the tweet being liked", + "properties" : { + "created_at" : { + "type" : "string", + "description" : "Creation time of the Tweet.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "id" : { + "$ref" : "#/components/schemas/LikeId" + }, + "liked_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "timestamp_ms" : { + "type" : "integer", + "description" : "Timestamp in milliseconds of creation.", + "format" : "int32" + }, + "tweet_author_id" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "LikesComplianceStreamResponse" : { + "description" : "Likes compliance stream events.", + "oneOf" : [ + { + "type" : "object", + "description" : "Compliance event.", + "required" : [ + "data" + ], + "properties" : { + "data" : { + "$ref" : "#/components/schemas/LikeComplianceSchema" + } + } + }, + { + "type" : "object", + "required" : [ + "errors" + ], + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + ] + }, + "List" : { + "type" : "object", + "description" : "A X List is a curated group of accounts.", + "required" : [ + "id", + "name" + ], + "properties" : { + "created_at" : { + "type" : "string", + "format" : "date-time" + }, + "description" : { + "type" : "string" + }, + "follower_count" : { + "type" : "integer" + }, + "id" : { + "$ref" : "#/components/schemas/ListId" + }, + "member_count" : { + "type" : "integer" + }, + "name" : { + "type" : "string", + "description" : "The name of this List." + }, + "owner_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "private" : { + "type" : "boolean" + } + } + }, + "ListAddUserRequest" : { + "type" : "object", + "required" : [ + "user_id" + ], + "properties" : { + "user_id" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "ListCreateRequest" : { + "type" : "object", + "required" : [ + "name" + ], + "properties" : { + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 100 + }, + "name" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 25 + }, + "private" : { + "type" : "boolean", + "default" : false + } + } + }, + "ListCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "description" : "A X List is a curated group of accounts.", + "required" : [ + "id", + "name" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/ListId" + }, + "name" : { + "type" : "string", + "description" : "The name of this List." + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListFollowedRequest" : { + "type" : "object", + "required" : [ + "list_id" + ], + "properties" : { + "list_id" : { + "$ref" : "#/components/schemas/ListId" + } + } + }, + "ListFollowedResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "following" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListId" : { + "type" : "string", + "description" : "The unique identifier of this List.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "ListMutateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "is_member" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListPinnedRequest" : { + "type" : "object", + "required" : [ + "list_id" + ], + "properties" : { + "list_id" : { + "$ref" : "#/components/schemas/ListId" + } + } + }, + "ListPinnedResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "pinned" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListUnpinResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "pinned" : { + "type" : "boolean" + } } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ListUpdateRequest" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 100 + }, + "name" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 25 + }, + "private" : { + "type" : "boolean" + } + } + }, + "ListUpdateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "updated" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "ManagementInfo" : { + "type" : "object", + "required" : [ + "managed" + ], + "properties" : { + "managed" : { + "type" : "boolean", + "description" : "Indicates if the media is managed by Media Studio", + "example" : false + } + } + }, + "Media" : { + "type" : "object", + "required" : [ + "type" + ], + "properties" : { + "height" : { + "$ref" : "#/components/schemas/MediaHeight" + }, + "media_key" : { + "$ref" : "#/components/schemas/MediaKey" + }, + "type" : { + "type" : "string" + }, + "width" : { + "$ref" : "#/components/schemas/MediaWidth" + } }, - "parameters": { - "AnalyticsFieldsParameter": { - "name": "analytics.fields", - "in": "query", - "description": "A comma separated list of Analytics fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Analytics object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "app_install_attempts", - "app_opens", - "bookmarks", - "detail_expands", - "email_tweet", - "engagements", - "follows", - "hashtag_clicks", - "id", - "impressions", - "likes", - "media_views", - "permalink_clicks", - "quote_tweets", - "replies", - "retweets", - "shares", - "timestamp", - "unfollows", - "url_clicks", - "user_profile_clicks" - ] - }, - "example": [ - "app_install_attempts", - "app_opens", - "bookmarks", - "detail_expands", - "email_tweet", - "engagements", - "follows", - "hashtag_clicks", - "id", - "impressions", - "likes", - "media_views", - "permalink_clicks", - "quote_tweets", - "replies", - "retweets", - "shares", - "timestamp", - "unfollows", - "url_clicks", - "user_profile_clicks" - ] - }, - "explode": false, - "style": "form" - }, - "CommunityFieldsParameter": { - "name": "community.fields", - "in": "query", - "description": "A comma separated list of Community fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Community object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "access", - "created_at", - "description", - "id", - "join_policy", - "member_count", - "name" - ] - }, - "example": [ - "access", - "created_at", - "description", - "id", - "join_policy", - "member_count", - "name" - ] - }, - "explode": false, - "style": "form" - }, - "ComplianceJobFieldsParameter": { - "name": "compliance_job.fields", - "in": "query", - "description": "A comma separated list of ComplianceJob fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a ComplianceJob object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "download_expires_at", - "download_url", - "id", - "name", - "resumable", - "status", - "type", - "upload_expires_at", - "upload_url" - ] - }, - "example": [ - "created_at", - "download_expires_at", - "download_url", - "id", - "name", - "resumable", - "status", - "type", - "upload_expires_at", - "upload_url" - ] - }, - "explode": false, - "style": "form" - }, - "DmConversationFieldsParameter": { - "name": "dm_conversation.fields", - "in": "query", - "description": "A comma separated list of DmConversation fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a DmConversation object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "id" - ] - }, - "example": [ - "id" - ] - }, - "explode": false, - "style": "form" - }, - "DmEventExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [DmEvent](#DmEvent) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "attachments.media_keys", - "participant_ids", - "referenced_tweets.id", - "sender_id" - ] - }, - "example": [ - "attachments.media_keys", - "participant_ids", - "referenced_tweets.id", - "sender_id" - ] - }, - "explode": false, - "style": "form" - }, - "DmEventFieldsParameter": { - "name": "dm_event.fields", - "in": "query", - "description": "A comma separated list of DmEvent fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a DmEvent object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "attachments", - "created_at", - "dm_conversation_id", - "entities", - "event_type", - "id", - "participant_ids", - "referenced_tweets", - "sender_id", - "text" - ] - }, - "example": [ - "attachments", - "created_at", - "dm_conversation_id", - "entities", - "event_type", - "id", - "participant_ids", - "referenced_tweets", - "sender_id", - "text" - ] - }, - "explode": false, - "style": "form" - }, - "EngagementFieldsParameter": { - "name": "engagement.fields", - "in": "query", - "description": "A comma separated list of Engagement fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Engagement object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "errors", - "measurement" - ] - }, - "example": [ - "errors", - "measurement" - ] - }, - "explode": false, - "style": "form" - }, - "LikeExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [Like](#Like) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "liked_tweet_id" - ] - }, - "example": [ - "liked_tweet_id" - ] - }, - "explode": false, - "style": "form" - }, - "LikeFieldsParameter": { - "name": "like.fields", - "in": "query", - "description": "A comma separated list of Like fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Like object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "example": [ - "created_at", - "id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "explode": false, - "style": "form" - }, - "LikeWithTweetAuthorExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [LikeWithTweetAuthor](#LikeWithTweetAuthor) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "liked_tweet_author_id", - "liked_tweet_id" - ] - }, - "example": [ - "liked_tweet_author_id", - "liked_tweet_id" - ] - }, - "explode": false, - "style": "form" - }, - "LikeWithTweetAuthorFieldsParameter": { - "name": "like_with_tweet_author.fields", - "in": "query", - "description": "A comma separated list of LikeWithTweetAuthor fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a LikeWithTweetAuthor object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "id", - "liked_tweet_author_id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "example": [ - "created_at", - "id", - "liked_tweet_author_id", - "liked_tweet_id", - "timestamp_ms" - ] - }, - "explode": false, - "style": "form" - }, - "ListExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [List](#List) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "owner_id" - ] - }, - "example": [ - "owner_id" - ] - }, - "explode": false, - "style": "form" - }, - "ListFieldsParameter": { - "name": "list.fields", - "in": "query", - "description": "A comma separated list of List fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a List object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "description", - "follower_count", - "id", - "member_count", - "name", - "owner_id", - "private" - ] - }, - "example": [ - "created_at", - "description", - "follower_count", - "id", - "member_count", - "name", - "owner_id", - "private" - ] - }, - "explode": false, - "style": "form" - }, - "MediaAnalyticsFieldsParameter": { - "name": "media_analytics.fields", - "in": "query", - "description": "A comma separated list of MediaAnalytics fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a MediaAnalytics object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "cta_url_clicks", - "cta_watch_clicks", - "media_key", - "play_from_tap", - "playback25", - "playback50", - "playback75", - "playback_complete", - "playback_start", - "timestamp", - "video_views", - "watch_time_ms" - ] - }, - "example": [ - "cta_url_clicks", - "cta_watch_clicks", - "media_key", - "play_from_tap", - "playback25", - "playback50", - "playback75", - "playback_complete", - "playback_start", - "timestamp", - "video_views", - "watch_time_ms" - ] - }, - "explode": false, - "style": "form" - }, - "MediaFieldsParameter": { - "name": "media.fields", - "in": "query", - "description": "A comma separated list of Media fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Media object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "alt_text", - "duration_ms", - "height", - "media_key", - "non_public_metrics", - "organic_metrics", - "preview_image_url", - "promoted_metrics", - "public_metrics", - "type", - "url", - "variants", - "width" - ] - }, - "example": [ - "alt_text", - "duration_ms", - "height", - "media_key", - "non_public_metrics", - "organic_metrics", - "preview_image_url", - "promoted_metrics", - "public_metrics", - "type", - "url", - "variants", - "width" - ] - }, - "explode": false, - "style": "form" - }, - "NoteFieldsParameter": { - "name": "note.fields", - "in": "query", - "description": "A comma separated list of Note fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Note object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "id", - "info", - "status", - "test_result" - ] - }, - "example": [ - "id", - "info", - "status", - "test_result" - ] - }, - "explode": false, - "style": "form" - }, - "PersonalizedTrendFieldsParameter": { - "name": "personalized_trend.fields", - "in": "query", - "description": "A comma separated list of PersonalizedTrend fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PersonalizedTrend object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "category", - "post_count", - "trend_name", - "trending_since" - ] - }, - "example": [ - "category", - "post_count", - "trend_name", - "trending_since" - ] - }, - "explode": false, - "style": "form" - }, - "PlaceFieldsParameter": { - "name": "place.fields", - "in": "query", - "description": "A comma separated list of Place fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Place object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "contained_within", - "country", - "country_code", - "full_name", - "geo", - "id", - "name", - "place_type" - ] - }, - "example": [ - "contained_within", - "country", - "country_code", - "full_name", - "geo", - "id", - "name", - "place_type" - ] - }, - "explode": false, - "style": "form" - }, - "PlaidAccountContactFieldsParameter": { - "name": "plaid_account_contact.fields", - "in": "query", - "description": "A comma separated list of PlaidAccountContact fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PlaidAccountContact object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "addresses", - "emails", - "holders", - "telephones" - ] - }, - "example": [ - "addresses", - "emails", - "holders", - "telephones" - ] - }, - "explode": false, - "style": "form" - }, - "PlaidAccountFieldsParameter": { - "name": "plaid_account.fields", - "in": "query", - "description": "A comma separated list of PlaidAccount fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PlaidAccount object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "accountCategory", - "accountId", - "accountNumberDisplay", - "accountType", - "availableBalance", - "currency", - "currentBalance", - "nickname", - "productName", - "status" - ] - }, - "example": [ - "accountCategory", - "accountId", - "accountNumberDisplay", - "accountType", - "availableBalance", - "currency", - "currentBalance", - "nickname", - "productName", - "status" - ] - }, - "explode": false, - "style": "form" - }, - "PlaidAccountPaymentNetworkFieldsParameter": { - "name": "plaid_account_payment_network.fields", - "in": "query", - "description": "A comma separated list of PlaidAccountPaymentNetwork fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PlaidAccountPaymentNetwork object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "bankId", - "identifier", - "transferIn", - "transferOut", - "type" - ] - }, - "example": [ - "bankId", - "identifier", - "transferIn", - "transferOut", - "type" - ] - }, - "explode": false, - "style": "form" - }, - "PlaidAccountTransactionFieldsParameter": { - "name": "plaid_account_transaction.fields", - "in": "query", - "description": "A comma separated list of PlaidAccountTransaction fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PlaidAccountTransaction object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "postedTimestamp", - "status", - "transactionId", - "transactionTimestamp" - ] - }, - "example": [ - "accountCategory", - "amount", - "debitCreditMemo", - "description", - "postedTimestamp", - "status", - "transactionId", - "transactionTimestamp" - ] - }, - "explode": false, - "style": "form" - }, - "PlaidCustomerFieldsParameter": { - "name": "plaid_customer.fields", - "in": "query", - "description": "A comma separated list of PlaidCustomer fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a PlaidCustomer object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "customerId" - ] - }, - "example": [ - "customerId" - ] - }, - "explode": false, - "style": "form" - }, - "PollFieldsParameter": { - "name": "poll.fields", - "in": "query", - "description": "A comma separated list of Poll fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Poll object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "duration_minutes", - "end_datetime", - "id", - "options", - "voting_status" - ] - }, - "example": [ - "duration_minutes", - "end_datetime", - "id", - "options", - "voting_status" - ] - }, - "explode": false, - "style": "form" - }, - "RulesCountFieldsParameter": { - "name": "rules_count.fields", - "in": "query", - "description": "A comma separated list of RulesCount fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a RulesCount object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "all_project_client_apps", - "cap_per_client_app", - "cap_per_project", - "client_app_rules_count", - "project_rules_count" - ] - }, - "example": [ - "all_project_client_apps", - "cap_per_client_app", - "cap_per_project", - "client_app_rules_count", - "project_rules_count" - ] - }, - "explode": false, - "style": "form" - }, - "SearchCountFieldsParameter": { - "name": "search_count.fields", - "in": "query", - "description": "A comma separated list of SearchCount fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a SearchCount object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "end", - "start", - "tweet_count" - ] - }, - "example": [ - "end", - "start", - "tweet_count" - ] - }, - "explode": false, - "style": "form" - }, - "SpaceExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [Space](#Space) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "creator_id", - "host_ids", - "invited_user_ids", - "speaker_ids", - "topic_ids" - ] - }, - "example": [ - "creator_id", - "host_ids", - "invited_user_ids", - "speaker_ids", - "topic_ids" - ] - }, - "explode": false, - "style": "form" - }, - "SpaceFieldsParameter": { - "name": "space.fields", - "in": "query", - "description": "A comma separated list of Space fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Space object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "creator_id", - "ended_at", - "host_ids", - "id", - "invited_user_ids", - "is_ticketed", - "lang", - "participant_count", - "scheduled_start", - "speaker_ids", - "started_at", - "state", - "subscriber_count", - "title", - "topic_ids", - "updated_at" - ] - }, - "example": [ - "created_at", - "creator_id", - "ended_at", - "host_ids", - "id", - "invited_user_ids", - "is_ticketed", - "lang", - "participant_count", - "scheduled_start", - "speaker_ids", - "started_at", - "state", - "subscriber_count", - "title", - "topic_ids", - "updated_at" - ] - }, - "explode": false, - "style": "form" - }, - "TopicFieldsParameter": { - "name": "topic.fields", - "in": "query", - "description": "A comma separated list of Topic fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Topic object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "description", - "id", - "name" - ] - }, - "example": [ - "description", - "id", - "name" - ] - }, - "explode": false, - "style": "form" - }, - "TrendFieldsParameter": { - "name": "trend.fields", - "in": "query", - "description": "A comma separated list of Trend fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Trend object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "trend_name", - "tweet_count" - ] - }, - "example": [ - "trend_name", - "tweet_count" - ] - }, - "explode": false, - "style": "form" - }, - "TweetExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [Tweet](#Tweet) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "article.cover_media", - "article.media_entities", - "attachments.media_keys", - "attachments.media_source_tweet", - "attachments.poll_ids", - "author_id", - "edit_history_tweet_ids", - "entities.mentions.username", - "geo.place_id", - "in_reply_to_user_id", - "entities.note.mentions.username", - "referenced_tweets.id", - "referenced_tweets.id.attachments.media_keys", - "referenced_tweets.id.author_id" - ] - }, - "example": [ - "article.cover_media", - "article.media_entities", - "attachments.media_keys", - "attachments.media_source_tweet", - "attachments.poll_ids", - "author_id", - "edit_history_tweet_ids", - "entities.mentions.username", - "geo.place_id", - "in_reply_to_user_id", - "entities.note.mentions.username", - "referenced_tweets.id", - "referenced_tweets.id.attachments.media_keys", - "referenced_tweets.id.author_id" - ] - }, - "explode": false, - "style": "form" - }, - "TweetFieldsParameter": { - "name": "tweet.fields", - "in": "query", - "description": "A comma separated list of Tweet fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Tweet object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "article", - "attachments", - "author_id", - "card_uri", - "community_id", - "context_annotations", - "conversation_id", - "created_at", - "display_text_range", - "edit_controls", - "edit_history_tweet_ids", - "entities", - "geo", - "id", - "in_reply_to_user_id", - "lang", - "media_metadata", - "non_public_metrics", - "note_tweet", - "organic_metrics", - "possibly_sensitive", - "promoted_metrics", - "public_metrics", - "referenced_tweets", - "reply_settings", - "scopes", - "source", - "text", - "withheld" - ] - }, - "example": [ - "article", - "attachments", - "author_id", - "card_uri", - "community_id", - "context_annotations", - "conversation_id", - "created_at", - "display_text_range", - "edit_controls", - "edit_history_tweet_ids", - "entities", - "geo", - "id", - "in_reply_to_user_id", - "lang", - "media_metadata", - "non_public_metrics", - "note_tweet", - "organic_metrics", - "possibly_sensitive", - "promoted_metrics", - "public_metrics", - "referenced_tweets", - "reply_settings", - "scopes", - "source", - "text", - "withheld" - ] - }, - "explode": false, - "style": "form" - }, - "UsageFieldsParameter": { - "name": "usage.fields", - "in": "query", - "description": "A comma separated list of Usage fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a Usage object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "cap_reset_day", - "daily_client_app_usage", - "daily_project_usage", - "project_cap", - "project_id", - "project_usage" - ] - }, - "example": [ - "cap_reset_day", - "daily_client_app_usage", - "daily_project_usage", - "project_cap", - "project_id", - "project_usage" - ] - }, - "explode": false, - "style": "form" - }, - "UserExpansionsParameter": { - "name": "expansions", - "in": "query", - "description": "A comma separated list of fields to expand.", - "schema": { - "type": "array", - "description": "The list of fields you can expand for a [User](#User) object. If the field has an ID, it can be expanded into a full object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "affiliation.user_id", - "most_recent_tweet_id", - "pinned_tweet_id" - ] - }, - "example": [ - "affiliation.user_id", - "most_recent_tweet_id", - "pinned_tweet_id" - ] + "discriminator" : { + "propertyName" : "type", + "mapping" : { + "animated_gif" : "#/components/schemas/AnimatedGif", + "photo" : "#/components/schemas/Photo", + "video" : "#/components/schemas/Video" + } + } + }, + "MediaAnalytics" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "media_key" : { + "$ref" : "#/components/schemas/MediaKey" + }, + "timestamped_metrics" : { + "type" : "array", + "title" : "Timestamped Metrics", + "description" : "Array containing metrics data along with the timestamps of their recording.", + "items" : { + "$ref" : "#/components/schemas/MediaTimestampedMetrics" + } + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "MediaCategory" : { + "type" : "string", + "description" : "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size, video duration) and enable advanced features.", + "enum" : [ + "amplify_video", + "tweet_gif", + "tweet_image", + "tweet_video", + "dm_gif", + "dm_image", + "dm_video", + "subtitles" + ], + "example" : "tweet_video" + }, + "MediaCategoryOneShot" : { + "type" : "string", + "description" : "A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size) and enable advanced features.", + "enum" : [ + "tweet_image", + "dm_image", + "subtitles" + ], + "example" : "tweet_image" + }, + "MediaCategorySubtitles" : { + "type" : "string", + "description" : "The media category of uploaded media to which subtitles should be added/deleted", + "enum" : [ + "AmplifyVideo", + "TweetVideo" + ], + "example" : "TweetVideo" + }, + "MediaHeight" : { + "type" : "integer", + "description" : "The height of the media in pixels.", + "minimum" : 0 + }, + "MediaId" : { + "type" : "string", + "description" : "The unique identifier of this Media.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "MediaKey" : { + "type" : "string", + "description" : "The Media Key identifier for this attachment.", + "pattern" : "^([0-9]+)_([0-9]+)$" + }, + "MediaMetrics" : { + "type" : "object", + "properties" : { + "cta_url_clicks" : { + "type" : "integer", + "title" : "CTA URL Clicks", + "description" : "Tracks the number of clicks on a call-to-action URL" + }, + "cta_watch_clicks" : { + "type" : "integer", + "title" : "CTA Watch Clicks", + "description" : "Tracks the number of clicks to watch a video or media content" + }, + "play_from_tap" : { + "type" : "integer", + "title" : "Play From Tap", + "description" : "Tracks the number of times a video or media is played from a user tap" + }, + "playback25" : { + "type" : "integer", + "title" : "Playback 25%", + "description" : "Tracks the number of times a video reaches 25% of its duration" + }, + "playback50" : { + "type" : "integer", + "title" : "Playback 50%", + "description" : "Tracks the number of times a video reaches 50% of its duration" + }, + "playback75" : { + "type" : "integer", + "title" : "Playback 75%", + "description" : "Tracks the number of times a video reaches 75% of its duration" + }, + "playback_complete" : { + "type" : "integer", + "title" : "Playback Complete", + "description" : "Tracks the number of times a video is played to completion" + }, + "playback_start" : { + "type" : "integer", + "title" : "Playback Start", + "description" : "Tracks the number of times a video playback is initiated" + }, + "video_views" : { + "type" : "integer", + "title" : "Video Views", + "description" : "Tracks the number of times a video is viewed" + }, + "watch_time_ms" : { + "type" : "integer", + "title" : "Watch Time (ms)", + "description" : "Tracks the total time spent watching a video, measured in milliseconds" + } + } + }, + "MediaPayloadBinary" : { + "type" : "string", + "description" : "The file to upload.", + "format" : "binary" + }, + "MediaPayloadByte" : { + "type" : "string", + "description" : "The file to upload.", + "format" : "byte" + }, + "MediaSegments" : { + "oneOf" : [ + { + "type" : "integer", + "description" : "An integer value representing the media upload segment.", + "minimum" : 0, + "maximum" : 999, + "format" : "int32" + }, + { + "type" : "string", + "description" : "An integer value representing the media upload segment.", + "pattern" : "^[0-9]{1,3}$", + "format" : "integer" + } + ] + }, + "MediaTimestampedMetrics" : { + "type" : "object", + "properties" : { + "metrics" : { + "$ref" : "#/components/schemas/MediaMetrics" + }, + "timestamp" : { + "type" : "string", + "title" : "Timestamp", + "description" : "ISO8601 Time", + "example" : "2025-03-17T06:30:00Z" + } + } + }, + "MediaUploadAppendRequest" : { + "anyOf" : [ + { + "type" : "object", + "required" : [ + "media", + "segment_index" + ], + "properties" : { + "media" : { + "$ref" : "#/components/schemas/MediaPayloadBinary" + }, + "segment_index" : { + "$ref" : "#/components/schemas/MediaSegments" + } + } + }, + { + "type" : "object", + "required" : [ + "media", + "segment_index" + ], + "properties" : { + "media" : { + "$ref" : "#/components/schemas/MediaPayloadByte" + }, + "segment_index" : { + "$ref" : "#/components/schemas/MediaSegments" + } + } + } + ] + }, + "MediaUploadAppendResponse" : { + "type" : "object", + "description" : "A response from getting a media upload request status.", + "required" : [ + "meta" + ], + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "expires_at" : { + "type" : "integer", + "description" : "Unix epoch time in seconds after when the upload session expires.", + "format" : "int64" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "MediaUploadConfigRequest" : { + "type" : "object", + "properties" : { + "additional_owners" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "media_category" : { + "$ref" : "#/components/schemas/MediaCategory" + }, + "media_type" : { + "type" : "string", + "description" : "The type of media.", + "enum" : [ + "video/mp4", + "video/webm", + "video/mp2t", + "video/quicktime", + "text/srt", + "text/vtt", + "image/jpeg", + "image/gif", + "image/bmp", + "image/png", + "image/webp", + "image/pjpeg", + "image/tiff", + "model/gltf-binary", + "model/vnd.usdz+zip" + ], + "example" : "video/mp4" + }, + "shared" : { + "type" : "boolean", + "description" : "Whether this media is shared or not." + }, + "total_bytes" : { + "type" : "integer", + "description" : "The total size of the media upload in bytes.", + "minimum" : 0, + "maximum" : 17179869184 + } + }, + "additionalProperties" : false + }, + "MediaUploadRequestOneShot" : { + "type" : "object", + "required" : [ + "media", + "media_category" + ], + "properties" : { + "additional_owners" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "media" : { + "anyOf" : [ + { + "$ref" : "#/components/schemas/MediaPayloadBinary" + }, + { + "$ref" : "#/components/schemas/MediaPayloadByte" + } + ] + }, + "media_category" : { + "$ref" : "#/components/schemas/MediaCategoryOneShot" + }, + "media_type" : { + "type" : "string", + "description" : "The type of image or subtitle.", + "enum" : [ + "text/srt", + "text/vtt", + "image/jpeg", + "image/bmp", + "image/png", + "image/webp", + "image/pjpeg", + "image/tiff" + ], + "example" : "image/png" + }, + "shared" : { + "type" : "boolean", + "description" : "Whether this media is shared or not.", + "default" : false + } + }, + "additionalProperties" : false + }, + "MediaUploadResponse" : { + "type" : "object", + "description" : "A response from getting a media upload request status.", + "required" : [ + "meta" + ], + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "id", + "media_key" + ], + "properties" : { + "expires_after_secs" : { + "type" : "integer", + "description" : "Number of seconds after which upload session expires.", + "format" : "int32" + }, + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "media_key" : { + "$ref" : "#/components/schemas/MediaKey" + }, + "processing_info" : { + "$ref" : "#/components/schemas/ProcessingInfo" + }, + "size" : { + "type" : "integer", + "description" : "Size of the upload", + "format" : "int32" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "MediaWidth" : { + "type" : "integer", + "description" : "The width of the media in pixels.", + "minimum" : 0 + }, + "MentionEntity" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref" : "#/components/schemas/MentionFields" + } + ] + }, + "MentionFields" : { + "type" : "object", + "description" : "Represent the portion of text recognized as a User mention, and its start and end position within the text.", + "required" : [ + "username" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/UserId" + }, + "username" : { + "$ref" : "#/components/schemas/UserName" + } + } + }, + "MetadataCreateRequest" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "metadata" : { + "type" : "object", + "properties" : { + "allow_download_status" : { + "$ref" : "#/components/schemas/AllowDownloadStatus" + }, + "alt_text" : { + "$ref" : "#/components/schemas/AltText" + }, + "audience_policy" : { + "$ref" : "#/components/schemas/AudiencePolicy" + }, + "content_expiration" : { + "$ref" : "#/components/schemas/ContentExpiration" + }, + "domain_restrictions" : { + "$ref" : "#/components/schemas/DomainRestrictions" + }, + "found_media_origin" : { + "$ref" : "#/components/schemas/FoundMediaOrigin" + }, + "geo_restrictions" : { + "$ref" : "#/components/schemas/GeoRestrictions" + }, + "management_info" : { + "$ref" : "#/components/schemas/ManagementInfo" + }, + "preview_image" : { + "$ref" : "#/components/schemas/PreviewImage" + }, + "sensitive_media_warning" : { + "$ref" : "#/components/schemas/SensitiveMediaWarning" + }, + "shared_info" : { + "$ref" : "#/components/schemas/SharedInfo" + }, + "sticker_info" : { + "$ref" : "#/components/schemas/StickerInfo" + }, + "upload_source" : { + "$ref" : "#/components/schemas/UploadSource" + } + } + } + } + }, + "MetadataCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "associated_metadata" : { + "type" : "object", + "properties" : { + "allow_download_status" : { + "$ref" : "#/components/schemas/AllowDownloadStatus" + }, + "alt_text" : { + "$ref" : "#/components/schemas/AltText" + }, + "audience_policy" : { + "$ref" : "#/components/schemas/AudiencePolicy" + }, + "content_expiration" : { + "$ref" : "#/components/schemas/ContentExpiration" + }, + "domain_restrictions" : { + "$ref" : "#/components/schemas/DomainRestrictions" + }, + "found_media_origin" : { + "$ref" : "#/components/schemas/FoundMediaOrigin" + }, + "geo_restrictions" : { + "$ref" : "#/components/schemas/GeoRestrictions" + }, + "management_info" : { + "$ref" : "#/components/schemas/ManagementInfo" + }, + "preview_image" : { + "$ref" : "#/components/schemas/PreviewImage" + }, + "sensitive_media_warning" : { + "$ref" : "#/components/schemas/SensitiveMediaWarning" + }, + "shared_info" : { + "$ref" : "#/components/schemas/SharedInfo" + }, + "sticker_info" : { + "$ref" : "#/components/schemas/StickerInfo" + }, + "upload_source" : { + "$ref" : "#/components/schemas/UploadSource" + } + } + }, + "id" : { + "$ref" : "#/components/schemas/MediaId" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Metrics" : { + "type" : "object", + "properties" : { + "app_install_attempts" : { + "type" : "integer", + "title" : "App Install Attempts", + "description" : "Tracks number of App Install Attempts" + }, + "app_opens" : { + "type" : "integer", + "title" : "App Opens", + "description" : "Tracks number of App opens" + }, + "detail_expands" : { + "type" : "integer", + "title" : "Detail Expands", + "description" : "Tracks number of Detail expands" + }, + "email_tweet" : { + "type" : "integer", + "title" : "Email Tweet", + "description" : "Tracks number of Email Tweet actions" + }, + "engagements" : { + "type" : "integer", + "title" : "Engagements", + "description" : "Tracks total Engagements" + }, + "follows" : { + "type" : "integer", + "title" : "Follows", + "description" : "Tracks number of Follows" + }, + "hashtag_clicks" : { + "type" : "integer", + "title" : "Hashtag Clicks", + "description" : "Tracks number of Hashtag clicks" + }, + "impressions" : { + "type" : "integer", + "title" : "Impressions", + "description" : "Tracks number of Impressions" + }, + "likes" : { + "type" : "integer", + "title" : "Likes", + "description" : "Tracks number of Likes" + }, + "link_clicks" : { + "type" : "integer", + "title" : "Link Clicks", + "description" : "Tracks number of Link clicks" + }, + "media_engagements" : { + "type" : "integer", + "title" : "Media Engagements", + "description" : "Tracks number of Media engagements" + }, + "media_views" : { + "type" : "integer", + "title" : "Media Views", + "description" : "Tracks number of Media views" + }, + "permalink_clicks" : { + "type" : "integer", + "title" : "Permalink Clicks", + "description" : "Tracks number of Permalink clicks" + }, + "profile_visits" : { + "type" : "integer", + "title" : "Profile Visits", + "description" : "Tracks number of Profile visits" + }, + "quote_tweets" : { + "type" : "integer", + "title" : "Quote Tweets", + "description" : "Tracks number of Quote Tweets" + }, + "replies" : { + "type" : "integer", + "title" : "Replies", + "description" : "Tracks number of Replies" + }, + "retweets" : { + "type" : "integer", + "title" : "Retweets", + "description" : "Tracks number of Retweets" + }, + "url_clicks" : { + "type" : "integer", + "title" : "URL Clicks", + "description" : "Tracks number of URL clicks" + }, + "user_profile_clicks" : { + "type" : "integer", + "title" : "User Profile Clicks", + "description" : "Tracks number of User Profile clicks" + } + } + }, + "MisleadingTags" : { + "type" : "string", + "description" : "Community Note misleading tags type.", + "enum" : [ + "disputed_claim_as_fact", + "factual_error", + "manipulated_media", + "misinterpreted_satire", + "missing_important_context", + "other", + "outdated_information" + ] + }, + "MuteUserMutationResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "muting" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "MuteUserRequest" : { + "type" : "object", + "required" : [ + "target_user_id" + ], + "properties" : { + "target_user_id" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "NewestId" : { + "type" : "string", + "description" : "The newest id in this response." + }, + "NextToken" : { + "type" : "string", + "description" : "The next token.", + "minLength" : 1 + }, + "NonCompliantRulesProblem" : { + "description" : "A problem that indicates the user's rule set is not compliant.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "Note" : { + "type" : "object", + "description" : "A X Community Note is a note on a Post.", + "required" : [ + "id", + "post_id", + "note_info" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/NoteId" + }, + "info" : { + "$ref" : "#/components/schemas/NoteInfo" + }, + "post_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "status" : { + "$ref" : "#/components/schemas/NoteRatingStatus" + }, + "test_result" : { + "$ref" : "#/components/schemas/NoteTestResult" + } + } + }, + "NoteClassification" : { + "type" : "string", + "description" : "Community Note classification type.", + "enum" : [ + "misinformed_or_potentially_misleading", + "not_misleading" + ] + }, + "NoteId" : { + "type" : "string", + "description" : "The unique identifier of this Community Note.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "NoteInfo" : { + "type" : "object", + "description" : "A X Community Note is a note on a Post.", + "required" : [ + "text", + "classification", + "misleading_tags", + "trustworthy_sources" + ], + "properties" : { + "classification" : { + "$ref" : "#/components/schemas/NoteClassification" + }, + "misleading_tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MisleadingTags" + } + }, + "text" : { + "type" : "string", + "description" : "The text summary in the Community Note.", + "pattern" : "^(?=.*https?://\\S+).+$" + }, + "trustworthy_sources" : { + "type" : "boolean", + "description" : "Whether the note provided trustworthy links." + } + }, + "additionalProperties" : false + }, + "NoteRatingStatus" : { + "type" : "string", + "description" : "Community Note rating status. Only returned when test result is false", + "enum" : [ + "currently_rated_helpful", + "currently_rated_not_helpful", + "firm_reject", + "insufficient_consensus", + "minimum_ratings_not_met", + "needs_more_ratings", + "needs_your_help" + ] + }, + "NoteTestResult" : { + "type" : "object", + "description" : "The test result of a community note.", + "properties" : { + "evaluator_score" : { + "type" : "number", + "description" : "The score given to a written test note.", + "format" : "double" + }, + "evaluator_type" : { + "type" : "string", + "description" : "The type of evaluator response." + } + } + }, + "NoteTweetText" : { + "type" : "string", + "description" : "The note content of the Tweet.", + "example" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" + }, + "Oauth1PermissionsProblem" : { + "description" : "A problem that indicates your client application does not have the required OAuth1 permissions for the requested endpoint.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "OldestId" : { + "type" : "string", + "description" : "The oldest id in this response." + }, + "OperationalDisconnectProblem" : { + "description" : "You have been disconnected for operational reasons.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "disconnect_type" : { + "type" : "string", + "enum" : [ + "OperationalDisconnect", + "UpstreamOperationalDisconnect", + "ForceDisconnect", + "UpstreamUncleanDisconnect", + "SlowReader", + "InternalError", + "ClientApplicationStateDegraded", + "InvalidRules" + ] + } + } + } + ] + }, + "PaginationToken32" : { + "type" : "string", + "description" : "A base32 pagination token.", + "minLength" : 16 + }, + "PaginationToken36" : { + "type" : "string", + "description" : "A base36 pagination token.", + "minLength" : 1 + }, + "PaginationTokenLong" : { + "type" : "string", + "description" : "A 'long' pagination token.", + "minLength" : 1, + "maxLength" : 19 + }, + "PersonalizedTrend" : { + "type" : "object", + "description" : "A trend.", + "properties" : { + "category" : { + "type" : "string", + "description" : "Category of this trend." + }, + "post_count" : { + "type" : "integer", + "description" : "Number of posts pertaining to this trend." + }, + "trend_name" : { + "type" : "string", + "description" : "Name of the trend." + }, + "trending_since" : { + "type" : "string", + "description" : "Time since this is trending." + } + } + }, + "Photo" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/Media" + }, + { + "type" : "object", + "properties" : { + "alt_text" : { + "type" : "string" + }, + "url" : { + "type" : "string", + "format" : "uri" + } + } + } + ] + }, + "Place" : { + "type" : "object", + "required" : [ + "id", + "full_name" + ], + "properties" : { + "contained_within" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/PlaceId" + } + }, + "country" : { + "type" : "string", + "description" : "The full name of the county in which this place exists.", + "example" : "United States" + }, + "country_code" : { + "$ref" : "#/components/schemas/CountryCode" + }, + "full_name" : { + "type" : "string", + "description" : "The full name of this place.", + "example" : "Lakewood, CO" + }, + "geo" : { + "$ref" : "#/components/schemas/Geo" + }, + "id" : { + "$ref" : "#/components/schemas/PlaceId" + }, + "name" : { + "type" : "string", + "description" : "The human readable name of this place.", + "example" : "Lakewood" + }, + "place_type" : { + "$ref" : "#/components/schemas/PlaceType" + } + } + }, + "PlaceId" : { + "type" : "string", + "description" : "The identifier for this place.", + "example" : "f7eb2fa2fea288b1" + }, + "PlaceType" : { + "type" : "string", + "enum" : [ + "poi", + "neighborhood", + "city", + "admin", + "country", + "unknown" + ], + "example" : "city" + }, + "PlaidAccount" : { + "type" : "object", + "description" : "Descriptor for a Plaid account.", + "required" : [ + "accountId", + "accountCategory", + "accountNumberDisplay", + "accountType", + "currency", + "productName", + "status" + ], + "properties" : { + "accountCategory" : { + "type" : "string", + "description" : "The category of the account (e.g., personal, business)." + }, + "accountId" : { + "type" : "string", + "description" : "The Plaid account ID." + }, + "accountNumberDisplay" : { + "type" : "string", + "description" : "The last 2-4 digits of the account number." + }, + "accountType" : { + "type" : "string", + "description" : "The type of the account (e.g., checking, savings)." + }, + "availableBalance" : { + "type" : "number", + "description" : "The available balance of the account." + }, + "currency" : { + "$ref" : "#/components/schemas/PlaidCurrency" + }, + "currentBalance" : { + "type" : "number", + "description" : "The current balance of the account." + }, + "nickname" : { + "type" : "string", + "description" : "The nickname of the account." + }, + "productName" : { + "type" : "string", + "description" : "The name of the product associated with the account." + }, + "status" : { + "type" : "string", + "description" : "The status of the account." + } + } + }, + "PlaidAccountContact" : { + "type" : "object", + "description" : "Contact information associated with a Plaid account.", + "required" : [ + "name", + "addresses", + "emails", + "telephones" + ], + "properties" : { + "addresses" : { + "type" : "array", + "description" : "List of addresses associated with the account holder.", + "items" : { + "$ref" : "#/components/schemas/PlaidAddress" + } + }, + "emails" : { + "type" : "array", + "description" : "List of email addresses associated with the account holder.", + "items" : { + "type" : "string" + } + }, + "name" : { + "$ref" : "#/components/schemas/PlaidName" + }, + "relationship" : { + "type" : "string", + "description" : "Relationship of the contact to the account." + }, + "telephones" : { + "type" : "array", + "description" : "List of telephone numbers associated with the account holder.", + "items" : { + "$ref" : "#/components/schemas/PlaidTelephone" + } + } + } + }, + "PlaidAccountPaymentNetwork" : { + "type" : "object", + "description" : "Payment network details associated with the account.", + "required" : [ + "identifier", + "type", + "transferIn", + "transferOut", + "bankId" + ], + "properties" : { + "bankId" : { + "type" : "string", + "description" : "The bank ID associated with the account." + }, + "identifier" : { + "type" : "string", + "description" : "The payment network identifier." + }, + "transferIn" : { + "type" : "boolean", + "description" : "Indicates if transfers into the account are supported." + }, + "transferOut" : { + "type" : "boolean", + "description" : "Indicates if transfers out of the account are supported." + }, + "type" : { + "type" : "string", + "description" : "The type of payment network (e.g., ACH, SEPA)." + } + } + }, + "PlaidAccountTransaction" : { + "type" : "object", + "description" : "Descriptor for a Plaid account.", + "required" : [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "status", + "transactionId", + "transactionTimestamp" + ], + "properties" : { + "accountCategory" : { + "type" : "string", + "description" : "The category of the account (e.g., personal, business)." + }, + "amount" : { + "type" : "number", + "description" : "The amount transacted." + }, + "debitCreditMemo" : { + "type" : "string", + "description" : "Memo for transaction (e.g. CREDIT)" + }, + "description" : { + "type" : "string", + "description" : "The transaction description" + }, + "postedTimestamp" : { + "type" : "string", + "description" : "The timestamp when the transaction was posted." + }, + "status" : { + "type" : "string", + "description" : "The status of the transaction." + }, + "transactionId" : { + "type" : "string", + "description" : "The identifier for the transaction." + }, + "transactionTimestamp" : { + "type" : "string", + "description" : "The timestamp when the transaction occurred." + } + } + }, + "PlaidAddress" : { + "type" : "object", + "description" : "Address information for the account holder.", + "required" : [ + "city", + "country", + "line1" + ], + "properties" : { + "city" : { + "type" : "string", + "description" : "The city of the address." + }, + "country" : { + "type" : "string", + "description" : "The country of the address (ISO 3166-1 alpha-2 code)." + }, + "line1" : { + "type" : "string", + "description" : "The first line of the address." + }, + "line2" : { + "type" : "string", + "description" : "The second line of the address." + }, + "postalCode" : { + "type" : "string", + "description" : "The postal code of the address." + }, + "region" : { + "type" : "string", + "description" : "The region or state of the address." + } + } + }, + "PlaidCurrency" : { + "type" : "object", + "description" : "Currency information.", + "required" : [ + "currencyCode" + ], + "properties" : { + "currencyCode" : { + "type" : "string", + "description" : "The ISO 4217 currency code." + } + } + }, + "PlaidCustomer" : { + "type" : "object", + "description" : "A user id for the plaid customer", + "properties" : { + "customerId" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "PlaidName" : { + "type" : "object", + "description" : "Name information for the account holder.", + "required" : [ + "first", + "last" + ], + "properties" : { + "first" : { + "type" : "string", + "description" : "The first name of the account holder." + }, + "last" : { + "type" : "string", + "description" : "The last name of the account holder." + } + } + }, + "PlaidTelephone" : { + "type" : "object", + "description" : "Telephone information for the account holder.", + "required" : [ + "country", + "number", + "type" + ], + "properties" : { + "country" : { + "type" : "string", + "description" : "The country code for the phone number (e.g., '+1')." + }, + "number" : { + "type" : "string", + "description" : "The phone number." + }, + "type" : { + "type" : "string", + "description" : "The type of phone number (e.g., 'mobile')." + } + } + }, + "Point" : { + "type" : "object", + "description" : "A [GeoJson Point](https://tools.ietf.org/html/rfc7946#section-3.1.2) geometry object.", + "required" : [ + "type", + "coordinates" + ], + "properties" : { + "coordinates" : { + "$ref" : "#/components/schemas/Position" + }, + "type" : { + "type" : "string", + "enum" : [ + "Point" + ], + "example" : "Point" + } + } + }, + "Poll" : { + "type" : "object", + "description" : "Represent a Poll attached to a Tweet.", + "required" : [ + "id", + "options" + ], + "properties" : { + "duration_minutes" : { + "type" : "integer", + "minimum" : 5, + "maximum" : 10080, + "format" : "int32" + }, + "end_datetime" : { + "type" : "string", + "format" : "date-time" + }, + "id" : { + "$ref" : "#/components/schemas/PollId" + }, + "options" : { + "type" : "array", + "minItems" : 2, + "maxItems" : 4, + "items" : { + "$ref" : "#/components/schemas/PollOption" + } + }, + "voting_status" : { + "type" : "string", + "enum" : [ + "open", + "closed" + ] + } + } + }, + "PollId" : { + "type" : "string", + "description" : "Unique identifier of this poll.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1365059861688410112" + }, + "PollOption" : { + "type" : "object", + "description" : "Describes a choice in a Poll object.", + "required" : [ + "position", + "label", + "votes" + ], + "properties" : { + "label" : { + "$ref" : "#/components/schemas/PollOptionLabel" + }, + "position" : { + "type" : "integer", + "description" : "Position of this choice in the poll." + }, + "votes" : { + "type" : "integer", + "description" : "Number of users who voted for this choice." + } + } + }, + "PollOptionLabel" : { + "type" : "string", + "description" : "The text of a poll choice.", + "minLength" : 1, + "maxLength" : 25 + }, + "Position" : { + "type" : "array", + "description" : "A [GeoJson Position](https://tools.ietf.org/html/rfc7946#section-3.1.1) in the format `[longitude,latitude]`.", + "minItems" : 2, + "maxItems" : 2, + "items" : { + "type" : "number" + }, + "example" : [ + -105.18816086351444, + 40.247749999999996 + ] + }, + "PreviewImage" : { + "type" : "object", + "required" : [ + "media_key" + ], + "properties" : { + "media_key" : { + "type" : "object", + "properties" : { + "media" : { + "$ref" : "#/components/schemas/MediaId" + }, + "media_category" : { + "type" : "string", + "description" : "The media category of media", + "enum" : [ + "TweetImage" + ], + "default" : "TweetImage", + "example" : "TweetImage" + } + } + } + } + }, + "PreviousToken" : { + "type" : "string", + "description" : "The previous token.", + "minLength" : 1 + }, + "Problem" : { + "type" : "object", + "description" : "An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).", + "required" : [ + "type", + "title" + ], + "properties" : { + "detail" : { + "type" : "string" + }, + "status" : { + "type" : "integer" + }, + "title" : { + "type" : "string" + }, + "type" : { + "type" : "string" + } + }, + "discriminator" : { + "propertyName" : "type", + "mapping" : { + "about:blank" : "#/components/schemas/GenericProblem", + "https://api.twitter.com/2/problems/client-disconnected" : "#/components/schemas/ClientDisconnectedProblem", + "https://api.twitter.com/2/problems/client-forbidden" : "#/components/schemas/ClientForbiddenProblem", + "https://api.twitter.com/2/problems/conflict" : "#/components/schemas/ConflictProblem", + "https://api.twitter.com/2/problems/disallowed-resource" : "#/components/schemas/DisallowedResourceProblem", + "https://api.twitter.com/2/problems/duplicate-rules" : "#/components/schemas/DuplicateRuleProblem", + "https://api.twitter.com/2/problems/invalid-request" : "#/components/schemas/InvalidRequestProblem", + "https://api.twitter.com/2/problems/invalid-rules" : "#/components/schemas/InvalidRuleProblem", + "https://api.twitter.com/2/problems/noncompliant-rules" : "#/components/schemas/NonCompliantRulesProblem", + "https://api.twitter.com/2/problems/not-authorized-for-field" : "#/components/schemas/FieldUnauthorizedProblem", + "https://api.twitter.com/2/problems/not-authorized-for-resource" : "#/components/schemas/ResourceUnauthorizedProblem", + "https://api.twitter.com/2/problems/operational-disconnect" : "#/components/schemas/OperationalDisconnectProblem", + "https://api.twitter.com/2/problems/resource-not-found" : "#/components/schemas/ResourceNotFoundProblem", + "https://api.twitter.com/2/problems/resource-unavailable" : "#/components/schemas/ResourceUnavailableProblem", + "https://api.twitter.com/2/problems/rule-cap" : "#/components/schemas/RulesCapProblem", + "https://api.twitter.com/2/problems/streaming-connection" : "#/components/schemas/ConnectionExceptionProblem", + "https://api.twitter.com/2/problems/unsupported-authentication" : "#/components/schemas/UnsupportedAuthenticationProblem", + "https://api.twitter.com/2/problems/usage-capped" : "#/components/schemas/UsageCapExceededProblem" + } + } + }, + "ProcessingInfo" : { + "type" : "object", + "required" : [ + "type" + ], + "properties" : { + "check_after_secs" : { + "type" : "integer", + "description" : "Number of seconds to check again for status", + "format" : "int32" + }, + "progress_percent" : { + "type" : "integer", + "description" : "Percent of upload progress", + "format" : "int32" + }, + "state" : { + "type" : "string", + "description" : "State of upload", + "enum" : [ + "succeeded", + "in_progress", + "pending", + "failed" + ] + } + } + }, + "ReplayJobCreateResponse" : { + "type" : "object", + "description" : "Confirmation that the replay job request was accepted.", + "required" : [ + "job_id", + "created_at" + ], + "properties" : { + "created_at" : { + "type" : "string", + "description" : "The UTC timestamp indicating when the replay job was created.", + "format" : "date-time", + "example" : "2025-04-24T20:57:15.242Z" + }, + "job_id" : { + "type" : "string", + "description" : "The unique identifier for the initiated replay job.", + "example" : "1915510368169844736" + } + } + }, + "ReplySettings" : { + "type" : "string", + "description" : "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, and following.", + "pattern" : "^[A-Za-z]{1,12}$", + "enum" : [ + "everyone", + "mentionedUsers", + "following", + "other" + ] + }, + "ReplySettingsWithVerifiedUsers" : { + "type" : "string", + "description" : "Shows who can reply a Tweet. Fields returned are everyone, mentioned_users, subscribers, verified and following.", + "pattern" : "^[A-Za-z]{1,12}$", + "enum" : [ + "everyone", + "mentionedUsers", + "following", + "other", + "subscribers", + "verified" + ] + }, + "ResourceNotFoundProblem" : { + "description" : "A problem that indicates that a given Tweet, User, etc. does not exist.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "required" : [ + "parameter", + "value", + "resource_id", + "resource_type" + ], + "properties" : { + "parameter" : { + "type" : "string", + "minLength" : 1 + }, + "resource_id" : { + "type" : "string" + }, + "resource_type" : { + "type" : "string", + "enum" : [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "value" : { + "type" : "string", + "description" : "Value will match the schema of the field." + } + } + } + ] + }, + "ResourceUnauthorizedProblem" : { + "description" : "A problem that indicates you are not allowed to see a particular Tweet, User, etc.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "required" : [ + "value", + "resource_id", + "resource_type", + "section", + "parameter" + ], + "properties" : { + "parameter" : { + "type" : "string" + }, + "resource_id" : { + "type" : "string" + }, + "resource_type" : { + "type" : "string", + "enum" : [ + "user", + "tweet", + "media", + "list", + "space" + ] + }, + "section" : { + "type" : "string", + "enum" : [ + "data", + "includes" + ] + }, + "value" : { + "type" : "string" + } + } + } + ] + }, + "ResourceUnavailableProblem" : { + "description" : "A problem that indicates a particular Tweet, User, etc. is not available to you.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "required" : [ + "parameter", + "resource_id", + "resource_type" + ], + "properties" : { + "parameter" : { + "type" : "string", + "minLength" : 1 + }, + "resource_id" : { + "type" : "string" + }, + "resource_type" : { + "type" : "string", + "enum" : [ + "user", + "tweet", + "media", + "list", + "space" + ] + } + } + } + ] + }, + "ResultCount" : { + "type" : "integer", + "description" : "The number of results returned in this response.", + "format" : "int32" + }, + "Rule" : { + "type" : "object", + "description" : "A user-provided stream filtering rule.", + "required" : [ + "value" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/RuleId" + }, + "tag" : { + "$ref" : "#/components/schemas/RuleTag" + }, + "value" : { + "$ref" : "#/components/schemas/RuleValue" + } + } + }, + "RuleId" : { + "type" : "string", + "description" : "Unique identifier of this rule.", + "pattern" : "^[0-9]{1,19}$", + "example" : "120897978112909812" + }, + "RuleNoId" : { + "type" : "object", + "description" : "A user-provided stream filtering rule.", + "required" : [ + "value" + ], + "properties" : { + "tag" : { + "$ref" : "#/components/schemas/RuleTag" + }, + "value" : { + "$ref" : "#/components/schemas/RuleValue" + } + } + }, + "RuleTag" : { + "type" : "string", + "description" : "A tag meant for the labeling of user provided rules.", + "example" : "Non-retweeted coffee Posts" + }, + "RuleValue" : { + "type" : "string", + "description" : "The filterlang value of the rule.", + "example" : "coffee -is:retweet" + }, + "RulesCapProblem" : { + "description" : "You have exceeded the maximum number of rules.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "RulesCount" : { + "type" : "object", + "description" : "A count of user-provided stream filtering rules at the application and project levels.", + "properties" : { + "all_project_client_apps" : { + "$ref" : "#/components/schemas/AllProjectClientApps" + }, + "cap_per_client_app" : { + "type" : "integer", + "description" : "Cap of number of rules allowed per client application", + "format" : "int32" + }, + "cap_per_project" : { + "type" : "integer", + "description" : "Cap of number of rules allowed per project", + "format" : "int32" + }, + "client_app_rules_count" : { + "$ref" : "#/components/schemas/AppRulesCount" + }, + "project_rules_count" : { + "type" : "integer", + "description" : "Number of rules for project", + "format" : "int32" + } + } + }, + "RulesLookupResponse" : { + "type" : "object", + "required" : [ + "meta" + ], + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Rule" + } + }, + "meta" : { + "$ref" : "#/components/schemas/RulesResponseMetadata" + } + } + }, + "RulesRequestSummary" : { + "oneOf" : [ + { + "type" : "object", + "description" : "A summary of the results of the addition of user-specified stream filtering rules.", + "required" : [ + "created", + "not_created", + "valid", + "invalid" + ], + "properties" : { + "created" : { + "type" : "integer", + "description" : "Number of user-specified stream filtering rules that were created.", + "format" : "int32", + "example" : 1 + }, + "invalid" : { + "type" : "integer", + "description" : "Number of invalid user-specified stream filtering rules.", + "format" : "int32", + "example" : 1 + }, + "not_created" : { + "type" : "integer", + "description" : "Number of user-specified stream filtering rules that were not created.", + "format" : "int32", + "example" : 1 + }, + "valid" : { + "type" : "integer", + "description" : "Number of valid user-specified stream filtering rules.", + "format" : "int32", + "example" : 1 + } + } + }, + { + "type" : "object", + "required" : [ + "deleted", + "not_deleted" + ], + "properties" : { + "deleted" : { + "type" : "integer", + "description" : "Number of user-specified stream filtering rules that were deleted.", + "format" : "int32" + }, + "not_deleted" : { + "type" : "integer", + "description" : "Number of user-specified stream filtering rules that were not deleted.", + "format" : "int32" + } + } + } + ] + }, + "RulesResponseMetadata" : { + "type" : "object", + "required" : [ + "sent" + ], + "properties" : { + "next_token" : { + "$ref" : "#/components/schemas/NextToken" + }, + "result_count" : { + "type" : "integer", + "description" : "Number of Rules in result set.", + "format" : "int32" + }, + "sent" : { + "type" : "string" + }, + "summary" : { + "$ref" : "#/components/schemas/RulesRequestSummary" + } + } + }, + "SearchCount" : { + "type" : "object", + "description" : "Represent a Search Count Result.", + "required" : [ + "end", + "start", + "tweet_count" + ], + "properties" : { + "end" : { + "$ref" : "#/components/schemas/End" + }, + "start" : { + "$ref" : "#/components/schemas/Start" + }, + "tweet_count" : { + "$ref" : "#/components/schemas/TweetCount" + } + } + }, + "SensitiveMediaWarning" : { + "type" : "object", + "properties" : { + "adult_content" : { + "type" : "boolean", + "description" : "Indicates if the content contains adult material", + "example" : true + }, + "graphic_violence" : { + "type" : "boolean", + "description" : "Indicates if the content depicts graphic violence", + "example" : true + }, + "other" : { + "type" : "boolean", + "description" : "Indicates if the content has other sensitive characteristics", + "example" : false + } + } + }, + "SharedInfo" : { + "type" : "object", + "required" : [ + "shared" + ], + "properties" : { + "shared" : { + "type" : "boolean", + "description" : "Indicates if the media is shared in direct messages", + "example" : false + } + } + }, + "Space" : { + "type" : "object", + "description" : "", + "required" : [ + "id", + "state" + ], + "properties" : { + "created_at" : { + "type" : "string", + "description" : "Creation time of the Space.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "creator_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "ended_at" : { + "type" : "string", + "description" : "End time of the Space.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "host_ids" : { + "type" : "array", + "description" : "The user ids for the hosts of the Space.", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "id" : { + "$ref" : "#/components/schemas/SpaceId" + }, + "invited_user_ids" : { + "type" : "array", + "description" : "An array of user ids for people who were invited to a Space.", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "is_ticketed" : { + "type" : "boolean", + "description" : "Denotes if the Space is a ticketed Space.", + "example" : "false" + }, + "lang" : { + "type" : "string", + "description" : "The language of the Space.", + "example" : "en" + }, + "participant_count" : { + "type" : "integer", + "description" : "The number of participants in a Space.", + "format" : "int32", + "example" : 10 + }, + "scheduled_start" : { + "type" : "string", + "description" : "A date time stamp for when a Space is scheduled to begin.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "speaker_ids" : { + "type" : "array", + "description" : "An array of user ids for people who were speakers in a Space.", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "started_at" : { + "type" : "string", + "description" : "When the Space was started as a date string.", + "format" : "date-time", + "example" : "2021-7-14T04:35:55Z" + }, + "state" : { + "type" : "string", + "description" : "The current state of the Space.", + "enum" : [ + "live", + "scheduled", + "ended" + ], + "example" : "live" + }, + "subscriber_count" : { + "type" : "integer", + "description" : "The number of people who have either purchased a ticket or set a reminder for this Space.", + "format" : "int32", + "example" : 10 + }, + "title" : { + "type" : "string", + "description" : "The title of the Space.", + "example" : "Spaces are Awesome" + }, + "topics" : { + "type" : "array", + "description" : "The topics of a Space, as selected by its creator.", + "items" : { + "type" : "object", + "description" : "The X Topic object.", + "required" : [ + "id", + "name" + ], + "properties" : { + "description" : { + "type" : "string", + "description" : "The description of the given topic." }, - "explode": false, - "style": "form" - }, - "UserFieldsParameter": { - "name": "user.fields", - "in": "query", - "description": "A comma separated list of User fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a User object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "affiliation", - "confirmed_email", - "connection_status", - "created_at", - "description", - "entities", - "id", - "is_identity_verified", - "location", - "most_recent_tweet_id", - "name", - "parody", - "pinned_tweet_id", - "profile_banner_url", - "profile_image_url", - "protected", - "public_metrics", - "receives_your_dm", - "subscription", - "subscription_type", - "url", - "username", - "verified", - "verified_followers_count", - "verified_type", - "withheld" - ] - }, - "example": [ - "affiliation", - "confirmed_email", - "connection_status", - "created_at", - "description", - "entities", - "id", - "is_identity_verified", - "location", - "most_recent_tweet_id", - "name", - "parody", - "pinned_tweet_id", - "profile_banner_url", - "profile_image_url", - "protected", - "public_metrics", - "receives_your_dm", - "subscription", - "subscription_type", - "url", - "username", - "verified", - "verified_followers_count", - "verified_type", - "withheld" - ] + "id" : { + "type" : "string", + "description" : "An ID suitable for use in the REST API." }, - "explode": false, - "style": "form" - }, - "WebhookConfigFieldsParameter": { - "name": "webhook_config.fields", - "in": "query", - "description": "A comma separated list of WebhookConfig fields to display.", - "required": false, - "schema": { - "type": "array", - "description": "The fields available for a WebhookConfig object.", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "enum": [ - "created_at", - "id", - "url", - "valid" - ] - }, - "example": [ - "created_at", - "id", - "url", - "valid" - ] + "name" : { + "type" : "string", + "description" : "The name of the given topic." + } + }, + "example" : { + "description" : "All about technology", + "id" : "848920371311001600", + "name" : "Technology" + } + } + }, + "updated_at" : { + "type" : "string", + "description" : "When the Space was last updated.", + "format" : "date-time", + "example" : "2021-7-14T04:35:55Z" + } + } + }, + "SpaceId" : { + "type" : "string", + "description" : "The unique identifier of this Space.", + "pattern" : "^[a-zA-Z0-9]{1,13}$", + "example" : "1SLjjRYNejbKM" + }, + "Start" : { + "type" : "string", + "description" : "The start time of the bucket.", + "format" : "date-time" + }, + "Sticker" : { + "type" : "object", + "properties" : { + "aspect_ratio" : { + "type" : "number", + "description" : "width-to-height ratio of the media", + "format" : "double", + "example" : 1.78 + }, + "group_annotation_id" : { + "type" : "number", + "description" : "A unique identifier for the group of annotations associated with the media", + "format" : "long", + "example" : 987654321098765 + }, + "id" : { + "type" : "string", + "description" : "Unique identifier for sticker", + "example" : "12345" + }, + "sticker_set_annotation_id" : { + "type" : "number", + "description" : "A unique identifier for the sticker set associated with the media", + "format" : "long", + "example" : 123456789012345 + }, + "transform_a" : { + "type" : "number", + "description" : "Scale or rotate the media on the x-axis", + "format" : "double", + "example" : 1.0 + }, + "transform_b" : { + "type" : "number", + "description" : "Skew the media on the x-axis", + "format" : "double", + "example" : 0.0 + }, + "transform_c" : { + "type" : "number", + "description" : "Skew the media on the y-axis", + "format" : "double", + "example" : 0.0 + }, + "transform_d" : { + "type" : "number", + "description" : "Scale or rotate the media on the y-axis", + "format" : "double", + "example" : 1.0 + }, + "transform_tx" : { + "type" : "number", + "description" : "Scale or rotate the media on the x-axis", + "format" : "double", + "example" : 10.5 + }, + "transform_ty" : { + "type" : "number", + "description" : "The vertical translation (shift) value for the media", + "format" : "double", + "example" : -5.2 + } + } + }, + "StickerInfo" : { + "type" : "object", + "required" : [ + "stickers" + ], + "properties" : { + "stickers" : { + "type" : "array", + "description" : "Stickers list must not be empty and should not exceed 25", + "items" : { + "$ref" : "#/components/schemas/Sticker" + } + } + } + }, + "StreamingLikeResponseV2" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/LikeWithTweetAuthor" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "StreamingTweetResponse" : { + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Tweet" + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + }, + "includes" : { + "$ref" : "#/components/schemas/Expansions" + } + } + }, + "SubscriptionsCountGetResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "description" : "The count of active subscriptions across all webhooks", + "required" : [ + "account_name", + "provisioned_count", + "subscriptions_count_all", + "subscriptions_count_direct_messages" + ], + "properties" : { + "account_name" : { + "type" : "string", + "description" : "The account name" + }, + "provisioned_count" : { + "type" : "string", + "description" : "The limit for subscriptions for this app" + }, + "subscriptions_count_all" : { + "type" : "string", + "description" : "The number of active subscriptions across all webhooks" + }, + "subscriptions_count_direct_messages" : { + "type" : "string", + "description" : "The number of active direct message subscriptions" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsCreateRequest" : { + "type" : "object" + }, + "SubscriptionsCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "subscribed" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "subscribed" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsGetResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "subscribed" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubscriptionsListGetResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "description" : "The list of active subscriptions for a specified webhook", + "required" : [ + "application_id", + "webhook_id", + "webhook_url", + "subscriptions" + ], + "properties" : { + "application_id" : { + "type" : "string", + "description" : "The application ID" + }, + "subscriptions" : { + "type" : "array", + "description" : "List of active subscriptions for the webhook", + "items" : { + "type" : "object", + "properties" : { + "user_id" : { + "type" : "string", + "description" : "The ID of the user the webhook is subscribed to" + } + } + } + }, + "webhook_id" : { + "type" : "string", + "description" : "The associated webhook ID" + }, + "webhook_url" : { + "type" : "string", + "description" : "The url for the associated webhook" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubtitleLanguageCode" : { + "type" : "string", + "description" : "The language code should be a BCP47 code (e.g. 'EN\", \"SP\")", + "pattern" : "^[A-Z]{2}$", + "example" : "EN" + }, + "Subtitles" : { + "type" : "object", + "properties" : { + "display_name" : { + "type" : "string", + "description" : "Language name in a human readable form", + "example" : "English" + }, + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "language_code" : { + "$ref" : "#/components/schemas/SubtitleLanguageCode" + } + } + }, + "SubtitlesCreateRequest" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "media_category" : { + "$ref" : "#/components/schemas/MediaCategorySubtitles" + }, + "subtitles" : { + "$ref" : "#/components/schemas/Subtitles" + } + } + }, + "SubtitlesCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "id", + "media_category", + "associated_subtitles" + ], + "properties" : { + "associated_subtitles" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Subtitles" + } + }, + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "media_category" : { + "$ref" : "#/components/schemas/MediaCategorySubtitles" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "SubtitlesDeleteRequest" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/MediaId" + }, + "language_code" : { + "$ref" : "#/components/schemas/SubtitleLanguageCode" + }, + "media_category" : { + "$ref" : "#/components/schemas/MediaCategorySubtitles" + } + } + }, + "SubtitlesDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "deleted" + ], + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "TimestampedMetrics" : { + "type" : "object", + "properties" : { + "metrics" : { + "$ref" : "#/components/schemas/Metrics" + }, + "timestamp" : { + "type" : "string", + "title" : "Timestamp", + "description" : "ISO8601 Time", + "example" : "2025-03-17T06:30:00Z" + } + } + }, + "Topic" : { + "type" : "object", + "description" : "The topic of a Space, as selected by its creator.", + "required" : [ + "id", + "name" + ], + "properties" : { + "description" : { + "type" : "string", + "description" : "The description of the given topic.", + "example" : "All about technology" + }, + "id" : { + "$ref" : "#/components/schemas/TopicId" + }, + "name" : { + "type" : "string", + "description" : "The name of the given topic.", + "example" : "Technology" + } + } + }, + "TopicId" : { + "type" : "string", + "description" : "Unique identifier of this Topic." + }, + "Trend" : { + "type" : "object", + "description" : "A trend.", + "properties" : { + "trend_name" : { + "type" : "string", + "description" : "Name of the trend." + }, + "tweet_count" : { + "type" : "integer", + "description" : "Number of Posts in this trend.", + "format" : "int32" + } + } + }, + "Tweet" : { + "type" : "object", + "properties" : { + "attachments" : { + "type" : "object", + "description" : "Specifies the type of attachments (if any) present in this Tweet.", + "properties" : { + "media_keys" : { + "type" : "array", + "description" : "A list of Media Keys for each one of the media attachments (if media are attached).", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/MediaKey" + } + }, + "media_source_tweet_id" : { + "type" : "array", + "description" : "A list of Posts the media on this Tweet was originally posted in. For example, if the media on a tweet is re-used in another Tweet, this refers to the original, source Tweet..", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "poll_ids" : { + "type" : "array", + "description" : "A list of poll IDs (if polls are attached).", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/PollId" + } + } + } + }, + "author_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "community_id" : { + "$ref" : "#/components/schemas/CommunityId" + }, + "context_annotations" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/ContextAnnotation" + } + }, + "conversation_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "created_at" : { + "type" : "string", + "description" : "Creation time of the Tweet.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "display_text_range" : { + "$ref" : "#/components/schemas/DisplayTextRange" + }, + "edit_controls" : { + "type" : "object", + "required" : [ + "is_edit_eligible", + "editable_until", + "edits_remaining" + ], + "properties" : { + "editable_until" : { + "type" : "string", + "description" : "Time when Tweet is no longer editable.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "edits_remaining" : { + "type" : "integer", + "description" : "Number of times this Tweet can be edited." + }, + "is_edit_eligible" : { + "type" : "boolean", + "description" : "Indicates if this Tweet is eligible to be edited.", + "example" : false + } + } + }, + "edit_history_tweet_ids" : { + "type" : "array", + "description" : "A list of Tweet Ids in this Tweet chain.", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "entities" : { + "$ref" : "#/components/schemas/FullTextEntities" + }, + "geo" : { + "type" : "object", + "description" : "The location tagged on the Tweet, if the user provided one.", + "properties" : { + "coordinates" : { + "$ref" : "#/components/schemas/Point" + }, + "place_id" : { + "$ref" : "#/components/schemas/PlaceId" + } + } + }, + "id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "in_reply_to_user_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "lang" : { + "type" : "string", + "description" : "Language of the Tweet, if detected by X. Returned as a BCP47 language tag.", + "example" : "en" + }, + "non_public_metrics" : { + "type" : "object", + "description" : "Nonpublic engagement metrics for the Tweet at the time of the request.", + "properties" : { + "impression_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been viewed.", + "format" : "int32" + } + } + }, + "note_tweet" : { + "type" : "object", + "description" : "The full-content of the Tweet, including text beyond 280 characters.", + "properties" : { + "entities" : { + "type" : "object", + "properties" : { + "cashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/CashtagEntity" + } + }, + "hashtags" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/HashtagEntity" + } + }, + "mentions" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/MentionEntity" + } + }, + "urls" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UrlEntity" + } + } + } + }, + "text" : { + "$ref" : "#/components/schemas/NoteTweetText" + } + } + }, + "organic_metrics" : { + "type" : "object", + "description" : "Organic nonpublic engagement metrics for the Tweet at the time of the request.", + "required" : [ + "impression_count", + "retweet_count", + "reply_count", + "like_count" + ], + "properties" : { + "impression_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been viewed." + }, + "like_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been liked." + }, + "reply_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been replied to." + }, + "retweet_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been Retweeted." + } + } + }, + "possibly_sensitive" : { + "type" : "boolean", + "description" : "Indicates if this Tweet contains URLs marked as sensitive, for example content suitable for mature audiences.", + "example" : false + }, + "promoted_metrics" : { + "type" : "object", + "description" : "Promoted nonpublic engagement metrics for the Tweet at the time of the request.", + "properties" : { + "impression_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been viewed.", + "format" : "int32" + }, + "like_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been liked.", + "format" : "int32" + }, + "reply_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been replied to.", + "format" : "int32" + }, + "retweet_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been Retweeted.", + "format" : "int32" + } + } + }, + "public_metrics" : { + "type" : "object", + "description" : "Engagement metrics for the Tweet at the time of the request.", + "required" : [ + "retweet_count", + "reply_count", + "like_count", + "impression_count", + "bookmark_count" + ], + "properties" : { + "bookmark_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been bookmarked.", + "format" : "int32" + }, + "impression_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been viewed.", + "format" : "int32" + }, + "like_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been liked." + }, + "quote_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been quoted." + }, + "reply_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been replied to." + }, + "retweet_count" : { + "type" : "integer", + "description" : "Number of times this Tweet has been Retweeted." + } + } + }, + "referenced_tweets" : { + "type" : "array", + "description" : "A list of Posts this Tweet refers to. For example, if the parent Tweet is a Retweet, a Quoted Tweet or a Reply, it will include the related Tweet referenced to by its parent.", + "minItems" : 1, + "items" : { + "type" : "object", + "required" : [ + "type", + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" }, - "explode": false, - "style": "form" + "type" : { + "type" : "string", + "enum" : [ + "retweeted", + "quoted", + "replied_to" + ] + } + } + } + }, + "reply_settings" : { + "$ref" : "#/components/schemas/ReplySettingsWithVerifiedUsers" + }, + "scopes" : { + "type" : "object", + "description" : "The scopes for this tweet", + "properties" : { + "followers" : { + "type" : "boolean", + "description" : "Indicates if this Tweet is viewable by followers without the Tweet ID", + "example" : false + } + } + }, + "source" : { + "type" : "string", + "description" : "This is deprecated." + }, + "text" : { + "$ref" : "#/components/schemas/TweetText" + }, + "username" : { + "$ref" : "#/components/schemas/UserName" + }, + "withheld" : { + "$ref" : "#/components/schemas/TweetWithheld" + } + }, + "example" : { + "author_id" : "2244994945", + "created_at" : "Wed Jan 06 18:40:40 +0000 2021", + "id" : "1346889436626259968", + "text" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i", + "username" : "XDevelopers" + } + }, + "TweetComplianceData" : { + "description" : "Tweet compliance data.", + "oneOf" : [ + { + "$ref" : "#/components/schemas/TweetDeleteComplianceSchema" + }, + { + "$ref" : "#/components/schemas/TweetWithheldComplianceSchema" + }, + { + "$ref" : "#/components/schemas/TweetDropComplianceSchema" + }, + { + "$ref" : "#/components/schemas/TweetUndropComplianceSchema" + }, + { + "$ref" : "#/components/schemas/TweetEditComplianceSchema" + } + ] + }, + "TweetComplianceSchema" : { + "type" : "object", + "required" : [ + "tweet", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "quote_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "tweet" : { + "type" : "object", + "required" : [ + "id", + "author_id" + ], + "properties" : { + "author_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetComplianceStreamResponse" : { + "description" : "Tweet compliance stream events.", + "oneOf" : [ + { + "type" : "object", + "description" : "Compliance event.", + "required" : [ + "data" + ], + "properties" : { + "data" : { + "$ref" : "#/components/schemas/TweetComplianceData" + } + } + }, + { + "type" : "object", + "required" : [ + "errors" + ], + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + ] + }, + "TweetCount" : { + "type" : "integer", + "description" : "The count for the bucket." + }, + "TweetCreateRequest" : { + "type" : "object", + "properties" : { + "card_uri" : { + "type" : "string", + "description" : "Card Uri Parameter. This is mutually exclusive from Quote Tweet Id, Poll, Media, and Direct Message Deep Link." + }, + "community_id" : { + "$ref" : "#/components/schemas/CommunityId" + }, + "direct_message_deep_link" : { + "type" : "string", + "description" : "Link to take the conversation from the public timeline to a private Direct Message." + }, + "for_super_followers_only" : { + "type" : "boolean", + "description" : "Exclusive Tweet for super followers.", + "default" : false + }, + "geo" : { + "type" : "object", + "description" : "Place ID being attached to the Tweet for geo location.", + "properties" : { + "place_id" : { + "type" : "string" + } + }, + "additionalProperties" : false + }, + "media" : { + "type" : "object", + "description" : "Media information being attached to created Tweet. This is mutually exclusive from Quote Tweet Id, Poll, and Card URI.", + "required" : [ + "media_ids" + ], + "properties" : { + "media_ids" : { + "type" : "array", + "description" : "A list of Media Ids to be attached to a created Tweet.", + "minItems" : 1, + "maxItems" : 4, + "items" : { + "$ref" : "#/components/schemas/MediaId" + } + }, + "tagged_user_ids" : { + "type" : "array", + "description" : "A list of User Ids to be tagged in the media for created Tweet.", + "minItems" : 0, + "maxItems" : 10, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "additionalProperties" : false + }, + "nullcast" : { + "type" : "boolean", + "description" : "Nullcasted (promoted-only) Posts do not appear in the public timeline and are not served to followers.", + "default" : false + }, + "poll" : { + "type" : "object", + "description" : "Poll options for a Tweet with a poll. This is mutually exclusive from Media, Quote Tweet Id, and Card URI.", + "required" : [ + "options", + "duration_minutes" + ], + "properties" : { + "duration_minutes" : { + "type" : "integer", + "description" : "Duration of the poll in minutes.", + "minimum" : 5, + "maximum" : 10080, + "format" : "int32" + }, + "options" : { + "type" : "array", + "minItems" : 2, + "maxItems" : 4, + "items" : { + "type" : "string", + "description" : "The text of a poll choice.", + "minLength" : 1, + "maxLength" : 25 + } + }, + "reply_settings" : { + "type" : "string", + "description" : "Settings to indicate who can reply to the Tweet.", + "enum" : [ + "following", + "mentionedUsers", + "subscribers", + "verified" + ] + } + }, + "additionalProperties" : false + }, + "quote_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "reply" : { + "type" : "object", + "description" : "Tweet information of the Tweet being replied to.", + "required" : [ + "in_reply_to_tweet_id" + ], + "properties" : { + "exclude_reply_user_ids" : { + "type" : "array", + "description" : "A list of User Ids to be excluded from the reply Tweet.", + "items" : { + "$ref" : "#/components/schemas/UserId" + } + }, + "in_reply_to_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "additionalProperties" : false + }, + "reply_settings" : { + "type" : "string", + "description" : "Settings to indicate who can reply to the Tweet.", + "enum" : [ + "following", + "mentionedUsers", + "subscribers", + "verified" + ] + }, + "share_with_followers" : { + "type" : "boolean", + "description" : "Share community post with followers too.", + "default" : false + }, + "text" : { + "$ref" : "#/components/schemas/TweetText" + } + }, + "additionalProperties" : false + }, + "TweetCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "id", + "text" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "text" : { + "$ref" : "#/components/schemas/TweetText" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "TweetDeleteComplianceSchema" : { + "type" : "object", + "required" : [ + "delete" + ], + "properties" : { + "delete" : { + "$ref" : "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "required" : [ + "deleted" + ], + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "TweetDropComplianceSchema" : { + "type" : "object", + "required" : [ + "drop" + ], + "properties" : { + "drop" : { + "$ref" : "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetEditComplianceObjectSchema" : { + "type" : "object", + "required" : [ + "tweet", + "event_at", + "initial_tweet_id", + "edit_tweet_ids" + ], + "properties" : { + "edit_tweet_ids" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "initial_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "tweet" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetEditComplianceSchema" : { + "type" : "object", + "required" : [ + "tweet_edit" + ], + "properties" : { + "tweet_edit" : { + "$ref" : "#/components/schemas/TweetEditComplianceObjectSchema" + } + } + }, + "TweetHideRequest" : { + "type" : "object", + "required" : [ + "hidden" + ], + "properties" : { + "hidden" : { + "type" : "boolean" + } + } + }, + "TweetHideResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "hidden" : { + "type" : "boolean" + } + } + } + } + }, + "TweetId" : { + "type" : "string", + "description" : "Unique identifier of this Tweet. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1346889436626259968" + }, + "TweetLabelData" : { + "description" : "Tweet label data.", + "oneOf" : [ + { + "$ref" : "#/components/schemas/TweetNoticeSchema" + }, + { + "$ref" : "#/components/schemas/TweetUnviewableSchema" + } + ] + }, + "TweetLabelStreamResponse" : { + "description" : "Tweet label stream events.", + "oneOf" : [ + { + "type" : "object", + "description" : "Tweet Label event.", + "required" : [ + "data" + ], + "properties" : { + "data" : { + "$ref" : "#/components/schemas/TweetLabelData" + } + } + }, + { + "type" : "object", + "required" : [ + "errors" + ], + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + ] + }, + "TweetNotice" : { + "type" : "object", + "required" : [ + "tweet", + "event_type", + "event_at", + "application" + ], + "properties" : { + "application" : { + "type" : "string", + "description" : "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", + "example" : "apply" + }, + "details" : { + "type" : "string", + "description" : "Information shown on the Tweet label" + }, + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "event_type" : { + "type" : "string", + "description" : "The type of label on the Tweet", + "example" : "misleading" + }, + "extended_details_url" : { + "type" : "string", + "description" : "Link to more information about this kind of label" + }, + "label_title" : { + "type" : "string", + "description" : "Title/header of the Tweet label" + }, + "tweet" : { + "type" : "object", + "required" : [ + "id", + "author_id" + ], + "properties" : { + "author_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "id" : { + "$ref" : "#/components/schemas/TweetId" + } } + } } + }, + "TweetNoticeSchema" : { + "type" : "object", + "required" : [ + "public_tweet_notice" + ], + "properties" : { + "public_tweet_notice" : { + "$ref" : "#/components/schemas/TweetNotice" + } + } + }, + "TweetTakedownComplianceSchema" : { + "type" : "object", + "required" : [ + "tweet", + "withheld_in_countries", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "quote_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "tweet" : { + "type" : "object", + "required" : [ + "id", + "author_id" + ], + "properties" : { + "author_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + }, + "withheld_in_countries" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/CountryCode" + } + } + } + }, + "TweetText" : { + "type" : "string", + "description" : "The content of the Tweet.", + "example" : "Learn how to use the user Tweet timeline and user mention timeline endpoints in the X API v2 to explore Tweet\\u2026 https:\\/\\/t.co\\/56a0vZUx7i" + }, + "TweetUndropComplianceSchema" : { + "type" : "object", + "required" : [ + "undrop" + ], + "properties" : { + "undrop" : { + "$ref" : "#/components/schemas/TweetComplianceSchema" + } + } + }, + "TweetUnviewable" : { + "type" : "object", + "required" : [ + "tweet", + "event_at", + "application" + ], + "properties" : { + "application" : { + "type" : "string", + "description" : "If the label is being applied or removed. Possible values are ‘apply’ or ‘remove’.", + "example" : "apply" + }, + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "tweet" : { + "type" : "object", + "required" : [ + "id", + "author_id" + ], + "properties" : { + "author_id" : { + "$ref" : "#/components/schemas/UserId" + }, + "id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + } + } + }, + "TweetUnviewableSchema" : { + "type" : "object", + "required" : [ + "public_tweet_unviewable" + ], + "properties" : { + "public_tweet_unviewable" : { + "$ref" : "#/components/schemas/TweetUnviewable" + } + } + }, + "TweetWithheld" : { + "type" : "object", + "description" : "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", + "required" : [ + "copyright", + "country_codes" + ], + "properties" : { + "copyright" : { + "type" : "boolean", + "description" : "Indicates if the content is being withheld for on the basis of copyright infringement." + }, + "country_codes" : { + "type" : "array", + "description" : "Provides a list of countries where this content is not available.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "$ref" : "#/components/schemas/CountryCode" + } + }, + "scope" : { + "type" : "string", + "description" : "Indicates whether the content being withheld is the `tweet` or a `user`.", + "enum" : [ + "tweet", + "user" + ] + } + } + }, + "TweetWithheldComplianceSchema" : { + "type" : "object", + "required" : [ + "withheld" + ], + "properties" : { + "withheld" : { + "$ref" : "#/components/schemas/TweetTakedownComplianceSchema" + } + } + }, + "UnlikeComplianceSchema" : { + "type" : "object", + "required" : [ + "favorite", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "favorite" : { + "type" : "object", + "required" : [ + "id", + "user_id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "user_id" : { + "$ref" : "#/components/schemas/UserId" + } + } + } + } + }, + "UnsupportedAuthenticationProblem" : { + "description" : "A problem that indicates that the authentication used is not supported.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + } + ] + }, + "UploadExpiration" : { + "type" : "string", + "description" : "Expiration time of the upload URL.", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "UploadSource" : { + "type" : "object", + "required" : [ + "upload_source" + ], + "properties" : { + "upload_source" : { + "type" : "string", + "description" : "Records the source (e.g., app, device) from which the media was uploaded", + "example" : "gallery" + } + } + }, + "UploadUrl" : { + "type" : "string", + "description" : "URL to which the user will upload their Tweet or user IDs.", + "format" : "uri" + }, + "Url" : { + "type" : "string", + "description" : "A validly formatted URL.", + "format" : "uri", + "example" : "https://developer.twitter.com/en/docs/twitter-api" + }, + "UrlEntity" : { + "description" : "Represent the portion of text recognized as a URL, and its start and end position within the text.", + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref" : "#/components/schemas/UrlFields" + } + ] + }, + "UrlEntityDm" : { + "description" : "Represent the portion of text recognized as a URL, and its start and end position within the text.", + "allOf" : [ + { + "$ref" : "#/components/schemas/EntityIndicesInclusiveExclusive" + }, + { + "$ref" : "#/components/schemas/UrlFields" + } + ] + }, + "UrlFields" : { + "type" : "object", + "description" : "Represent the portion of text recognized as a URL.", + "required" : [ + "url" + ], + "properties" : { + "description" : { + "type" : "string", + "description" : "Description of the URL landing page.", + "example" : "This is a description of the website." + }, + "display_url" : { + "type" : "string", + "description" : "The URL as displayed in the X client.", + "example" : "twittercommunity.com/t/introducing-…" + }, + "expanded_url" : { + "$ref" : "#/components/schemas/Url" + }, + "images" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UrlImage" + } + }, + "media_key" : { + "$ref" : "#/components/schemas/MediaKey" + }, + "status" : { + "$ref" : "#/components/schemas/HttpStatusCode" + }, + "title" : { + "type" : "string", + "description" : "Title of the page the URL points to.", + "example" : "Introducing the v2 follow lookup endpoints" + }, + "unwound_url" : { + "type" : "string", + "description" : "Fully resolved url.", + "format" : "uri", + "example" : "https://twittercommunity.com/t/introducing-the-v2-follow-lookup-endpoints/147118" + }, + "url" : { + "$ref" : "#/components/schemas/Url" + } + } + }, + "UrlImage" : { + "type" : "object", + "description" : "Represent the information for the URL image.", + "properties" : { + "height" : { + "$ref" : "#/components/schemas/MediaHeight" + }, + "url" : { + "$ref" : "#/components/schemas/Url" + }, + "width" : { + "$ref" : "#/components/schemas/MediaWidth" + } + } + }, + "Usage" : { + "type" : "object", + "description" : "Usage per client app", + "properties" : { + "cap_reset_day" : { + "type" : "integer", + "description" : "Number of days left for the Tweet cap to reset", + "format" : "int32" + }, + "daily_client_app_usage" : { + "type" : "array", + "description" : "The daily usage breakdown for each Client Application a project", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/ClientAppUsage" + } + }, + "daily_project_usage" : { + "type" : "object", + "description" : "The daily usage breakdown for a project", + "properties" : { + "project_id" : { + "type" : "integer", + "description" : "The unique identifier for this project", + "format" : "int32" + }, + "usage" : { + "type" : "array", + "description" : "The usage value", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UsageFields" + } + } + } + }, + "project_cap" : { + "type" : "integer", + "description" : "Total number of Posts that can be read in this project per month", + "format" : "int32" + }, + "project_id" : { + "type" : "string", + "description" : "The unique identifier for this project", + "format" : "^[0-9]{1,19}$" + }, + "project_usage" : { + "type" : "integer", + "description" : "The number of Posts read in this project", + "format" : "int32" + } + } + }, + "UsageCapExceededProblem" : { + "description" : "A problem that indicates that a usage cap has been exceeded.", + "allOf" : [ + { + "$ref" : "#/components/schemas/Problem" + }, + { + "type" : "object", + "properties" : { + "period" : { + "type" : "string", + "enum" : [ + "Daily", + "Monthly" + ] + }, + "scope" : { + "type" : "string", + "enum" : [ + "Account", + "Product" + ] + } + } + } + ] + }, + "UsageFields" : { + "type" : "object", + "description" : "Represents the data for Usage", + "properties" : { + "date" : { + "type" : "string", + "description" : "The time period for the usage", + "format" : "date-time", + "example" : "2021-01-06T18:40:40.000Z" + }, + "usage" : { + "type" : "integer", + "description" : "The usage value", + "format" : "int32" + } + } + }, + "User" : { + "type" : "object", + "description" : "The X User object.", + "required" : [ + "id", + "name", + "username" + ], + "properties" : { + "affiliation" : { + "type" : "object", + "description" : "Metadata about a user's affiliation.", + "properties" : { + "badge_url" : { + "type" : "string", + "description" : "The badge URL corresponding to the affiliation.", + "format" : "uri" + }, + "description" : { + "type" : "string", + "description" : "The description of the affiliation." + }, + "url" : { + "type" : "string", + "description" : "The URL, if available, to details about an affiliation.", + "format" : "uri" + }, + "user_id" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UserId" + } + } + } + }, + "connection_status" : { + "type" : "array", + "description" : "Returns detailed information about the relationship between two users.", + "minItems" : 0, + "items" : { + "type" : "string", + "description" : "Type of connection between users.", + "enum" : [ + "follow_request_received", + "follow_request_sent", + "blocking", + "followed_by", + "following", + "muting" + ] + } + }, + "created_at" : { + "type" : "string", + "description" : "Creation time of this User.", + "format" : "date-time" + }, + "description" : { + "type" : "string", + "description" : "The text of this User's profile description (also known as bio), if the User provided one." + }, + "entities" : { + "type" : "object", + "description" : "A list of metadata found in the User's profile description.", + "properties" : { + "description" : { + "$ref" : "#/components/schemas/FullTextEntities" + }, + "url" : { + "type" : "object", + "description" : "Expanded details for the URL specified in the User's profile, with start and end indices.", + "properties" : { + "urls" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/UrlEntity" + } + } + } + } + } + }, + "id" : { + "$ref" : "#/components/schemas/UserId" + }, + "location" : { + "type" : "string", + "description" : "The location specified in the User's profile, if the User provided one. As this is a freeform value, it may not indicate a valid location, but it may be fuzzily evaluated when performing searches with location queries." + }, + "most_recent_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "name" : { + "type" : "string", + "description" : "The friendly name of this User, as shown on their profile." + }, + "pinned_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "profile_banner_url" : { + "type" : "string", + "description" : "The URL to the profile banner for this User.", + "format" : "uri" + }, + "profile_image_url" : { + "type" : "string", + "description" : "The URL to the profile image for this User.", + "format" : "uri" + }, + "protected" : { + "type" : "boolean", + "description" : "Indicates if this User has chosen to protect their Posts (in other words, if this User's Posts are private)." + }, + "public_metrics" : { + "type" : "object", + "description" : "A list of metrics for this User.", + "required" : [ + "followers_count", + "following_count", + "tweet_count", + "listed_count" + ], + "properties" : { + "followers_count" : { + "type" : "integer", + "description" : "Number of Users who are following this User." + }, + "following_count" : { + "type" : "integer", + "description" : "Number of Users this User is following." + }, + "like_count" : { + "type" : "integer", + "description" : "The number of likes created by this User." + }, + "listed_count" : { + "type" : "integer", + "description" : "The number of lists that include this User." + }, + "tweet_count" : { + "type" : "integer", + "description" : "The number of Posts (including Retweets) posted by this User." + } + } + }, + "receives_your_dm" : { + "type" : "boolean", + "description" : "Indicates if you can send a DM to this User" + }, + "subscription_type" : { + "type" : "string", + "description" : "The X Blue subscription type of the user, eg: Basic, Premium, PremiumPlus or None.", + "enum" : [ + "Basic", + "Premium", + "PremiumPlus", + "None" + ] + }, + "url" : { + "type" : "string", + "description" : "The URL specified in the User's profile." + }, + "username" : { + "$ref" : "#/components/schemas/UserName" + }, + "verified" : { + "type" : "boolean", + "description" : "Indicate if this User is a verified X User." + }, + "verified_type" : { + "type" : "string", + "description" : "The X Blue verified type of the user, eg: blue, government, business or none.", + "enum" : [ + "blue", + "government", + "business", + "none" + ] + }, + "withheld" : { + "$ref" : "#/components/schemas/UserWithheld" + } + }, + "example" : { + "created_at" : "2013-12-14T04:35:55Z", + "id" : "2244994945", + "name" : "X Dev", + "protected" : false, + "username" : "TwitterDev" + } + }, + "UserComplianceData" : { + "description" : "User compliance data.", + "oneOf" : [ + { + "$ref" : "#/components/schemas/UserProtectComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserUnprotectComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserDeleteComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserUndeleteComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserSuspendComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserUnsuspendComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserWithheldComplianceSchema" + }, + { + "$ref" : "#/components/schemas/UserScrubGeoSchema" + }, + { + "$ref" : "#/components/schemas/UserProfileModificationComplianceSchema" + } + ] + }, + "UserComplianceSchema" : { + "type" : "object", + "required" : [ + "user", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "user" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/UserId" + } + } + } + } + }, + "UserComplianceStreamResponse" : { + "description" : "User compliance stream events.", + "oneOf" : [ + { + "type" : "object", + "description" : "User compliance event.", + "required" : [ + "data" + ], + "properties" : { + "data" : { + "$ref" : "#/components/schemas/UserComplianceData" + } + } + }, + { + "type" : "object", + "required" : [ + "errors" + ], + "properties" : { + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + ] + }, + "UserDeleteComplianceSchema" : { + "type" : "object", + "required" : [ + "user_delete" + ], + "properties" : { + "user_delete" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserId" : { + "type" : "string", + "description" : "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.", + "pattern" : "^[0-9]{1,19}$", + "example" : "2244994945" + }, + "UserIdMatchesAuthenticatedUser" : { + "type" : "string", + "description" : "Unique identifier of this User. The value must be the same as the authenticated user.", + "example" : "2244994945" + }, + "UserName" : { + "type" : "string", + "description" : "The X handle (screen name) of this user.", + "pattern" : "^[A-Za-z0-9_]{1,15}$" + }, + "UserProfileModificationComplianceSchema" : { + "type" : "object", + "required" : [ + "user_profile_modification" + ], + "properties" : { + "user_profile_modification" : { + "$ref" : "#/components/schemas/UserProfileModificationObjectSchema" + } + } + }, + "UserProfileModificationObjectSchema" : { + "type" : "object", + "required" : [ + "user", + "profile_field", + "new_value", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "new_value" : { + "type" : "string" + }, + "profile_field" : { + "type" : "string" + }, + "user" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/UserId" + } + } + } + } + }, + "UserProtectComplianceSchema" : { + "type" : "object", + "required" : [ + "user_protect" + ], + "properties" : { + "user_protect" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserScrubGeoObjectSchema" : { + "type" : "object", + "required" : [ + "user", + "up_to_tweet_id", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "up_to_tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "user" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/UserId" + } + } + } + } + }, + "UserScrubGeoSchema" : { + "type" : "object", + "required" : [ + "scrub_geo" + ], + "properties" : { + "scrub_geo" : { + "$ref" : "#/components/schemas/UserScrubGeoObjectSchema" + } + } + }, + "UserSearchQueryVnext" : { + "type" : "string", + "description" : "The the search string by which to query for users.", + "pattern" : "^[A-Za-z0-9_' ]{1,50}$" + }, + "UserSuspendComplianceSchema" : { + "type" : "object", + "required" : [ + "user_suspend" + ], + "properties" : { + "user_suspend" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserTakedownComplianceSchema" : { + "type" : "object", + "required" : [ + "user", + "withheld_in_countries", + "event_at" + ], + "properties" : { + "event_at" : { + "type" : "string", + "description" : "Event time.", + "format" : "date-time", + "example" : "2021-07-06T18:40:40.000Z" + }, + "user" : { + "type" : "object", + "required" : [ + "id" + ], + "properties" : { + "id" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "withheld_in_countries" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/CountryCode" + } + } + } + }, + "UserUndeleteComplianceSchema" : { + "type" : "object", + "required" : [ + "user_undelete" + ], + "properties" : { + "user_undelete" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserUnprotectComplianceSchema" : { + "type" : "object", + "required" : [ + "user_unprotect" + ], + "properties" : { + "user_unprotect" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserUnsuspendComplianceSchema" : { + "type" : "object", + "required" : [ + "user_unsuspend" + ], + "properties" : { + "user_unsuspend" : { + "$ref" : "#/components/schemas/UserComplianceSchema" + } + } + }, + "UserWithheld" : { + "type" : "object", + "description" : "Indicates withholding details for [withheld content](https://help.twitter.com/en/rules-and-policies/tweet-withheld-by-country).", + "required" : [ + "country_codes" + ], + "properties" : { + "country_codes" : { + "type" : "array", + "description" : "Provides a list of countries where this content is not available.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "$ref" : "#/components/schemas/CountryCode" + } + }, + "scope" : { + "type" : "string", + "description" : "Indicates that the content being withheld is a `user`.", + "enum" : [ + "user" + ] + } + } + }, + "UserWithheldComplianceSchema" : { + "type" : "object", + "required" : [ + "user_withheld" + ], + "properties" : { + "user_withheld" : { + "$ref" : "#/components/schemas/UserTakedownComplianceSchema" + } + } + }, + "UsersDMBlockCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "blocked" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersDMUnBlockCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "blocked" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersFollowingCreateRequest" : { + "type" : "object", + "required" : [ + "target_user_id" + ], + "properties" : { + "target_user_id" : { + "$ref" : "#/components/schemas/UserId" + } + } + }, + "UsersFollowingCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "following" : { + "type" : "boolean" + }, + "pending_follow" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersFollowingDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "following" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersLikesCreateRequest" : { + "type" : "object", + "required" : [ + "tweet_id" + ], + "properties" : { + "tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + } + } + }, + "UsersLikesCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "liked" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersLikesDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "liked" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersRetweetsCreateRequest" : { + "type" : "object", + "required" : [ + "tweet_id" + ], + "properties" : { + "tweet_id" : { + "$ref" : "#/components/schemas/TweetId" + } + }, + "additionalProperties" : false + }, + "UsersRetweetsCreateResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TweetId" + }, + "retweeted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "UsersRetweetsDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "retweeted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "Variant" : { + "type" : "object", + "properties" : { + "bit_rate" : { + "type" : "integer", + "description" : "The bit rate of the media." + }, + "content_type" : { + "type" : "string", + "description" : "The content type of the media." + }, + "url" : { + "type" : "string", + "description" : "The url to the media.", + "format" : "uri" + } + } + }, + "Variants" : { + "type" : "array", + "description" : "An array of all available variants of the media.", + "items" : { + "$ref" : "#/components/schemas/Variant" + } + }, + "Video" : { + "allOf" : [ + { + "$ref" : "#/components/schemas/Media" + }, + { + "type" : "object", + "properties" : { + "duration_ms" : { + "type" : "integer" + }, + "non_public_metrics" : { + "type" : "object", + "description" : "Nonpublic engagement metrics for the Media at the time of the request.", + "properties" : { + "playback_0_count" : { + "type" : "integer", + "description" : "Number of users who made it through 0% of the video.", + "format" : "int32" + }, + "playback_100_count" : { + "type" : "integer", + "description" : "Number of users who made it through 100% of the video.", + "format" : "int32" + }, + "playback_25_count" : { + "type" : "integer", + "description" : "Number of users who made it through 25% of the video.", + "format" : "int32" + }, + "playback_50_count" : { + "type" : "integer", + "description" : "Number of users who made it through 50% of the video.", + "format" : "int32" + }, + "playback_75_count" : { + "type" : "integer", + "description" : "Number of users who made it through 75% of the video.", + "format" : "int32" + } + } + }, + "organic_metrics" : { + "type" : "object", + "description" : "Organic nonpublic engagement metrics for the Media at the time of the request.", + "properties" : { + "playback_0_count" : { + "type" : "integer", + "description" : "Number of users who made it through 0% of the video.", + "format" : "int32" + }, + "playback_100_count" : { + "type" : "integer", + "description" : "Number of users who made it through 100% of the video.", + "format" : "int32" + }, + "playback_25_count" : { + "type" : "integer", + "description" : "Number of users who made it through 25% of the video.", + "format" : "int32" + }, + "playback_50_count" : { + "type" : "integer", + "description" : "Number of users who made it through 50% of the video.", + "format" : "int32" + }, + "playback_75_count" : { + "type" : "integer", + "description" : "Number of users who made it through 75% of the video.", + "format" : "int32" + }, + "view_count" : { + "type" : "integer", + "description" : "Number of times this video has been viewed.", + "format" : "int32" + } + } + }, + "preview_image_url" : { + "type" : "string", + "format" : "uri" + }, + "promoted_metrics" : { + "type" : "object", + "description" : "Promoted nonpublic engagement metrics for the Media at the time of the request.", + "properties" : { + "playback_0_count" : { + "type" : "integer", + "description" : "Number of users who made it through 0% of the video.", + "format" : "int32" + }, + "playback_100_count" : { + "type" : "integer", + "description" : "Number of users who made it through 100% of the video.", + "format" : "int32" + }, + "playback_25_count" : { + "type" : "integer", + "description" : "Number of users who made it through 25% of the video.", + "format" : "int32" + }, + "playback_50_count" : { + "type" : "integer", + "description" : "Number of users who made it through 50% of the video.", + "format" : "int32" + }, + "playback_75_count" : { + "type" : "integer", + "description" : "Number of users who made it through 75% of the video.", + "format" : "int32" + }, + "view_count" : { + "type" : "integer", + "description" : "Number of times this video has been viewed.", + "format" : "int32" + } + } + }, + "public_metrics" : { + "type" : "object", + "description" : "Engagement metrics for the Media at the time of the request.", + "properties" : { + "view_count" : { + "type" : "integer", + "description" : "Number of times this video has been viewed.", + "format" : "int32" + } + } + }, + "variants" : { + "$ref" : "#/components/schemas/Variants" + } + } + } + ] + }, + "WebhookConfig" : { + "type" : "object", + "description" : "A Webhook Configuration", + "required" : [ + "id", + "url", + "valid", + "created_at" + ], + "properties" : { + "created_at" : { + "type" : "string", + "format" : "date-time" + }, + "id" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "url" : { + "type" : "string", + "description" : "The callback URL of the webhook." + }, + "valid" : { + "type" : "boolean" + } + } + }, + "WebhookConfigCreateRequest" : { + "type" : "object", + "required" : [ + "url" + ], + "properties" : { + "url" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 200 + } + } + }, + "WebhookConfigCreateResponse" : { + "type" : "object", + "description" : "A Webhook Configuration", + "required" : [ + "id", + "url", + "valid", + "created_at" + ], + "properties" : { + "created_at" : { + "type" : "string", + "format" : "date-time" + }, + "id" : { + "$ref" : "#/components/schemas/WebhookConfigId" + }, + "url" : { + "type" : "string", + "description" : "The callback URL of the webhook." + }, + "valid" : { + "type" : "boolean" + } + } + }, + "WebhookConfigDeleteResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "deleted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + }, + "WebhookConfigId" : { + "type" : "string", + "description" : "The unique identifier of this webhook config.", + "pattern" : "^[0-9]{1,19}$", + "example" : "1146654567674912769" + }, + "WebhookConfigPutResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "object", + "properties" : { + "attempted" : { + "type" : "boolean" + } + } + }, + "errors" : { + "type" : "array", + "minItems" : 1, + "items" : { + "$ref" : "#/components/schemas/Problem" + } + } + } + } + }, + "parameters" : { + "AnalyticsFieldsParameter" : { + "name" : "analytics.fields", + "in" : "query", + "description" : "A comma separated list of Analytics fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Analytics object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "app_install_attempts", + "app_opens", + "bookmarks", + "detail_expands", + "email_tweet", + "engagements", + "follows", + "hashtag_clicks", + "id", + "impressions", + "likes", + "media_views", + "permalink_clicks", + "quote_tweets", + "replies", + "retweets", + "shares", + "timestamp", + "unfollows", + "url_clicks", + "user_profile_clicks" + ] + }, + "example" : [ + "app_install_attempts", + "app_opens", + "bookmarks", + "detail_expands", + "email_tweet", + "engagements", + "follows", + "hashtag_clicks", + "id", + "impressions", + "likes", + "media_views", + "permalink_clicks", + "quote_tweets", + "replies", + "retweets", + "shares", + "timestamp", + "unfollows", + "url_clicks", + "user_profile_clicks" + ] + }, + "explode" : false, + "style" : "form" + }, + "CommunityFieldsParameter" : { + "name" : "community.fields", + "in" : "query", + "description" : "A comma separated list of Community fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Community object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "access", + "created_at", + "description", + "id", + "join_policy", + "member_count", + "name" + ] + }, + "example" : [ + "access", + "created_at", + "description", + "id", + "join_policy", + "member_count", + "name" + ] + }, + "explode" : false, + "style" : "form" + }, + "ComplianceJobFieldsParameter" : { + "name" : "compliance_job.fields", + "in" : "query", + "description" : "A comma separated list of ComplianceJob fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a ComplianceJob object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "download_expires_at", + "download_url", + "id", + "name", + "resumable", + "status", + "type", + "upload_expires_at", + "upload_url" + ] + }, + "example" : [ + "created_at", + "download_expires_at", + "download_url", + "id", + "name", + "resumable", + "status", + "type", + "upload_expires_at", + "upload_url" + ] + }, + "explode" : false, + "style" : "form" + }, + "DmConversationFieldsParameter" : { + "name" : "dm_conversation.fields", + "in" : "query", + "description" : "A comma separated list of DmConversation fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a DmConversation object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "id" + ] + }, + "example" : [ + "id" + ] + }, + "explode" : false, + "style" : "form" + }, + "DmEventExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [DmEvent](#DmEvent) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "attachments.media_keys", + "participant_ids", + "referenced_tweets.id", + "sender_id" + ] + }, + "example" : [ + "attachments.media_keys", + "participant_ids", + "referenced_tweets.id", + "sender_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "DmEventFieldsParameter" : { + "name" : "dm_event.fields", + "in" : "query", + "description" : "A comma separated list of DmEvent fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a DmEvent object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "attachments", + "created_at", + "dm_conversation_id", + "entities", + "event_type", + "id", + "participant_ids", + "referenced_tweets", + "sender_id", + "text" + ] + }, + "example" : [ + "attachments", + "created_at", + "dm_conversation_id", + "entities", + "event_type", + "id", + "participant_ids", + "referenced_tweets", + "sender_id", + "text" + ] + }, + "explode" : false, + "style" : "form" + }, + "EngagementFieldsParameter" : { + "name" : "engagement.fields", + "in" : "query", + "description" : "A comma separated list of Engagement fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Engagement object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "errors", + "measurement" + ] + }, + "example" : [ + "errors", + "measurement" + ] + }, + "explode" : false, + "style" : "form" + }, + "LikeExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [Like](#Like) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "liked_tweet_id" + ] + }, + "example" : [ + "liked_tweet_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "LikeFieldsParameter" : { + "name" : "like.fields", + "in" : "query", + "description" : "A comma separated list of Like fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Like object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "example" : [ + "created_at", + "id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "explode" : false, + "style" : "form" + }, + "LikeWithTweetAuthorExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [LikeWithTweetAuthor](#LikeWithTweetAuthor) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "liked_tweet_author_id", + "liked_tweet_id" + ] + }, + "example" : [ + "liked_tweet_author_id", + "liked_tweet_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "LikeWithTweetAuthorFieldsParameter" : { + "name" : "like_with_tweet_author.fields", + "in" : "query", + "description" : "A comma separated list of LikeWithTweetAuthor fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a LikeWithTweetAuthor object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "id", + "liked_tweet_author_id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "example" : [ + "created_at", + "id", + "liked_tweet_author_id", + "liked_tweet_id", + "timestamp_ms" + ] + }, + "explode" : false, + "style" : "form" + }, + "ListExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [List](#List) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "owner_id" + ] + }, + "example" : [ + "owner_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "ListFieldsParameter" : { + "name" : "list.fields", + "in" : "query", + "description" : "A comma separated list of List fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a List object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "description", + "follower_count", + "id", + "member_count", + "name", + "owner_id", + "private" + ] + }, + "example" : [ + "created_at", + "description", + "follower_count", + "id", + "member_count", + "name", + "owner_id", + "private" + ] + }, + "explode" : false, + "style" : "form" + }, + "MediaAnalyticsFieldsParameter" : { + "name" : "media_analytics.fields", + "in" : "query", + "description" : "A comma separated list of MediaAnalytics fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a MediaAnalytics object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "cta_url_clicks", + "cta_watch_clicks", + "media_key", + "play_from_tap", + "playback25", + "playback50", + "playback75", + "playback_complete", + "playback_start", + "timestamp", + "video_views", + "watch_time_ms" + ] + }, + "example" : [ + "cta_url_clicks", + "cta_watch_clicks", + "media_key", + "play_from_tap", + "playback25", + "playback50", + "playback75", + "playback_complete", + "playback_start", + "timestamp", + "video_views", + "watch_time_ms" + ] + }, + "explode" : false, + "style" : "form" + }, + "MediaFieldsParameter" : { + "name" : "media.fields", + "in" : "query", + "description" : "A comma separated list of Media fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Media object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "alt_text", + "duration_ms", + "height", + "media_key", + "non_public_metrics", + "organic_metrics", + "preview_image_url", + "promoted_metrics", + "public_metrics", + "type", + "url", + "variants", + "width" + ] + }, + "example" : [ + "alt_text", + "duration_ms", + "height", + "media_key", + "non_public_metrics", + "organic_metrics", + "preview_image_url", + "promoted_metrics", + "public_metrics", + "type", + "url", + "variants", + "width" + ] + }, + "explode" : false, + "style" : "form" + }, + "NoteFieldsParameter" : { + "name" : "note.fields", + "in" : "query", + "description" : "A comma separated list of Note fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Note object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "id", + "info", + "status", + "test_result" + ] + }, + "example" : [ + "id", + "info", + "status", + "test_result" + ] + }, + "explode" : false, + "style" : "form" + }, + "PersonalizedTrendFieldsParameter" : { + "name" : "personalized_trend.fields", + "in" : "query", + "description" : "A comma separated list of PersonalizedTrend fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PersonalizedTrend object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "category", + "post_count", + "trend_name", + "trending_since" + ] + }, + "example" : [ + "category", + "post_count", + "trend_name", + "trending_since" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaceFieldsParameter" : { + "name" : "place.fields", + "in" : "query", + "description" : "A comma separated list of Place fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Place object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "contained_within", + "country", + "country_code", + "full_name", + "geo", + "id", + "name", + "place_type" + ] + }, + "example" : [ + "contained_within", + "country", + "country_code", + "full_name", + "geo", + "id", + "name", + "place_type" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaidAccountContactFieldsParameter" : { + "name" : "plaid_account_contact.fields", + "in" : "query", + "description" : "A comma separated list of PlaidAccountContact fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PlaidAccountContact object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "addresses", + "emails", + "holders", + "telephones" + ] + }, + "example" : [ + "addresses", + "emails", + "holders", + "telephones" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaidAccountFieldsParameter" : { + "name" : "plaid_account.fields", + "in" : "query", + "description" : "A comma separated list of PlaidAccount fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PlaidAccount object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "accountCategory", + "accountId", + "accountNumberDisplay", + "accountType", + "availableBalance", + "currency", + "currentBalance", + "nickname", + "productName", + "status" + ] + }, + "example" : [ + "accountCategory", + "accountId", + "accountNumberDisplay", + "accountType", + "availableBalance", + "currency", + "currentBalance", + "nickname", + "productName", + "status" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaidAccountPaymentNetworkFieldsParameter" : { + "name" : "plaid_account_payment_network.fields", + "in" : "query", + "description" : "A comma separated list of PlaidAccountPaymentNetwork fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PlaidAccountPaymentNetwork object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "bankId", + "identifier", + "transferIn", + "transferOut", + "type" + ] + }, + "example" : [ + "bankId", + "identifier", + "transferIn", + "transferOut", + "type" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaidAccountTransactionFieldsParameter" : { + "name" : "plaid_account_transaction.fields", + "in" : "query", + "description" : "A comma separated list of PlaidAccountTransaction fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PlaidAccountTransaction object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "postedTimestamp", + "status", + "transactionId", + "transactionTimestamp" + ] + }, + "example" : [ + "accountCategory", + "amount", + "debitCreditMemo", + "description", + "postedTimestamp", + "status", + "transactionId", + "transactionTimestamp" + ] + }, + "explode" : false, + "style" : "form" + }, + "PlaidCustomerFieldsParameter" : { + "name" : "plaid_customer.fields", + "in" : "query", + "description" : "A comma separated list of PlaidCustomer fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a PlaidCustomer object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "customerId" + ] + }, + "example" : [ + "customerId" + ] + }, + "explode" : false, + "style" : "form" + }, + "PollFieldsParameter" : { + "name" : "poll.fields", + "in" : "query", + "description" : "A comma separated list of Poll fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Poll object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "duration_minutes", + "end_datetime", + "id", + "options", + "voting_status" + ] + }, + "example" : [ + "duration_minutes", + "end_datetime", + "id", + "options", + "voting_status" + ] + }, + "explode" : false, + "style" : "form" + }, + "RulesCountFieldsParameter" : { + "name" : "rules_count.fields", + "in" : "query", + "description" : "A comma separated list of RulesCount fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a RulesCount object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "all_project_client_apps", + "cap_per_client_app", + "cap_per_project", + "client_app_rules_count", + "project_rules_count" + ] + }, + "example" : [ + "all_project_client_apps", + "cap_per_client_app", + "cap_per_project", + "client_app_rules_count", + "project_rules_count" + ] + }, + "explode" : false, + "style" : "form" + }, + "SearchCountFieldsParameter" : { + "name" : "search_count.fields", + "in" : "query", + "description" : "A comma separated list of SearchCount fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a SearchCount object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "end", + "start", + "tweet_count" + ] + }, + "example" : [ + "end", + "start", + "tweet_count" + ] + }, + "explode" : false, + "style" : "form" + }, + "SpaceExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [Space](#Space) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "creator_id", + "host_ids", + "invited_user_ids", + "speaker_ids", + "topic_ids" + ] + }, + "example" : [ + "creator_id", + "host_ids", + "invited_user_ids", + "speaker_ids", + "topic_ids" + ] + }, + "explode" : false, + "style" : "form" + }, + "SpaceFieldsParameter" : { + "name" : "space.fields", + "in" : "query", + "description" : "A comma separated list of Space fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Space object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "creator_id", + "ended_at", + "host_ids", + "id", + "invited_user_ids", + "is_ticketed", + "lang", + "participant_count", + "scheduled_start", + "speaker_ids", + "started_at", + "state", + "subscriber_count", + "title", + "topic_ids", + "updated_at" + ] + }, + "example" : [ + "created_at", + "creator_id", + "ended_at", + "host_ids", + "id", + "invited_user_ids", + "is_ticketed", + "lang", + "participant_count", + "scheduled_start", + "speaker_ids", + "started_at", + "state", + "subscriber_count", + "title", + "topic_ids", + "updated_at" + ] + }, + "explode" : false, + "style" : "form" + }, + "TopicFieldsParameter" : { + "name" : "topic.fields", + "in" : "query", + "description" : "A comma separated list of Topic fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Topic object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "description", + "id", + "name" + ] + }, + "example" : [ + "description", + "id", + "name" + ] + }, + "explode" : false, + "style" : "form" + }, + "TrendFieldsParameter" : { + "name" : "trend.fields", + "in" : "query", + "description" : "A comma separated list of Trend fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Trend object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "trend_name", + "tweet_count" + ] + }, + "example" : [ + "trend_name", + "tweet_count" + ] + }, + "explode" : false, + "style" : "form" + }, + "TweetExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [Tweet](#Tweet) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "article.cover_media", + "article.media_entities", + "attachments.media_keys", + "attachments.media_source_tweet", + "attachments.poll_ids", + "author_id", + "edit_history_tweet_ids", + "entities.mentions.username", + "geo.place_id", + "in_reply_to_user_id", + "entities.note.mentions.username", + "referenced_tweets.id", + "referenced_tweets.id.attachments.media_keys", + "referenced_tweets.id.author_id" + ] + }, + "example" : [ + "article.cover_media", + "article.media_entities", + "attachments.media_keys", + "attachments.media_source_tweet", + "attachments.poll_ids", + "author_id", + "edit_history_tweet_ids", + "entities.mentions.username", + "geo.place_id", + "in_reply_to_user_id", + "entities.note.mentions.username", + "referenced_tweets.id", + "referenced_tweets.id.attachments.media_keys", + "referenced_tweets.id.author_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "TweetFieldsParameter" : { + "name" : "tweet.fields", + "in" : "query", + "description" : "A comma separated list of Tweet fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Tweet object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "article", + "attachments", + "author_id", + "card_uri", + "community_id", + "context_annotations", + "conversation_id", + "created_at", + "display_text_range", + "edit_controls", + "edit_history_tweet_ids", + "entities", + "geo", + "id", + "in_reply_to_user_id", + "lang", + "media_metadata", + "non_public_metrics", + "note_tweet", + "organic_metrics", + "possibly_sensitive", + "promoted_metrics", + "public_metrics", + "referenced_tweets", + "reply_settings", + "scopes", + "source", + "text", + "withheld" + ] + }, + "example" : [ + "article", + "attachments", + "author_id", + "card_uri", + "community_id", + "context_annotations", + "conversation_id", + "created_at", + "display_text_range", + "edit_controls", + "edit_history_tweet_ids", + "entities", + "geo", + "id", + "in_reply_to_user_id", + "lang", + "media_metadata", + "non_public_metrics", + "note_tweet", + "organic_metrics", + "possibly_sensitive", + "promoted_metrics", + "public_metrics", + "referenced_tweets", + "reply_settings", + "scopes", + "source", + "text", + "withheld" + ] + }, + "explode" : false, + "style" : "form" + }, + "UsageFieldsParameter" : { + "name" : "usage.fields", + "in" : "query", + "description" : "A comma separated list of Usage fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a Usage object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "cap_reset_day", + "daily_client_app_usage", + "daily_project_usage", + "project_cap", + "project_id", + "project_usage" + ] + }, + "example" : [ + "cap_reset_day", + "daily_client_app_usage", + "daily_project_usage", + "project_cap", + "project_id", + "project_usage" + ] + }, + "explode" : false, + "style" : "form" + }, + "UserExpansionsParameter" : { + "name" : "expansions", + "in" : "query", + "description" : "A comma separated list of fields to expand.", + "schema" : { + "type" : "array", + "description" : "The list of fields you can expand for a [User](#User) object. If the field has an ID, it can be expanded into a full object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "affiliation.user_id", + "most_recent_tweet_id", + "pinned_tweet_id" + ] + }, + "example" : [ + "affiliation.user_id", + "most_recent_tweet_id", + "pinned_tweet_id" + ] + }, + "explode" : false, + "style" : "form" + }, + "UserFieldsParameter" : { + "name" : "user.fields", + "in" : "query", + "description" : "A comma separated list of User fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a User object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "affiliation", + "confirmed_email", + "connection_status", + "created_at", + "description", + "entities", + "id", + "is_identity_verified", + "location", + "most_recent_tweet_id", + "name", + "parody", + "pinned_tweet_id", + "profile_banner_url", + "profile_image_url", + "protected", + "public_metrics", + "receives_your_dm", + "subscription", + "subscription_type", + "url", + "username", + "verified", + "verified_followers_count", + "verified_type", + "withheld" + ] + }, + "example" : [ + "affiliation", + "confirmed_email", + "connection_status", + "created_at", + "description", + "entities", + "id", + "is_identity_verified", + "location", + "most_recent_tweet_id", + "name", + "parody", + "pinned_tweet_id", + "profile_banner_url", + "profile_image_url", + "protected", + "public_metrics", + "receives_your_dm", + "subscription", + "subscription_type", + "url", + "username", + "verified", + "verified_followers_count", + "verified_type", + "withheld" + ] + }, + "explode" : false, + "style" : "form" + }, + "WebhookConfigFieldsParameter" : { + "name" : "webhook_config.fields", + "in" : "query", + "description" : "A comma separated list of WebhookConfig fields to display.", + "required" : false, + "schema" : { + "type" : "array", + "description" : "The fields available for a WebhookConfig object.", + "minItems" : 1, + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ + "created_at", + "id", + "url", + "valid" + ] + }, + "example" : [ + "created_at", + "id", + "url", + "valid" + ] + }, + "explode" : false, + "style" : "form" + } } -} + } +} \ No newline at end of file diff --git a/x-api/account-activity/check-if-a-subscription-exists-for-a-given-webhook-and-user.mdx b/x-api/account-activity/check-if-a-subscription-exists-for-a-given-webhook-and-user.mdx deleted file mode 100644 index 5075d8c..0000000 --- a/x-api/account-activity/check-if-a-subscription-exists-for-a-given-webhook-and-user.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/account_activity/webhooks/{webhook_id}/subscriptions/all ---- \ No newline at end of file diff --git a/x-api/account-activity/deactivates-a-subscription-for-the-specified-webhook-and-user-id.mdx b/x-api/account-activity/deactivates-a-subscription-for-the-specified-webhook-and-user-id.mdx deleted file mode 100644 index 9a35c11..0000000 --- a/x-api/account-activity/deactivates-a-subscription-for-the-specified-webhook-and-user-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all ---- \ No newline at end of file diff --git a/x-api/account-activity/get-a-count-of-subscriptions-that-are-currently-active-on-your-account.mdx b/x-api/account-activity/get-a-count-of-subscriptions-that-are-currently-active-on-your-account.mdx deleted file mode 100644 index a4969e5..0000000 --- a/x-api/account-activity/get-a-count-of-subscriptions-that-are-currently-active-on-your-account.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/account_activity/subscriptions/count ---- \ No newline at end of file diff --git a/x-api/account-activity/get-a-list-of-the-current-all-activity-type-subscriptions-for-the-specified-webhook.mdx b/x-api/account-activity/get-a-list-of-the-current-all-activity-type-subscriptions-for-the-specified-webhook.mdx deleted file mode 100644 index de6879c..0000000 --- a/x-api/account-activity/get-a-list-of-the-current-all-activity-type-subscriptions-for-the-specified-webhook.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/account_activity/webhooks/{webhook_id}/subscriptions/all/list ---- \ No newline at end of file diff --git a/x-api/account-activity/request-activity-replay.mdx b/x-api/account-activity/request-activity-replay.mdx deleted file mode 100644 index 5ea81d6..0000000 --- a/x-api/account-activity/request-activity-replay.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all ---- \ No newline at end of file diff --git a/x-api/account-activity/subscribes-the-provided-application-to-all-events-for-the-provided-user-context-for-all-message-types.mdx b/x-api/account-activity/subscribes-the-provided-application-to-all-events-for-the-provided-user-context-for-all-message-types.mdx deleted file mode 100644 index b9c8294..0000000 --- a/x-api/account-activity/subscribes-the-provided-application-to-all-events-for-the-provided-user-context-for-all-message-types.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/account_activity/webhooks/{webhook_id}/subscriptions/all ---- \ No newline at end of file diff --git a/x-api/bookmarks/add-post-to-bookmarks.mdx b/x-api/bookmarks/add-post-to-bookmarks.mdx deleted file mode 100644 index 7474d20..0000000 --- a/x-api/bookmarks/add-post-to-bookmarks.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/users/{id}/bookmarks ---- \ No newline at end of file diff --git a/x-api/bookmarks/bookmark-folder-posts-by-user-and-folder-id.mdx b/x-api/bookmarks/bookmark-folder-posts-by-user-and-folder-id.mdx deleted file mode 100644 index 98c7e3b..0000000 --- a/x-api/bookmarks/bookmark-folder-posts-by-user-and-folder-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/bookmarks/folders/{folder_id} ---- \ No newline at end of file diff --git a/x-api/bookmarks/bookmark-folders-by-user.mdx b/x-api/bookmarks/bookmark-folders-by-user.mdx deleted file mode 100644 index dfdfbee..0000000 --- a/x-api/bookmarks/bookmark-folders-by-user.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/bookmarks/folders ---- \ No newline at end of file diff --git a/x-api/bookmarks/bookmarks-by-user.mdx b/x-api/bookmarks/bookmarks-by-user.mdx deleted file mode 100644 index fc38942..0000000 --- a/x-api/bookmarks/bookmarks-by-user.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/bookmarks ---- \ No newline at end of file diff --git a/x-api/bookmarks/remove-a-bookmarked-post.mdx b/x-api/bookmarks/remove-a-bookmarked-post.mdx deleted file mode 100644 index 78d0e40..0000000 --- a/x-api/bookmarks/remove-a-bookmarked-post.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/users/{id}/bookmarks/{tweet_id} ---- \ No newline at end of file diff --git a/x-api/communities/communities-lookup-by-community-id.mdx b/x-api/communities/communities-lookup-by-community-id.mdx deleted file mode 100644 index 2670fff..0000000 --- a/x-api/communities/communities-lookup-by-community-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/communities/{id} ---- \ No newline at end of file diff --git a/x-api/compliance/get-compliance-job.mdx b/x-api/compliance/get-compliance-job.mdx deleted file mode 100644 index 57cc5c3..0000000 --- a/x-api/compliance/get-compliance-job.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/compliance/jobs/{id} ---- \ No newline at end of file diff --git a/x-api/compliance/likes-compliance-stream.mdx b/x-api/compliance/likes-compliance-stream.mdx deleted file mode 100644 index ab366b9..0000000 --- a/x-api/compliance/likes-compliance-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/likes/compliance/stream ---- \ No newline at end of file diff --git a/x-api/compliance/list-compliance-jobs.mdx b/x-api/compliance/list-compliance-jobs.mdx deleted file mode 100644 index 95c296b..0000000 --- a/x-api/compliance/list-compliance-jobs.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/compliance/jobs ---- \ No newline at end of file diff --git a/x-api/compliance/posts-compliance-stream.mdx b/x-api/compliance/posts-compliance-stream.mdx deleted file mode 100644 index dc834d1..0000000 --- a/x-api/compliance/posts-compliance-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/compliance/stream ---- \ No newline at end of file diff --git a/x-api/compliance/users-compliance-stream.mdx b/x-api/compliance/users-compliance-stream.mdx deleted file mode 100644 index a789375..0000000 --- a/x-api/compliance/users-compliance-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/compliance/stream ---- \ No newline at end of file diff --git a/x-api/connection/force-kills-all-streaming-connections-of-the-authenticated-application.mdx b/x-api/connection/force-kills-all-streaming-connections-of-the-authenticated-application.mdx deleted file mode 100644 index 6f44993..0000000 --- a/x-api/connection/force-kills-all-streaming-connections-of-the-authenticated-application.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/connections/all ---- \ No newline at end of file diff --git a/x-api/likes/likes-firehose-stream.mdx b/x-api/likes/likes-firehose-stream.mdx deleted file mode 100644 index 396ea3b..0000000 --- a/x-api/likes/likes-firehose-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/likes/firehose/stream ---- \ No newline at end of file diff --git a/x-api/likes/likes-sample-10-stream.mdx b/x-api/likes/likes-sample-10-stream.mdx deleted file mode 100644 index f073bb2..0000000 --- a/x-api/likes/likes-sample-10-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/likes/sample10/stream ---- \ No newline at end of file diff --git a/x-api/lists/add-a-list-member.mdx b/x-api/lists/add-a-list-member.mdx deleted file mode 100644 index f15a298..0000000 --- a/x-api/lists/add-a-list-member.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/lists/{id}/members ---- \ No newline at end of file diff --git a/x-api/lists/follow-a-list.mdx b/x-api/lists/follow-a-list.mdx deleted file mode 100644 index e1220a1..0000000 --- a/x-api/lists/follow-a-list.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/users/{id}/followed_lists ---- \ No newline at end of file diff --git a/x-api/lists/get-a-users-list-memberships.mdx b/x-api/lists/get-a-users-list-memberships.mdx deleted file mode 100644 index 1935f6b..0000000 --- a/x-api/lists/get-a-users-list-memberships.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/list_memberships ---- \ No newline at end of file diff --git a/x-api/lists/get-a-users-owned-lists.mdx b/x-api/lists/get-a-users-owned-lists.mdx deleted file mode 100644 index b3f4c75..0000000 --- a/x-api/lists/get-a-users-owned-lists.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/owned_lists ---- \ No newline at end of file diff --git a/x-api/lists/get-a-users-pinned-lists.mdx b/x-api/lists/get-a-users-pinned-lists.mdx deleted file mode 100644 index 1d70e95..0000000 --- a/x-api/lists/get-a-users-pinned-lists.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/pinned_lists ---- \ No newline at end of file diff --git a/x-api/lists/get-users-followed-lists.mdx b/x-api/lists/get-users-followed-lists.mdx deleted file mode 100644 index 98d9c4a..0000000 --- a/x-api/lists/get-users-followed-lists.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/followed_lists ---- \ No newline at end of file diff --git a/x-api/lists/list-lookup-by-list-id.mdx b/x-api/lists/list-lookup-by-list-id.mdx deleted file mode 100644 index 9680010..0000000 --- a/x-api/lists/list-lookup-by-list-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/lists/{id} ---- \ No newline at end of file diff --git a/x-api/lists/pin-a-list.mdx b/x-api/lists/pin-a-list.mdx deleted file mode 100644 index 06b0530..0000000 --- a/x-api/lists/pin-a-list.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/users/{id}/pinned_lists ---- \ No newline at end of file diff --git a/x-api/lists/remove-a-list-member.mdx b/x-api/lists/remove-a-list-member.mdx deleted file mode 100644 index 6fb0112..0000000 --- a/x-api/lists/remove-a-list-member.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/lists/{id}/members/{user_id} ---- \ No newline at end of file diff --git a/x-api/lists/unfollow-a-list.mdx b/x-api/lists/unfollow-a-list.mdx deleted file mode 100644 index f9a9dd5..0000000 --- a/x-api/lists/unfollow-a-list.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/users/{id}/followed_lists/{list_id} ---- \ No newline at end of file diff --git a/x-api/lists/unpin-a-list.mdx b/x-api/lists/unpin-a-list.mdx deleted file mode 100644 index fc06898..0000000 --- a/x-api/lists/unpin-a-list.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/users/{id}/pinned_lists/{list_id} ---- \ No newline at end of file diff --git a/x-api/media/image-or-subtitle-media-upload.mdx b/x-api/media/image-or-subtitle-media-upload.mdx deleted file mode 100644 index e6aa3e6..0000000 --- a/x-api/media/image-or-subtitle-media-upload.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/media/upload ---- \ No newline at end of file diff --git a/x-api/media/media-lookup-by-media-key-1.mdx b/x-api/media/media-lookup-by-media-key-1.mdx deleted file mode 100644 index 416c1dc..0000000 --- a/x-api/media/media-lookup-by-media-key-1.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/media/{media_key} ---- \ No newline at end of file diff --git a/x-api/media/media-lookup-by-media-key.mdx b/x-api/media/media-lookup-by-media-key.mdx deleted file mode 100644 index 0e8b121..0000000 --- a/x-api/media/media-lookup-by-media-key.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/media ---- \ No newline at end of file diff --git a/x-api/media/media-upload-append.mdx b/x-api/media/media-upload-append.mdx deleted file mode 100644 index 42dcb11..0000000 --- a/x-api/media/media-upload-append.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/media/upload/{id}/append ---- \ No newline at end of file diff --git a/x-api/media/media-upload-finalize.mdx b/x-api/media/media-upload-finalize.mdx deleted file mode 100644 index 4f9c0e4..0000000 --- a/x-api/media/media-upload-finalize.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/media/upload/{id}/finalize ---- \ No newline at end of file diff --git a/x-api/media/media-upload-initialize.mdx b/x-api/media/media-upload-initialize.mdx deleted file mode 100644 index 150143a..0000000 --- a/x-api/media/media-upload-initialize.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/media/upload/initialize ---- \ No newline at end of file diff --git a/x-api/media/media-upload-status.mdx b/x-api/media/media-upload-status.mdx deleted file mode 100644 index be28f5a..0000000 --- a/x-api/media/media-upload-status.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/media/upload ---- \ No newline at end of file diff --git a/x-api/media/metadata-create.mdx b/x-api/media/metadata-create.mdx deleted file mode 100644 index f8b4bdc..0000000 --- a/x-api/media/metadata-create.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/media/metadata ---- \ No newline at end of file diff --git a/x-api/media/subtitle-create.mdx b/x-api/media/subtitle-create.mdx deleted file mode 100644 index dbb9f3f..0000000 --- a/x-api/media/subtitle-create.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/media/subtitles ---- \ No newline at end of file diff --git a/x-api/media/subtitle-delete.mdx b/x-api/media/subtitle-delete.mdx deleted file mode 100644 index 4a61666..0000000 --- a/x-api/media/subtitle-delete.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/media/subtitles ---- \ No newline at end of file diff --git a/x-api/general/get-openapi-spec.mdx b/x-api/openapi/get-openapi-spec.mdx similarity index 100% rename from x-api/general/get-openapi-spec.mdx rename to x-api/openapi/get-openapi-spec.mdx diff --git a/x-api/openapi/returns-the-openapi-specification-document.mdx b/x-api/openapi/returns-the-openapi-specification-document.mdx deleted file mode 100644 index 4396504..0000000 --- a/x-api/openapi/returns-the-openapi-specification-document.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/openapi.json ---- \ No newline at end of file diff --git a/x-api/posts/adddelete-rules.mdx b/x-api/posts/adddelete-rules.mdx deleted file mode 100644 index e69e135..0000000 --- a/x-api/posts/adddelete-rules.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/tweets/search/stream/rules ---- \ No newline at end of file diff --git a/x-api/posts/analytics-of-posts.mdx b/x-api/posts/analytics-of-posts.mdx deleted file mode 100644 index 961c610..0000000 --- a/x-api/posts/analytics-of-posts.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/analytics ---- \ No newline at end of file diff --git a/x-api/posts/english-language-firehose-stream.mdx b/x-api/posts/english-language-firehose-stream.mdx deleted file mode 100644 index 05f99f6..0000000 --- a/x-api/posts/english-language-firehose-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/firehose/stream/lang/en ---- \ No newline at end of file diff --git a/x-api/posts/filtered-stream.mdx b/x-api/posts/filtered-stream.mdx deleted file mode 100644 index 67ae7d5..0000000 --- a/x-api/posts/filtered-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/search/stream ---- \ No newline at end of file diff --git a/x-api/posts/firehose-stream.mdx b/x-api/posts/firehose-stream.mdx deleted file mode 100644 index 0176b63..0000000 --- a/x-api/posts/firehose-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/firehose/stream ---- \ No newline at end of file diff --git a/x-api/posts/full-archive-search-counts.mdx b/x-api/posts/full-archive-search-counts.mdx deleted file mode 100644 index 42cd08f..0000000 --- a/x-api/posts/full-archive-search-counts.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/counts/all ---- \ No newline at end of file diff --git a/x-api/posts/full-archive-search.mdx b/x-api/posts/full-archive-search.mdx deleted file mode 100644 index 5b3db39..0000000 --- a/x-api/posts/full-archive-search.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/search/all ---- \ No newline at end of file diff --git a/x-api/posts/get-engagement-analytics.mdx b/x-api/posts/get-engagement-analytics.mdx deleted file mode 100644 index 961c610..0000000 --- a/x-api/posts/get-engagement-analytics.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/analytics ---- \ No newline at end of file diff --git a/x-api/posts/get-historical-metrics-for-posts.mdx b/x-api/posts/get-historical-metrics-for-posts.mdx deleted file mode 100644 index 7cc69f9..0000000 --- a/x-api/posts/get-historical-metrics-for-posts.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/insights/historical ---- \ No newline at end of file diff --git a/x-api/posts/get-last-28hr-metrics-for-posts.mdx b/x-api/posts/get-last-28hr-metrics-for-posts.mdx deleted file mode 100644 index a623f27..0000000 --- a/x-api/posts/get-last-28hr-metrics-for-posts.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/insights/28hr ---- \ No newline at end of file diff --git a/x-api/posts/hide-replies.mdx b/x-api/posts/hide-replies.mdx deleted file mode 100644 index bcb0c86..0000000 --- a/x-api/posts/hide-replies.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: put /2/tweets/{tweet_id}/hidden ---- \ No newline at end of file diff --git a/x-api/posts/japanese-language-firehose-stream.mdx b/x-api/posts/japanese-language-firehose-stream.mdx deleted file mode 100644 index 2611391..0000000 --- a/x-api/posts/japanese-language-firehose-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/firehose/stream/lang/ja ---- \ No newline at end of file diff --git a/x-api/posts/korean-language-firehose-stream.mdx b/x-api/posts/korean-language-firehose-stream.mdx deleted file mode 100644 index 53b7799..0000000 --- a/x-api/posts/korean-language-firehose-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/firehose/stream/lang/ko ---- \ No newline at end of file diff --git a/x-api/posts/list-posts-timeline-by-list-id.mdx b/x-api/posts/list-posts-timeline-by-list-id.mdx deleted file mode 100644 index bca06c2..0000000 --- a/x-api/posts/list-posts-timeline-by-list-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/lists/{id}/tweets ---- \ No newline at end of file diff --git a/x-api/posts/portuguese-language-firehose-stream.mdx b/x-api/posts/portuguese-language-firehose-stream.mdx deleted file mode 100644 index f1da8cd..0000000 --- a/x-api/posts/portuguese-language-firehose-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/firehose/stream/lang/pt ---- \ No newline at end of file diff --git a/x-api/posts/post-delete-by-post-id.mdx b/x-api/posts/post-delete-by-post-id.mdx deleted file mode 100644 index 0adba30..0000000 --- a/x-api/posts/post-delete-by-post-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/tweets/{id} ---- \ No newline at end of file diff --git a/x-api/posts/post-lookup-by-post-id.mdx b/x-api/posts/post-lookup-by-post-id.mdx deleted file mode 100644 index 00c223a..0000000 --- a/x-api/posts/post-lookup-by-post-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/{id} ---- \ No newline at end of file diff --git a/x-api/posts/post-lookup-by-post-ids.mdx b/x-api/posts/post-lookup-by-post-ids.mdx deleted file mode 100644 index 8743691..0000000 --- a/x-api/posts/post-lookup-by-post-ids.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets ---- \ No newline at end of file diff --git a/x-api/posts/recent-search-counts.mdx b/x-api/posts/recent-search-counts.mdx deleted file mode 100644 index 464df2b..0000000 --- a/x-api/posts/recent-search-counts.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/counts/recent ---- \ No newline at end of file diff --git a/x-api/posts/recent-search.mdx b/x-api/posts/recent-search.mdx deleted file mode 100644 index 8559b17..0000000 --- a/x-api/posts/recent-search.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/search/recent ---- \ No newline at end of file diff --git a/x-api/posts/retrieve-posts-that-quote-a-post.mdx b/x-api/posts/retrieve-posts-that-quote-a-post.mdx deleted file mode 100644 index 57df7fd..0000000 --- a/x-api/posts/retrieve-posts-that-quote-a-post.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/{id}/quote_tweets ---- \ No newline at end of file diff --git a/x-api/posts/retrieve-posts-that-repost-a-post.mdx b/x-api/posts/retrieve-posts-that-repost-a-post.mdx deleted file mode 100644 index 71026dc..0000000 --- a/x-api/posts/retrieve-posts-that-repost-a-post.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/{id}/retweets ---- \ No newline at end of file diff --git a/x-api/posts/returns-post-objects-liked-by-the-provided-user-id.mdx b/x-api/posts/returns-post-objects-liked-by-the-provided-user-id.mdx deleted file mode 100644 index a56f559..0000000 --- a/x-api/posts/returns-post-objects-liked-by-the-provided-user-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/liked_tweets ---- \ No newline at end of file diff --git a/x-api/posts/rules-count.mdx b/x-api/posts/rules-count.mdx deleted file mode 100644 index e4708bd..0000000 --- a/x-api/posts/rules-count.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/search/stream/rules/counts ---- \ No newline at end of file diff --git a/x-api/posts/rules-lookup.mdx b/x-api/posts/rules-lookup.mdx deleted file mode 100644 index 33f6bcc..0000000 --- a/x-api/posts/rules-lookup.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/search/stream/rules ---- \ No newline at end of file diff --git a/x-api/posts/sample-10-stream.mdx b/x-api/posts/sample-10-stream.mdx deleted file mode 100644 index eb757f9..0000000 --- a/x-api/posts/sample-10-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/sample10/stream ---- \ No newline at end of file diff --git a/x-api/posts/sample-stream.mdx b/x-api/posts/sample-stream.mdx deleted file mode 100644 index 140cea9..0000000 --- a/x-api/posts/sample-stream.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/sample/stream ---- \ No newline at end of file diff --git a/x-api/posts/user-home-timeline-by-user-id.mdx b/x-api/posts/user-home-timeline-by-user-id.mdx deleted file mode 100644 index 1705bcb..0000000 --- a/x-api/posts/user-home-timeline-by-user-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/timelines/reverse_chronological ---- \ No newline at end of file diff --git a/x-api/posts/user-mention-timeline-by-user-id.mdx b/x-api/posts/user-mention-timeline-by-user-id.mdx deleted file mode 100644 index 4d08989..0000000 --- a/x-api/posts/user-mention-timeline-by-user-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/mentions ---- \ No newline at end of file diff --git a/x-api/posts/user-posts-timeline-by-user-id.mdx b/x-api/posts/user-posts-timeline-by-user-id.mdx deleted file mode 100644 index 7b9b6cf..0000000 --- a/x-api/posts/user-posts-timeline-by-user-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/tweets ---- \ No newline at end of file diff --git a/x-api/spaces/retrieve-posts-from-a-space.mdx b/x-api/spaces/retrieve-posts-from-a-space.mdx deleted file mode 100644 index 7efff44..0000000 --- a/x-api/spaces/retrieve-posts-from-a-space.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/spaces/{id}/tweets ---- \ No newline at end of file diff --git a/x-api/spaces/retrieve-the-list-of-users-who-purchased-a-ticket-to-the-given-space.mdx b/x-api/spaces/retrieve-the-list-of-users-who-purchased-a-ticket-to-the-given-space.mdx deleted file mode 100644 index 56e2253..0000000 --- a/x-api/spaces/retrieve-the-list-of-users-who-purchased-a-ticket-to-the-given-space.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/spaces/{id}/buyers ---- \ No newline at end of file diff --git a/x-api/spaces/search-for-spaces.mdx b/x-api/spaces/search-for-spaces.mdx deleted file mode 100644 index eb3ee21..0000000 --- a/x-api/spaces/search-for-spaces.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/spaces/search ---- \ No newline at end of file diff --git a/x-api/spaces/space-lookup-by-space-id.mdx b/x-api/spaces/space-lookup-by-space-id.mdx deleted file mode 100644 index 6c70950..0000000 --- a/x-api/spaces/space-lookup-by-space-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/spaces/{id} ---- \ No newline at end of file diff --git a/x-api/spaces/space-lookup-by-their-creators.mdx b/x-api/spaces/space-lookup-by-their-creators.mdx deleted file mode 100644 index dce7f72..0000000 --- a/x-api/spaces/space-lookup-by-their-creators.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/spaces/by/creator_ids ---- \ No newline at end of file diff --git a/x-api/spaces/space-lookup-up-space-ids.mdx b/x-api/spaces/space-lookup-up-space-ids.mdx deleted file mode 100644 index 309f357..0000000 --- a/x-api/spaces/space-lookup-up-space-ids.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/spaces ---- \ No newline at end of file diff --git a/x-api/trends/trends.mdx b/x-api/trends/trends.mdx deleted file mode 100644 index c591cdf..0000000 --- a/x-api/trends/trends.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/trends/by/woeid/{woeid} ---- \ No newline at end of file diff --git a/x-api/usage/post-usage.mdx b/x-api/usage/post-usage.mdx deleted file mode 100644 index fe62411..0000000 --- a/x-api/usage/post-usage.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/usage/tweets ---- \ No newline at end of file diff --git a/x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-blocked-by-the-authenticated-request-user.mdx b/x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-blocked-by-the-authenticated-request-user.mdx deleted file mode 100644 index 6b9e9b8..0000000 --- a/x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-blocked-by-the-authenticated-request-user.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/users/{id}/dm/block ---- \ No newline at end of file diff --git a/x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-unblocked-by-the-authenticated-request-user.mdx b/x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-unblocked-by-the-authenticated-request-user.mdx deleted file mode 100644 index 93fa390..0000000 --- a/x-api/users/causes-dms-tofrom-the-target-user-in-the-path-to-be-unblocked-by-the-authenticated-request-user.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/users/{id}/dm/unblock ---- \ No newline at end of file diff --git a/x-api/users/followers-by-user-id.mdx b/x-api/users/followers-by-user-id.mdx deleted file mode 100644 index adb2d22..0000000 --- a/x-api/users/followers-by-user-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/followers ---- \ No newline at end of file diff --git a/x-api/users/following-by-user-id.mdx b/x-api/users/following-by-user-id.mdx deleted file mode 100644 index 2995b7a..0000000 --- a/x-api/users/following-by-user-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/following ---- \ No newline at end of file diff --git a/x-api/users/mute-user-by-user-id.mdx b/x-api/users/mute-user-by-user-id.mdx deleted file mode 100644 index 2700f5d..0000000 --- a/x-api/users/mute-user-by-user-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/users/{id}/muting ---- \ No newline at end of file diff --git a/x-api/users/returns-repost-of-user.mdx b/x-api/users/returns-repost-of-user.mdx deleted file mode 100644 index 7a00370..0000000 --- a/x-api/users/returns-repost-of-user.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/reposts_of_me ---- \ No newline at end of file diff --git a/x-api/users/returns-user-objects-that-are-blocked-by-provided-user-id.mdx b/x-api/users/returns-user-objects-that-are-blocked-by-provided-user-id.mdx deleted file mode 100644 index 8ca0ad3..0000000 --- a/x-api/users/returns-user-objects-that-are-blocked-by-provided-user-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/blocking ---- \ No newline at end of file diff --git a/x-api/users/returns-user-objects-that-are-members-of-a-list-by-the-provided-list-id.mdx b/x-api/users/returns-user-objects-that-are-members-of-a-list-by-the-provided-list-id.mdx deleted file mode 100644 index fed3c12..0000000 --- a/x-api/users/returns-user-objects-that-are-members-of-a-list-by-the-provided-list-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/lists/{id}/members ---- \ No newline at end of file diff --git a/x-api/users/returns-user-objects-that-are-muted-by-the-provided-user-id.mdx b/x-api/users/returns-user-objects-that-are-muted-by-the-provided-user-id.mdx deleted file mode 100644 index dbe6684..0000000 --- a/x-api/users/returns-user-objects-that-are-muted-by-the-provided-user-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id}/muting ---- \ No newline at end of file diff --git a/x-api/users/returns-user-objects-that-follow-a-list-by-the-provided-list-id.mdx b/x-api/users/returns-user-objects-that-follow-a-list-by-the-provided-list-id.mdx deleted file mode 100644 index d066094..0000000 --- a/x-api/users/returns-user-objects-that-follow-a-list-by-the-provided-list-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/lists/{id}/followers ---- \ No newline at end of file diff --git a/x-api/users/returns-user-objects-that-have-liked-the-provided-post-id.mdx b/x-api/users/returns-user-objects-that-have-liked-the-provided-post-id.mdx deleted file mode 100644 index 2c577cb..0000000 --- a/x-api/users/returns-user-objects-that-have-liked-the-provided-post-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/{id}/liking_users ---- \ No newline at end of file diff --git a/x-api/users/returns-user-objects-that-have-retweeted-the-provided-post-id.mdx b/x-api/users/returns-user-objects-that-have-retweeted-the-provided-post-id.mdx deleted file mode 100644 index a50f659..0000000 --- a/x-api/users/returns-user-objects-that-have-retweeted-the-provided-post-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/tweets/{id}/retweeted_by ---- \ No newline at end of file diff --git a/x-api/users/unmute-user-by-user-id.mdx b/x-api/users/unmute-user-by-user-id.mdx deleted file mode 100644 index 1dca169..0000000 --- a/x-api/users/unmute-user-by-user-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/users/{source_user_id}/muting/{target_user_id} ---- \ No newline at end of file diff --git a/x-api/users/user-lookup-by-id.mdx b/x-api/users/user-lookup-by-id.mdx deleted file mode 100644 index 6ff1b13..0000000 --- a/x-api/users/user-lookup-by-id.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/{id} ---- \ No newline at end of file diff --git a/x-api/users/user-lookup-by-ids.mdx b/x-api/users/user-lookup-by-ids.mdx deleted file mode 100644 index cbbbf5c..0000000 --- a/x-api/users/user-lookup-by-ids.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users ---- \ No newline at end of file diff --git a/x-api/users/user-lookup-by-username.mdx b/x-api/users/user-lookup-by-username.mdx deleted file mode 100644 index bcd6659..0000000 --- a/x-api/users/user-lookup-by-username.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/by/username/{username} ---- \ No newline at end of file diff --git a/x-api/users/user-lookup-by-usernames.mdx b/x-api/users/user-lookup-by-usernames.mdx deleted file mode 100644 index 13887ad..0000000 --- a/x-api/users/user-lookup-by-usernames.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/by ---- \ No newline at end of file diff --git a/x-api/users/user-lookup-me.mdx b/x-api/users/user-lookup-me.mdx deleted file mode 100644 index bad7698..0000000 --- a/x-api/users/user-lookup-me.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/me ---- \ No newline at end of file diff --git a/x-api/users/user-search.mdx b/x-api/users/user-search.mdx deleted file mode 100644 index 04ae035..0000000 --- a/x-api/users/user-search.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/users/search ---- \ No newline at end of file diff --git a/x-api/webhooks/create-webhook-config.mdx b/x-api/webhooks/create-webhook-config.mdx deleted file mode 100644 index c170a7f..0000000 --- a/x-api/webhooks/create-webhook-config.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /2/webhooks ---- \ No newline at end of file diff --git a/x-api/webhooks/delete-webhook-config.mdx b/x-api/webhooks/delete-webhook-config.mdx deleted file mode 100644 index 32abbe0..0000000 --- a/x-api/webhooks/delete-webhook-config.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: delete /2/webhooks/{webhook_id} ---- \ No newline at end of file diff --git a/x-api/webhooks/get-a-list-of-webhook-configs-associated-with-a-client-app.mdx b/x-api/webhooks/get-a-list-of-webhook-configs-associated-with-a-client-app.mdx deleted file mode 100644 index 51cec55..0000000 --- a/x-api/webhooks/get-a-list-of-webhook-configs-associated-with-a-client-app.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: get /2/webhooks ---- \ No newline at end of file diff --git a/x-api/webhooks/webhook-crc-check.mdx b/x-api/webhooks/webhook-crc-check.mdx deleted file mode 100644 index 952c5b6..0000000 --- a/x-api/webhooks/webhook-crc-check.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: put /2/webhooks/{webhook_id} ---- \ No newline at end of file From 976af69dbcbea5d94c870877374dcf0efb339e69 Mon Sep 17 00:00:00 2001 From: tcaldwell-x Date: Tue, 29 Jul 2025 20:14:45 -0700 Subject: [PATCH 34/34] Update docs.json Signed-off-by: tcaldwell-x --- docs.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs.json b/docs.json index 3aca24e..84eccb1 100644 --- a/docs.json +++ b/docs.json @@ -709,7 +709,8 @@ "x-api/community-notes/quickstart", "x-api/community-notes/search-for-posts-eligible-for-community-notes", "x-api/community-notes/search-for-community-notes-written", - "x-api/community-notes/create-a-community-note" + "x-api/community-notes/create-a-community-note", + "x-api/community-notes/delete-a-community-note" ] }, {