openapi.yaml 77 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140
  1. openapi: 3.0.1
  2. info:
  3. title: Owncast
  4. description: Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software.
  5. version: '0.0.12'
  6. contact:
  7. name: Gabe Kangas
  8. email: gabek@real-ity.com
  9. url: http://owncast.online
  10. x-logo:
  11. url: >-
  12. data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAEvmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEyOCIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjEyOCIKICAgZXhpZjpDb2xvclNwYWNlPSIxIgogICB0aWZmOkltYWdlV2lkdGg9IjEyOCIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTI4IgogICB0aWZmOlJlc29sdXRpb25Vbml0PSIyIgogICB0aWZmOlhSZXNvbHV0aW9uPSI5Ni4wIgogICB0aWZmOllSZXNvbHV0aW9uPSI5Ni4wIgogICBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIgogICBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIw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
  13. servers: []
  14. tags:
  15. - name: Admin
  16. description: Admin operations requiring authentication.
  17. - name: Chat
  18. description: Endpoints related to the chat interface.
  19. - name: Integrations
  20. description: APIs built to allow 3rd parties to interact with an Owncast server.
  21. - name: Moderation
  22. description: Chat-related actions that can take place by a moderator.
  23. components:
  24. schemas:
  25. ClientArray:
  26. type: array
  27. items:
  28. $ref: '#/components/schemas/Client'
  29. UserArray:
  30. type: array
  31. items:
  32. $ref: '#/components/schemas/User'
  33. LogEntryArray:
  34. type: array
  35. items:
  36. $ref: '#/components/schemas/LogEntry'
  37. FollowerArray:
  38. type: array
  39. items:
  40. $ref: '#/components/schemas/Follower'
  41. Client:
  42. type: object
  43. description: A single representation of a client.
  44. example:
  45. connectedAt: '2020-10-06T23:20:44.588649-07:00'
  46. messageCount: 0
  47. userAgent: >-
  48. Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36
  49. (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
  50. ipAddress: '::1'
  51. clientID: 2ba20dd34f911c198df3218ddc64c740
  52. geo:
  53. countryCode: US
  54. regionName: California
  55. timeZone: America/Los_Angeles
  56. properties:
  57. connectedAt:
  58. type: string
  59. format: date-time
  60. messageCount:
  61. description: Number of chat messages sent by user
  62. type: integer
  63. userAgent:
  64. description: The web client used to connect to this server
  65. type: string
  66. example: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
  67. ipAddress:
  68. description: The public IP address of this client
  69. type: string
  70. clientID:
  71. description: The value used to identify this client
  72. type: string
  73. geo:
  74. type: object
  75. description: Optional geographic data for the client
  76. properties:
  77. countryCode:
  78. type: string
  79. regionName:
  80. type: string
  81. timeZone:
  82. type: string
  83. user:
  84. $ref: '#/components/schemas/User'
  85. x-last-modified: 1602052347511
  86. BasicResponse:
  87. type: object
  88. properties:
  89. success:
  90. type: boolean
  91. message:
  92. type: string
  93. InstanceDetails:
  94. type: object
  95. description: User-facing details about this server.
  96. properties:
  97. name:
  98. type: string
  99. description: Displayed as the header in the instance details.
  100. summary:
  101. type: string
  102. description: This is brief summary of whom you are or what the stream is.
  103. logo:
  104. type: string
  105. description: Local file name of your logo image. We recommend a square image (150 x 150px) with ample padding around the important contents of the image, as it will be rendered as a circle.
  106. tags:
  107. type: array
  108. description: Categories of the content this instance focuses on.
  109. items:
  110. type: string
  111. socialHandles:
  112. type: array
  113. description: Links to social network urls.
  114. items:
  115. type: object
  116. properties:
  117. platform:
  118. type: string
  119. example: github
  120. url:
  121. type: string
  122. example: http://github.com/owncast/owncast
  123. extraPageContent:
  124. type: string
  125. description: Additional HTML content to render in the body of the web interface.
  126. example: '<p>This page is <strong>super</strong> cool!'
  127. version:
  128. type: string
  129. example: Owncast v0.0.3-macOS (ef3796a033b32a312ebf5b334851cbf9959e7ecb)
  130. YP:
  131. type: object
  132. description: Configuration of the instance's registration to the Owncast Directory (YP API)
  133. properties:
  134. enabled:
  135. type: boolean
  136. description: If YP support is on or off. Must be enabled to show in the directory.
  137. default: false
  138. instanceUrl:
  139. type: string
  140. description: The public URL of this owncast server, used for registration and linking with the directory. Must be publicly available.
  141. S3:
  142. type: object
  143. description: Configuration of external storage using S3-compatible providers.
  144. properties:
  145. enabled:
  146. type: boolean
  147. endpoint:
  148. type: string
  149. servingEndpoint:
  150. type: string
  151. accessKey:
  152. type: string
  153. secret:
  154. type: string
  155. bucket:
  156. type: string
  157. region:
  158. type: string
  159. acl:
  160. type: string
  161. forcePathStyle:
  162. type: boolean
  163. required:
  164. - enabled
  165. StreamQuality:
  166. type: object
  167. properties:
  168. videoPassthrough:
  169. type: boolean
  170. description: If enabled video transcoding is disabled and the video is passed along in its original format.
  171. audioPassthrough:
  172. type: boolean
  173. description: If enabled audio transcoding is disabled and the audio is passed along in its original format.
  174. videoBitrate:
  175. type: integer
  176. description: The video quality, in kbps.
  177. audioBitrate:
  178. type: integer
  179. description: The audio quality, in kbps.
  180. scaledWidth:
  181. type: integer
  182. description: The resized video width.
  183. scaledHeight:
  184. type: integer
  185. description: The resized video height.
  186. framerate:
  187. type: integer
  188. description: The target frames per second of the video.
  189. cpuUsageLevel:
  190. type: integer
  191. description: 'The amount of hardware utilization selected for this HLS variant.'
  192. TimestampedValue:
  193. type: object
  194. properties:
  195. time:
  196. type: string
  197. format: date-time
  198. value:
  199. type: integer
  200. ConfigValue:
  201. description: A wrapper object used to set values in many config endpoints.
  202. type: object
  203. properties:
  204. value:
  205. oneOf:
  206. - type: string
  207. - type: integer
  208. - type: object
  209. - type: boolean
  210. BooleanValue:
  211. description: A wrapper object used to set boolean values in many config endpoints.
  212. type: object
  213. properties:
  214. value:
  215. type: boolean
  216. example:
  217. value: true
  218. LogEntry:
  219. type: object
  220. properties:
  221. time:
  222. type: string
  223. format: date-time
  224. description: 'Timestamp for this log entry'
  225. level:
  226. type: string
  227. description: 'The level of this log entry'
  228. message:
  229. type: string
  230. description: 'The log entry contents'
  231. Webhook:
  232. type: object
  233. properties:
  234. id:
  235. type: string
  236. description: The ID of this webhook.
  237. url:
  238. type: string
  239. description: The URL that events will be sent to.
  240. events:
  241. type: array
  242. items:
  243. type: string
  244. description: The events that will be sent to this webhook.
  245. timestamp:
  246. type: string
  247. format: date-time
  248. description: When this webhook was created.
  249. lastUsed:
  250. type: string
  251. format: date-time
  252. description: When this webhook was last used.
  253. User:
  254. type: object
  255. properties:
  256. id:
  257. type: string
  258. description: User ID
  259. example: yklw5Imng
  260. displayName:
  261. type: string
  262. description: The user-facing disaplay name for this user.
  263. example: awesome-pizza
  264. displayColor:
  265. type: integer
  266. description: Color name number for client rendering. theme-user-colors-n
  267. example: 3
  268. createdAt:
  269. type: string
  270. format: date-time
  271. description: When this account was originally registered/created.
  272. previousNames:
  273. type: string
  274. description: Comma separated list of names previously used by this user.
  275. example: 'awesome-pizza,user42'
  276. scopes:
  277. type: array
  278. items:
  279. description: A specific attribute assigned to this user
  280. type: string
  281. example: 'MODERATOR'
  282. Follower:
  283. type: object
  284. required:
  285. - link
  286. - username
  287. - timestamp
  288. properties:
  289. link:
  290. type: string
  291. description: URL linking to this follower
  292. example: https://mastodon.cloud/users/gabektest
  293. name:
  294. type: string
  295. description: Optional display name for this follower
  296. example: John Smith
  297. image:
  298. type: string
  299. description: Optional image for this follower
  300. example: http://mastodon.cloud/users/gabektest/avatar.png
  301. timestamp:
  302. type: string
  303. format: date-time
  304. description: Timestamp of when the follow occurred
  305. disabledAt:
  306. type: string
  307. format: date-time
  308. description: Timestamp when the follow was removed
  309. FederatedAction:
  310. type: object
  311. properties:
  312. iri:
  313. type: string
  314. description: The unique identifier for this action.
  315. example: https://fediverse.server/jfk-3827
  316. actorIRI:
  317. type: string
  318. description: The identifier for the actor that performed this action.
  319. example: https://mastodon.cloud/users/gabektest
  320. type:
  321. type: string
  322. enum:
  323. [
  324. FEDIVERSE_ENGAGEMENT_FOLLOW,
  325. FEDIVERSE_ENGAGEMENT_LIKE,
  326. FEDIVERSE_ENGAGEMENT_REPOST,
  327. ]
  328. securitySchemes:
  329. AdminBasicAuth:
  330. type: http
  331. scheme: basic
  332. description: The username for admin basic auth is `admin` and the password is the stream key.
  333. AccessToken:
  334. type: http
  335. scheme: bearer
  336. description: 3rd party integration auth where a service user must provide an access token.
  337. UserToken:
  338. type: apiKey
  339. name: accessToken
  340. in: query
  341. description: A standard user must provide a valid access token.
  342. ModeratorUserToken:
  343. type: apiKey
  344. name: accessToken
  345. in: query
  346. description: A moderator user must provide a valid access token.
  347. responses:
  348. UsersResponse:
  349. description: A collection of users.
  350. content:
  351. application/json:
  352. schema:
  353. $ref: '#/components/schemas/UserArray'
  354. FollowersResponse:
  355. description: A collection of users.
  356. content:
  357. application/json:
  358. schema:
  359. $ref: '#/components/schemas/FollowerArray'
  360. ClientsResponse:
  361. description: Successful response of an array of clients
  362. content:
  363. application/json:
  364. schema:
  365. $ref: '#/components/schemas/ClientArray'
  366. example:
  367. - connectedAt: '2020-10-06T23:20:44.588649-07:00'
  368. messageCount: 3
  369. userAgent: >-
  370. Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36
  371. (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
  372. ipAddress: '172.217.164.110'
  373. geo:
  374. countryCode: US
  375. regionName: California
  376. timeZone: America/Los_Angeles
  377. user:
  378. id: yklw5Imng
  379. displayName: awesome-pizza
  380. displayColor: 42
  381. createdAt: '2021-07-08T20:21:25.303402404-07:00'
  382. previousNames: 'awesome-pizza,coolPerson23'
  383. LogsResponse:
  384. description: Response of server log entries
  385. content:
  386. application/json:
  387. schema:
  388. $ref: '#/components/schemas/LogEntryArray'
  389. examples:
  390. success:
  391. summary: Logs returned
  392. value:
  393. [
  394. {
  395. 'message': 'Owncast v0.0.0-localdev (unknown)',
  396. 'level': 'info',
  397. 'time': '2020-10-29T18:35:34.422386-07:00',
  398. },
  399. {
  400. 'message': 'Web server running on port: 8080',
  401. 'level': 'info',
  402. 'time': '2020-10-29T18:35:35.011731-07:00',
  403. },
  404. {
  405. 'message': 'RTMP server is listening for incoming stream on port: 1935',
  406. 'level': 'info',
  407. 'time': '2020-10-29T18:35:35.011823-07:00',
  408. },
  409. ]
  410. BasicResponse:
  411. description: Operation Success/Failure Response
  412. content:
  413. application/json:
  414. schema:
  415. $ref: '#/components/schemas/BasicResponse'
  416. examples:
  417. success:
  418. summary: Operation succeeded.
  419. value:
  420. {
  421. 'success': true,
  422. 'message': 'context specific success message',
  423. }
  424. failure:
  425. summary: Operation failed.
  426. value:
  427. {
  428. 'success': false,
  429. 'message': 'context specific failure message',
  430. }
  431. paths:
  432. /api/config:
  433. get:
  434. summary: Information
  435. description: The client configuration. Information useful for the user interface.
  436. tags: ['Server']
  437. responses:
  438. '200':
  439. description: ''
  440. content:
  441. application/json:
  442. schema:
  443. $ref: '#/components/schemas/InstanceDetails'
  444. /api/ping:
  445. get:
  446. summary: Mark the current viewer as active.
  447. description: For tracking viewer count, periodically hit the ping endpoint.
  448. tags: ['Server']
  449. responses:
  450. '200':
  451. description: 'Successful ping'
  452. /api/status:
  453. get:
  454. summary: Current Status
  455. description: This endpoint is used to discover when a server is broadcasting, the number of active viewers as well as other useful information for updating the user interface.
  456. tags: ['Server']
  457. responses:
  458. '200':
  459. description: ''
  460. content:
  461. application/json:
  462. schema:
  463. type: object
  464. properties:
  465. lastConnectTime:
  466. type: string
  467. nullable: true
  468. format: date-time
  469. overallMaxViewerCount:
  470. type: integer
  471. sessionMaxViewerCount:
  472. type: integer
  473. online:
  474. type: boolean
  475. viewerCount:
  476. type: integer
  477. lastDisconnectTime:
  478. type: string
  479. nullable: true
  480. format: date-time
  481. examples:
  482. online:
  483. value:
  484. lastConnectTime: '2020-10-03T21:36:22-05:00'
  485. lastDisconnectTime: null
  486. online: true
  487. overallMaxViewerCount: 420
  488. sessionMaxViewerCount: 12
  489. viewerCount: 7
  490. /api/chat/register:
  491. post:
  492. summary: Register a chat user
  493. description: Register a user that returns an access token for accessing chat.
  494. tags: ['Chat']
  495. security:
  496. - UserToken: []
  497. requestBody:
  498. required: false
  499. content:
  500. application/json:
  501. schema:
  502. type: object
  503. properties:
  504. displayName:
  505. type: string
  506. description: Optionally provide a display name you want to assign to this user when registering.
  507. responses:
  508. '200':
  509. description: ''
  510. content:
  511. application/json:
  512. schema:
  513. type: object
  514. properties:
  515. id:
  516. type: string
  517. description: The new user's id.
  518. accessToken:
  519. type: string
  520. description: The access token used for accessing chat.
  521. displayName:
  522. type: string
  523. description: The user-facing name displayed for this user.
  524. /api/chat:
  525. get:
  526. summary: Chat Messages Backlog
  527. description: Used to get chat messages prior to connecting to the websocket.
  528. tags: ['Chat']
  529. security:
  530. - UserToken: []
  531. responses:
  532. '200':
  533. description: ''
  534. content:
  535. application/json:
  536. schema:
  537. type: array
  538. items:
  539. type: object
  540. properties:
  541. user:
  542. $ref: '#/components/schemas/User'
  543. body:
  544. type: string
  545. description: Escaped HTML of the chat message content.
  546. id:
  547. type: string
  548. description: Unique ID of the chat message.
  549. visible:
  550. type: boolean
  551. description: 'Should chat message be visibly rendered.'
  552. timestamp:
  553. type: string
  554. format: date-time
  555. /api/yp:
  556. get:
  557. summary: Yellow Pages Information
  558. description: Information to be used in the Yellow Pages service, a global directory of Owncast servers.
  559. tags: ['Server']
  560. responses:
  561. '200':
  562. description: ''
  563. content:
  564. application/json:
  565. schema:
  566. type: object
  567. properties:
  568. name:
  569. type: string
  570. description:
  571. type: string
  572. logo:
  573. type: string
  574. nsfw:
  575. type: boolean
  576. tags:
  577. type: array
  578. items:
  579. type: string
  580. online:
  581. type: boolean
  582. viewerCount:
  583. type: integer
  584. overallMaxViewerCount:
  585. type: integer
  586. sessionMaxViewerCount:
  587. type: integer
  588. lastConnectTime:
  589. type: string
  590. nullable: true
  591. format: date-time
  592. /api/emoji:
  593. get:
  594. summary: Get Custom Emoji
  595. description: Get a list of custom emoji that are supported in chat.
  596. tags: ['Chat']
  597. responses:
  598. '200':
  599. description: ''
  600. content:
  601. application/json:
  602. schema:
  603. type: array
  604. items:
  605. type: object
  606. properties:
  607. name:
  608. type: string
  609. description: The name of the Emoji
  610. emoji:
  611. type: string
  612. description: The relative path to the Emoji image file
  613. examples:
  614. default:
  615. value:
  616. items:
  617. - name: nicolas_cage_party
  618. emoji: /img/emoji/nicolas_cage_party.gif
  619. - name: parrot
  620. emoji: /img/emoji/parrot.gif
  621. /api/followers:
  622. get:
  623. summary: Get the public followers of this instance
  624. responses:
  625. '200':
  626. description: Followers
  627. content:
  628. application/json:
  629. schema:
  630. type: array
  631. items:
  632. $ref: '#/components/schemas/Follower'
  633. /api/remotefollow:
  634. post:
  635. summary: Return the information needed to redirect a user to a fediverse server to perform a remote follow action.
  636. requestBody:
  637. content:
  638. application/json:
  639. schema:
  640. type: object
  641. properties:
  642. account:
  643. description: The fediverse username@server.tld account that wants to perform the remote follow action.
  644. type: string
  645. example: johnsmith@fediverse.biz
  646. responses:
  647. '200':
  648. description: Remote follow redirect details
  649. content:
  650. application/json:
  651. schema:
  652. type: object
  653. properties:
  654. redirectUrl:
  655. description: The URL the frontend should redirect to
  656. type: string
  657. example: https://fediverse.biz/authorize_interaction?uri=https://my.owncast.server/federation/user/streamer
  658. /api/chat/messagevisibility:
  659. post:
  660. summary: Update the visibility of chat messages.
  661. description: Pass an array of IDs you want to change the chat visibility of.
  662. requestBody:
  663. content:
  664. application/json:
  665. schema:
  666. type: object
  667. properties:
  668. visible:
  669. type: boolean
  670. description: Are these messages visible.
  671. idArray:
  672. type: array
  673. items:
  674. type: string
  675. description: IDs of the chat messages you wish to change the visibility of.
  676. tags: ['Moderation']
  677. security:
  678. - ModeratorUserToken: []
  679. responses:
  680. '200':
  681. $ref: '#/components/responses/BasicResponse'
  682. /api/chat/users/setenabled:
  683. post:
  684. summary: Disable (block) or re-enable a chat user.
  685. requestBody:
  686. content:
  687. application/json:
  688. schema:
  689. type: object
  690. properties:
  691. userId:
  692. type: string
  693. description: User ID of the chat user you're changing.
  694. enabled:
  695. type: boolean
  696. description: State of this user. False to block/disable.
  697. tags: ['Moderation']
  698. security:
  699. - ModeratorUserToken: []
  700. responses:
  701. '200':
  702. $ref: '#/components/responses/BasicResponse'
  703. /api/admin/status:
  704. get:
  705. summary: 'Server status and broadcaster'
  706. tags: ['Admin']
  707. security:
  708. - AdminBasicAuth: []
  709. responses:
  710. '200':
  711. description: Server status and broadcaster details
  712. content:
  713. application/json:
  714. schema:
  715. type: object
  716. properties:
  717. broadcaster:
  718. type: object
  719. properties:
  720. remoteAddr:
  721. type: string
  722. time:
  723. type: string
  724. format: date-time
  725. streamDetails:
  726. type: object
  727. properties:
  728. width:
  729. type: integer
  730. height:
  731. type: integer
  732. frameRate:
  733. type: integer
  734. videoBitrate:
  735. type: integer
  736. videoCodec:
  737. type: string
  738. audioBitrate:
  739. type: integer
  740. audioCodec:
  741. type: string
  742. encoder:
  743. type: string
  744. online:
  745. type: boolean
  746. description: Is a stream currently active
  747. viewerCount:
  748. type: integer
  749. description: The current number of viewers
  750. sessionPeakViewerCount:
  751. type: integer
  752. description: The peak number of viewers this streaming session
  753. overallPeakViewerCount:
  754. type: integer
  755. description: The all-time peak number of viewers
  756. versionNumber:
  757. type: string
  758. description: The current version of the owncast software
  759. examples:
  760. connected:
  761. summary: 'Broadcaster Connected'
  762. value:
  763. broadcaster:
  764. remoteAddr: 172.217.164.110
  765. time: '2020-10-06T23:20:44.588649-07:00'
  766. streamDetails:
  767. width: 640
  768. height: 480
  769. frameRate: 24
  770. videoBitrate: 1500
  771. videoCodec: 'mp4a'
  772. audioBitrate: 256
  773. audioCodec: 'aac'
  774. encoder: 'obs-output module (libobs version 25.0.8)'
  775. online: true
  776. viewerCount: 3
  777. overallPeakViewerCount: 4
  778. sessionPeakViewerCount: 4
  779. versionNumber: '0.0.3'
  780. /api/admin/disconnect:
  781. post:
  782. summary: Disconnect Broadcaster
  783. description: Disconnect the active inbound stream, if one exists, and terminate the broadcast.
  784. tags: ['Admin']
  785. security:
  786. - AdminBasicAuth: []
  787. responses:
  788. '200':
  789. $ref: '#/components/responses/BasicResponse'
  790. /api/admin/yp/reset:
  791. post:
  792. summary: Reset your YP registration key.
  793. description: Used when there is a problem with your registration to the Owncast Directory via the YP APIs. This will reset your local registration key.
  794. tags: ['Admin']
  795. security:
  796. - AdminBasicAuth: []
  797. responses:
  798. '200':
  799. $ref: '#/components/responses/BasicResponse'
  800. /api/admin/chat/clients:
  801. get:
  802. summary: Return a list of currently connected clients
  803. description: Return a list of currently connected clients with optional geo details.
  804. tags: ['Admin']
  805. security:
  806. - AdminBasicAuth: []
  807. responses:
  808. '200':
  809. $ref: '#/components/responses/ClientsResponse'
  810. /api/admin/users/disabled:
  811. get:
  812. summary: Return a list of currently connected clients
  813. description: Return a list of currently connected clients with optional geo details.
  814. tags: ['Admin']
  815. security:
  816. - AdminBasicAuth: []
  817. responses:
  818. '200':
  819. $ref: '#/components/responses/UsersResponse'
  820. /api/admin/logs:
  821. get:
  822. summary: Return recent log entries
  823. description: Returns server logs.
  824. tags: ['Admin']
  825. security:
  826. - AdminBasicAuth: []
  827. responses:
  828. '200':
  829. $ref: '#/components/responses/LogsResponse'
  830. /api/admin/logs/warnings:
  831. get:
  832. summary: Return recent warning and error logs.
  833. description: Return recent warning and error logs.
  834. tags: ['Admin']
  835. security:
  836. - AdminBasicAuth: []
  837. responses:
  838. '200':
  839. $ref: '#/components/responses/LogsResponse'
  840. /api/admin/serverconfig:
  841. get:
  842. summary: Server Configuration
  843. description: Get the current configuration of the Owncast server.
  844. tags: ['Admin']
  845. security:
  846. - AdminBasicAuth: []
  847. responses:
  848. '200':
  849. description: ''
  850. content:
  851. application/json:
  852. schema:
  853. type: object
  854. properties:
  855. instanceDetails:
  856. $ref: '#/components/schemas/InstanceDetails'
  857. ffmpegPath:
  858. type: string
  859. description: The path to the copy of ffmpeg that this server is using.
  860. webServerPort:
  861. type: integer
  862. description: The port the public web server is listening on.
  863. rtmpServerPort:
  864. type: integer
  865. description: The port the inbound RTMP broadcast should be sent to.
  866. s3:
  867. $ref: '#/components/schemas/S3'
  868. videoSettings:
  869. type: object
  870. description: How the different variants of video streams are configured.
  871. properties:
  872. videoQualityVariants:
  873. type: array
  874. items:
  875. $ref: '#/components/schemas/StreamQuality'
  876. latencyLevel:
  877. type: integer
  878. description: The level of latency selected for streaming. Lower latency can create more buffering.
  879. yp:
  880. $ref: '#/components/schemas/YP'
  881. /api/admin/chat/messages:
  882. get:
  883. summary: Chat messages, unfiltered.
  884. description: Get a list of all chat messages with no filters applied.
  885. tags: ['Admin']
  886. security:
  887. - AdminBasicAuth: []
  888. responses:
  889. '200':
  890. description: ''
  891. content:
  892. application/json:
  893. schema:
  894. type: array
  895. items:
  896. type: object
  897. properties:
  898. user:
  899. $ref: '#/components/schemas/User'
  900. body:
  901. type: string
  902. description: Escaped HTML of the chat message content.
  903. id:
  904. type: string
  905. description: Unique ID of the chat message.
  906. visible:
  907. type: boolean
  908. description: 'Should chat message be visibly rendered.'
  909. timestamp:
  910. type: string
  911. format: date-time
  912. /api/admin/chat/messagevisibility:
  913. post:
  914. summary: Update the visibility of chat messages.
  915. description: Pass an array of IDs you want to change the chat visibility of.
  916. requestBody:
  917. content:
  918. application/json:
  919. schema:
  920. type: object
  921. properties:
  922. visible:
  923. type: boolean
  924. description: Are these messages visible.
  925. idArray:
  926. type: array
  927. items:
  928. type: string
  929. description: IDs of the chat messages you wish to change the visibility of.
  930. tags: ['Admin']
  931. security:
  932. - AdminBasicAuth: []
  933. responses:
  934. '200':
  935. $ref: '#/components/responses/BasicResponse'
  936. /api/admin/chat/users/setenabled:
  937. post:
  938. summary: Enable or disable a single user.
  939. description: Enable or disable a single user. Disabling will also hide all the user's chat messages.
  940. requestBody:
  941. content:
  942. application/json:
  943. schema:
  944. type: object
  945. properties:
  946. userId:
  947. type: string
  948. description: User ID to act upon.
  949. example: 'yklw5Imng'
  950. enabled:
  951. type: boolean
  952. description: Set the enabled state of this user.
  953. tags: ['Admin']
  954. security:
  955. - AdminBasicAuth: []
  956. responses:
  957. '200':
  958. $ref: '#/components/responses/BasicResponse'
  959. /api/admin/config/key:
  960. post:
  961. summary: Set the stream key.
  962. description: Set the stream key. Also used as the admin password.
  963. tags: ['Admin']
  964. security:
  965. - AdminBasicAuth: []
  966. responses:
  967. '200':
  968. $ref: '#/components/responses/BasicResponse'
  969. requestBody:
  970. content:
  971. application/json:
  972. schema:
  973. $ref: '#/components/schemas/ConfigValue'
  974. /api/admin/config/pagecontent:
  975. post:
  976. summary: Set the custom page content.
  977. description: Set the custom page content using markdown.
  978. tags: ['Admin']
  979. security:
  980. - AdminBasicAuth: []
  981. responses:
  982. '200':
  983. $ref: '#/components/responses/BasicResponse'
  984. requestBody:
  985. content:
  986. application/json:
  987. schema:
  988. $ref: '#/components/schemas/ConfigValue'
  989. example: '# Welcome to my cool server!<br><br>I _hope_ you enjoy it.'
  990. /api/admin/config/streamtitle:
  991. post:
  992. summary: Set the stream title.
  993. description: Set the title of the currently streaming content.
  994. tags: ['Admin']
  995. security:
  996. - AdminBasicAuth: []
  997. responses:
  998. '200':
  999. $ref: '#/components/responses/BasicResponse'
  1000. requestBody:
  1001. content:
  1002. application/json:
  1003. schema:
  1004. $ref: '#/components/schemas/ConfigValue'
  1005. example:
  1006. value: Streaming my favorite game, Desert Bus.
  1007. /api/admin/config/name:
  1008. post:
  1009. summary: Set the server name.
  1010. description: Set the name associated with your server. Often is your name, username or identity.
  1011. tags: ['Admin']
  1012. security:
  1013. - AdminBasicAuth: []
  1014. responses:
  1015. '200':
  1016. $ref: '#/components/responses/BasicResponse'
  1017. requestBody:
  1018. content:
  1019. application/json:
  1020. schema:
  1021. $ref: '#/components/schemas/ConfigValue'
  1022. /api/admin/config/serversummary:
  1023. post:
  1024. summary: Set the server summary.
  1025. description: Set the summary of your server's streaming content.
  1026. tags: ['Admin']
  1027. security:
  1028. - AdminBasicAuth: []
  1029. responses:
  1030. '200':
  1031. $ref: '#/components/responses/BasicResponse'
  1032. requestBody:
  1033. content:
  1034. application/json:
  1035. schema:
  1036. $ref: '#/components/schemas/ConfigValue'
  1037. example:
  1038. value: The best in Desert Bus Streaming
  1039. /api/admin/config/logo:
  1040. post:
  1041. summary: Set the server logo.
  1042. description: Set the logo for your server. Path is relative to webroot.
  1043. tags: ['Admin']
  1044. security:
  1045. - AdminBasicAuth: []
  1046. responses:
  1047. '200':
  1048. $ref: '#/components/responses/BasicResponse'
  1049. requestBody:
  1050. content:
  1051. application/json:
  1052. schema:
  1053. $ref: '#/components/schemas/ConfigValue'
  1054. example:
  1055. value: '/img/mylogo.png'
  1056. /api/admin/config/tags:
  1057. post:
  1058. summary: Set the server tags.
  1059. description: Set the tags displayed for your server and the categories you can show up in on the directory.
  1060. tags: ['Admin']
  1061. security:
  1062. - AdminBasicAuth: []
  1063. responses:
  1064. '200':
  1065. $ref: '#/components/responses/BasicResponse'
  1066. requestBody:
  1067. content:
  1068. application/json:
  1069. schema:
  1070. $ref: '#/components/schemas/ConfigValue'
  1071. example:
  1072. value:
  1073. - games
  1074. - music
  1075. - streaming
  1076. /api/admin/config/ffmpegpath:
  1077. post:
  1078. summary: Set the ffmpeg binary path
  1079. description: Set the path for a specific copy of ffmpeg on your system.
  1080. tags: ['Admin']
  1081. security:
  1082. - AdminBasicAuth: []
  1083. responses:
  1084. '200':
  1085. $ref: '#/components/responses/BasicResponse'
  1086. requestBody:
  1087. content:
  1088. application/json:
  1089. schema:
  1090. $ref: '#/components/schemas/ConfigValue'
  1091. example:
  1092. value: '/home/owncast/ffmpeg'
  1093. /api/admin/config/webserverport:
  1094. post:
  1095. summary: Set the owncast web port.
  1096. description: Set the port the owncast web server should listen on.
  1097. tags: ['Admin']
  1098. security:
  1099. - AdminBasicAuth: []
  1100. responses:
  1101. '200':
  1102. $ref: '#/components/responses/BasicResponse'
  1103. requestBody:
  1104. content:
  1105. application/json:
  1106. schema:
  1107. $ref: '#/components/schemas/ConfigValue'
  1108. example:
  1109. value: 8080
  1110. /api/admin/config/rtmpserverport:
  1111. post:
  1112. summary: Set the inbound rtmp server port.
  1113. description: Set the port where owncast service will listen for inbound broadcasts.
  1114. tags: ['Admin']
  1115. security:
  1116. - AdminBasicAuth: []
  1117. responses:
  1118. '200':
  1119. $ref: '#/components/responses/BasicResponse'
  1120. requestBody:
  1121. content:
  1122. application/json:
  1123. schema:
  1124. $ref: '#/components/schemas/ConfigValue'
  1125. example:
  1126. value: 1935
  1127. /api/admin/config/nsfw:
  1128. post:
  1129. summary: Mark if your stream is not safe for work
  1130. description: Mark if your stream can be consitered not safe for work. Used in different contexts, including the directory for filtering purposes.
  1131. tags: ['Admin']
  1132. security:
  1133. - AdminBasicAuth: []
  1134. responses:
  1135. '200':
  1136. $ref: '#/components/responses/BasicResponse'
  1137. requestBody:
  1138. content:
  1139. application/json:
  1140. schema:
  1141. $ref: '#/components/schemas/ConfigValue'
  1142. example:
  1143. value: false
  1144. /api/admin/config/directoryenabled:
  1145. post:
  1146. summary: Set if this server supports the Owncast directory.
  1147. description: If set to true the server will attempt to register itself with the [Owncast Directory](https://directory.owncast.online). Off by default.
  1148. tags: ['Admin']
  1149. security:
  1150. - AdminBasicAuth: []
  1151. responses:
  1152. '200':
  1153. $ref: '#/components/responses/BasicResponse'
  1154. requestBody:
  1155. content:
  1156. application/json:
  1157. schema:
  1158. $ref: '#/components/schemas/ConfigValue'
  1159. example:
  1160. value: true
  1161. /api/admin/config/serverurl:
  1162. post:
  1163. summary: Set the public url of this owncast server.
  1164. description: Set the public url of this owncast server. Used for the directory and optional integrations.
  1165. tags: ['Admin']
  1166. security:
  1167. - AdminBasicAuth: []
  1168. responses:
  1169. '200':
  1170. $ref: '#/components/responses/BasicResponse'
  1171. requestBody:
  1172. content:
  1173. application/json:
  1174. schema:
  1175. $ref: '#/components/schemas/ConfigValue'
  1176. example:
  1177. value: https://live.mycoolserver.biz
  1178. /api/admin/config/video/streamlatencylevel:
  1179. post:
  1180. summary: Set the latency level for the stream.
  1181. description: Sets the latency level that determines how much video is buffered between the server and viewer. Less latency can end up with more buffering.
  1182. tags: ['Admin']
  1183. security:
  1184. - AdminBasicAuth: []
  1185. responses:
  1186. '200':
  1187. $ref: '#/components/responses/BasicResponse'
  1188. requestBody:
  1189. content:
  1190. application/json:
  1191. schema:
  1192. type: object
  1193. properties:
  1194. value:
  1195. description: The latency level
  1196. type: integer
  1197. example:
  1198. value: 4
  1199. /api/admin/config/video/streamoutputvariants:
  1200. post:
  1201. summary: Set the configuration of your stream output.
  1202. description: Sets the detailed configuration for all of the stream variants you support.
  1203. tags: ['Admin']
  1204. security:
  1205. - AdminBasicAuth: []
  1206. responses:
  1207. '200':
  1208. $ref: '#/components/responses/BasicResponse'
  1209. requestBody:
  1210. content:
  1211. application/json:
  1212. schema:
  1213. $ref: '#/components/schemas/ConfigValue'
  1214. example:
  1215. value:
  1216. - framerate: 30
  1217. videoPassthrough: false
  1218. videoBitrate: 1800
  1219. cpuUsageLevel: 2
  1220. audioPassthrough: true
  1221. - framerate: 24
  1222. videoPassthrough: false
  1223. videoBitrate: 1000
  1224. cpuUsageLevel: 3
  1225. audioPassthrough: true
  1226. /api/admin/config/video/codec:
  1227. post:
  1228. summary: Set the video codec.
  1229. description: Sets the specific video codec that will be used for video encoding. Some codecs will support hardware acceleration. Not all codecs will be supported for all systems.
  1230. tags: ['Admin']
  1231. security:
  1232. - AdminBasicAuth: []
  1233. responses:
  1234. '200':
  1235. $ref: '#/components/responses/BasicResponse'
  1236. requestBody:
  1237. content:
  1238. application/json:
  1239. schema:
  1240. type: object
  1241. properties:
  1242. value:
  1243. description: The video codec to change to.
  1244. type: string
  1245. example:
  1246. value: libx264
  1247. /api/admin/config/s3:
  1248. post:
  1249. summary: Set your storage configuration.
  1250. description: Sets your S3 storage provider configuration details to enable external storage.
  1251. tags: ['Admin']
  1252. security:
  1253. - AdminBasicAuth: []
  1254. responses:
  1255. '200':
  1256. $ref: '#/components/responses/BasicResponse'
  1257. requestBody:
  1258. content:
  1259. application/json:
  1260. schema:
  1261. $ref: '#/components/schemas/ConfigValue'
  1262. example:
  1263. value:
  1264. enabled: true
  1265. endpoint: https://s3.us-west-000.backblazeb2.com
  1266. accessKey: e1ac500y7000500047156bd060
  1267. secret: 'H8FH8eSxM2K/S42CUg5K000Tt4WY2fI'
  1268. bucket: 'video'
  1269. region: us-west-000
  1270. /api/admin/config/socialhandles:
  1271. post:
  1272. summary: Set your social handles.
  1273. description: Sets the external links to social networks and profiles.
  1274. tags: ['Admin']
  1275. security:
  1276. - AdminBasicAuth: []
  1277. responses:
  1278. '200':
  1279. $ref: '#/components/responses/BasicResponse'
  1280. requestBody:
  1281. content:
  1282. application/json:
  1283. schema:
  1284. $ref: '#/components/schemas/ConfigValue'
  1285. example:
  1286. value:
  1287. - platform: github
  1288. url: https://github.com/owncast/owncast
  1289. - platform: mastodon
  1290. url: https://mastodon.social/@gabek
  1291. /api/admin/config/customstyles:
  1292. post:
  1293. summary: Custom CSS styles to be used in the web front endpoints.
  1294. description: Save a string containing CSS to be inserted in to the web frontend page.
  1295. tags: ['Admin']
  1296. responses:
  1297. '200':
  1298. $ref: '#/components/responses/BasicResponse'
  1299. requestBody:
  1300. content:
  1301. application/json:
  1302. schema:
  1303. $ref: '#/components/schemas/ConfigValue'
  1304. example:
  1305. value: 'body { color: orange; background: black; }'
  1306. /api/admin/viewersOverTime:
  1307. get:
  1308. summary: Viewers Over Time
  1309. description: Get the tracked viewer count over the collected period.
  1310. tags: ['Admin']
  1311. security:
  1312. - AdminBasicAuth: []
  1313. responses:
  1314. '200':
  1315. description: ''
  1316. content:
  1317. application/json:
  1318. schema:
  1319. type: array
  1320. items:
  1321. $ref: '#/components/schemas/TimestampedValue'
  1322. examples:
  1323. default:
  1324. value:
  1325. - time: '2020-10-03T21:41:00.381996-05:00'
  1326. value: 50
  1327. - time: '2020-10-03T21:42:00.381996-05:00'
  1328. value: 52
  1329. /api/admin/hardwarestats:
  1330. get:
  1331. summary: Hardware Stats
  1332. description: 'Get the CPU, Memory and Disk utilization levels over the collected period.'
  1333. tags: ['Admin']
  1334. security:
  1335. - AdminBasicAuth: []
  1336. responses:
  1337. '200':
  1338. description: ''
  1339. content:
  1340. application/json:
  1341. schema:
  1342. type: object
  1343. properties:
  1344. cpu:
  1345. type: array
  1346. items:
  1347. $ref: '#/components/schemas/TimestampedValue'
  1348. memory:
  1349. type: array
  1350. items:
  1351. $ref: '#/components/schemas/TimestampedValue'
  1352. disk:
  1353. type: array
  1354. items:
  1355. $ref: '#/components/schemas/TimestampedValue'
  1356. examples:
  1357. default:
  1358. value:
  1359. cpu:
  1360. - time: '2020-10-03T21:41:00.381996-05:00'
  1361. value: 23
  1362. - time: '2020-10-03T21:42:00.381996-05:00'
  1363. value: 27
  1364. - time: '2020-10-03T21:43:00.381996-05:00'
  1365. value: 22
  1366. memory:
  1367. - time: '2020-10-03T21:41:00.381996-05:00'
  1368. value: 65
  1369. - time: '2020-10-03T21:42:00.381996-05:00'
  1370. value: 66
  1371. - time: '2020-10-03T21:43:00.381996-05:00'
  1372. value: 72
  1373. disk:
  1374. - time: '2020-10-03T21:41:00.381996-05:00'
  1375. value: 11
  1376. - time: '2020-10-03T21:42:00.381996-05:00'
  1377. value: 11
  1378. - time: '2020-10-03T21:43:00.381996-05:00'
  1379. value: 11
  1380. /api/admin/config/federation/enable:
  1381. post:
  1382. summary: Enable or disable federated social features.
  1383. tags: ['Admin']
  1384. security:
  1385. - AdminBasicAuth: []
  1386. responses:
  1387. '200':
  1388. $ref: '#/components/responses/BasicResponse'
  1389. requestBody:
  1390. content:
  1391. application/json:
  1392. schema:
  1393. $ref: '#/components/schemas/BooleanValue'
  1394. /api/admin/config/federation/private:
  1395. post:
  1396. summary: Enable or disable private federation mode.
  1397. tags: ['Admin']
  1398. security:
  1399. - AdminBasicAuth: []
  1400. responses:
  1401. '200':
  1402. $ref: '#/components/responses/BasicResponse'
  1403. requestBody:
  1404. content:
  1405. application/json:
  1406. schema:
  1407. $ref: '#/components/schemas/BooleanValue'
  1408. /api/admin/config/federation/showengagement:
  1409. post:
  1410. summary: Enable or disable Federation activity showing in chat.
  1411. tags: ['Admin']
  1412. security:
  1413. - AdminBasicAuth: []
  1414. responses:
  1415. '200':
  1416. $ref: '#/components/responses/BasicResponse'
  1417. requestBody:
  1418. content:
  1419. application/json:
  1420. schema:
  1421. $ref: '#/components/schemas/BooleanValue'
  1422. /api/admin/config/federation/username:
  1423. post:
  1424. summary: Set the username you are seen as on the fediverse.
  1425. tags: ['Admin']
  1426. security:
  1427. - AdminBasicAuth: []
  1428. responses:
  1429. '200':
  1430. $ref: '#/components/responses/BasicResponse'
  1431. requestBody:
  1432. content:
  1433. application/json:
  1434. schema:
  1435. $ref: '#/components/schemas/ConfigValue'
  1436. /api/admin/config/federation/livemessage:
  1437. post:
  1438. summary: Set the message sent to the fediverse when this instance goes live.
  1439. tags: ['Admin']
  1440. security:
  1441. - AdminBasicAuth: []
  1442. responses:
  1443. '200':
  1444. $ref: '#/components/responses/BasicResponse'
  1445. requestBody:
  1446. content:
  1447. application/json:
  1448. schema:
  1449. $ref: '#/components/schemas/ConfigValue'
  1450. /api/admin/config/federation/blockdomains:
  1451. post:
  1452. summary: Save a collection of domains that should be ignored on the fediverse.
  1453. tags: ['Admin']
  1454. security:
  1455. - AdminBasicAuth: []
  1456. responses:
  1457. '200':
  1458. $ref: '#/components/responses/BasicResponse'
  1459. requestBody:
  1460. content:
  1461. application/json:
  1462. schema:
  1463. $ref: '#/components/schemas/ConfigValue'
  1464. example:
  1465. value:
  1466. - guns.eagles.biz
  1467. - freedom.us
  1468. /api/admin/federation/send:
  1469. post:
  1470. summary: Manually send a message to the fediverse from this instance.
  1471. tags: ['Admin']
  1472. security:
  1473. - AdminBasicAuth: []
  1474. responses:
  1475. '200':
  1476. $ref: '#/components/responses/BasicResponse'
  1477. requestBody:
  1478. content:
  1479. application/json:
  1480. schema:
  1481. $ref: '#/components/schemas/ConfigValue'
  1482. example:
  1483. value: I'm still streaming, you should come visit.
  1484. /api/admin/federation/actions:
  1485. get:
  1486. summary: Get a list of accepted actions that took place on the Fediverse.
  1487. tags: ['Admin']
  1488. security:
  1489. - AdminBasicAuth: []
  1490. responses:
  1491. '200':
  1492. description: Actions previously handled.
  1493. content:
  1494. application/json:
  1495. schema:
  1496. type: array
  1497. items:
  1498. $ref: '#/components/schemas/FederatedAction'
  1499. /api/integrations/streamtitle:
  1500. post:
  1501. summary: Set the stream title.
  1502. description: Set the title of the currently streaming content.
  1503. tags: ['Integrations']
  1504. security:
  1505. - AccessToken: []
  1506. responses:
  1507. '200':
  1508. $ref: '#/components/responses/BasicResponse'
  1509. requestBody:
  1510. content:
  1511. application/json:
  1512. schema:
  1513. $ref: '#/components/schemas/ConfigValue'
  1514. example:
  1515. value: Streaming my favorite game, Desert Bus.
  1516. /api/integrations/chat/send:
  1517. post:
  1518. summary: Send a chat message.
  1519. description: Send a chat message on behalf of a 3rd party integration, bot or service.
  1520. tags: ['Integrations']
  1521. security:
  1522. - AccessToken: []
  1523. requestBody:
  1524. required: true
  1525. content:
  1526. application/json:
  1527. schema:
  1528. type: object
  1529. properties:
  1530. body:
  1531. type: string
  1532. description: The message text that will be sent as the user.
  1533. responses:
  1534. '200':
  1535. description: Message was sent.
  1536. content:
  1537. application/json:
  1538. schema:
  1539. type: object
  1540. properties:
  1541. success:
  1542. type: boolean
  1543. example: true
  1544. message:
  1545. type: string
  1546. example: sent
  1547. /api/integrations/chat/system:
  1548. post:
  1549. summary: Send a system chat message.
  1550. description: Send a chat message on behalf of the system/server.
  1551. tags: ['Integrations']
  1552. security:
  1553. - AccessToken: []
  1554. requestBody:
  1555. required: true
  1556. content:
  1557. application/json:
  1558. schema:
  1559. type: object
  1560. properties:
  1561. body:
  1562. type: string
  1563. description: The message text that will be sent as the system user.
  1564. responses:
  1565. '200':
  1566. description: Message was sent.
  1567. content:
  1568. application/json:
  1569. schema:
  1570. type: object
  1571. properties:
  1572. success:
  1573. type: boolean
  1574. example: true
  1575. message:
  1576. type: string
  1577. example: sent
  1578. /api/integrations/chat/action:
  1579. post:
  1580. summary: Send a chat action.
  1581. description: Send an action that took place to the chat.
  1582. tags: ['Integrations']
  1583. security:
  1584. - AccessToken: []
  1585. requestBody:
  1586. required: true
  1587. content:
  1588. application/json:
  1589. schema:
  1590. type: object
  1591. required:
  1592. - 'body'
  1593. properties:
  1594. body:
  1595. type: string
  1596. description: The message text that will be sent as the system user.
  1597. example: 'rolled a 15 on the dice'
  1598. author:
  1599. type: string
  1600. description: An optional user name that performed the action.
  1601. example: 'JohnSmith'
  1602. responses:
  1603. '200':
  1604. description: Message was sent.
  1605. content:
  1606. application/json:
  1607. schema:
  1608. type: object
  1609. properties:
  1610. success:
  1611. type: boolean
  1612. example: true
  1613. message:
  1614. type: string
  1615. example: sent
  1616. /api/integrations/chat/system/client/{clientId}:
  1617. post:
  1618. summary: Send system chat message to a client, identified by its ClientId
  1619. description: Send a chat message on behalf of the system/server to a single client.
  1620. tags: ['Integrations']
  1621. security:
  1622. - AccessToken: []
  1623. parameters:
  1624. - name: clientId
  1625. in: path
  1626. description: Client ID (a unique numeric Id, identifying the client connection)
  1627. required: true
  1628. schema:
  1629. type: integer
  1630. format: int64
  1631. requestBody:
  1632. required: true
  1633. content:
  1634. application/json:
  1635. schema:
  1636. type: object
  1637. required:
  1638. - 'body'
  1639. properties:
  1640. body:
  1641. type: string
  1642. description: The message text that will be sent to the client.
  1643. example: 'What a beautiful day. I love it'
  1644. responses:
  1645. '200':
  1646. description: Message was sent.
  1647. content:
  1648. application/json:
  1649. schema:
  1650. type: object
  1651. properties:
  1652. success:
  1653. type: boolean
  1654. example: true
  1655. messages:
  1656. type: string
  1657. example: sent
  1658. '500':
  1659. description: Message was not sent to the client
  1660. content:
  1661. application/json:
  1662. schema:
  1663. type: object
  1664. properties:
  1665. error:
  1666. type: string
  1667. description: message explaining what went wrong sending the message to the client
  1668. /api/admin/accesstokens/create:
  1669. post:
  1670. summary: Create an access token.
  1671. description: Create a single access token that has access to the access scopes provided.
  1672. tags: ['Integrations']
  1673. security:
  1674. - AdminBasicAuth: []
  1675. requestBody:
  1676. required: true
  1677. content:
  1678. application/json:
  1679. schema:
  1680. type: object
  1681. properties:
  1682. name:
  1683. type: string
  1684. description: The human-readable name to give this access token.
  1685. scopes:
  1686. type: array
  1687. items:
  1688. type: string
  1689. responses:
  1690. '200':
  1691. description: Token was created.
  1692. content:
  1693. application/json:
  1694. schema:
  1695. type: object
  1696. properties:
  1697. name:
  1698. type: string
  1699. example: your new token
  1700. token:
  1701. type: string
  1702. example: 'zG2xO-mHTFnelCp5xaIkYEFWcPhoOswOSRmFC1BkI='
  1703. /api/admin/accesstokens/delete:
  1704. post:
  1705. summary: Delete an access token.
  1706. description: Delete a single access token.
  1707. tags: ['Integrations']
  1708. security:
  1709. - AdminBasicAuth: []
  1710. requestBody:
  1711. required: true
  1712. content:
  1713. application/json:
  1714. schema:
  1715. type: object
  1716. properties:
  1717. token:
  1718. type: string
  1719. description: The token to delete
  1720. responses:
  1721. '200':
  1722. description: Token was deleted.
  1723. content:
  1724. application/json:
  1725. schema:
  1726. type: object
  1727. properties:
  1728. success:
  1729. type: boolean
  1730. example: true
  1731. message:
  1732. type: string
  1733. example: deleted token
  1734. /api/admin/accesstokens:
  1735. get:
  1736. summary: Return all access tokens.
  1737. description: Return all of the available access tokens.
  1738. tags: ['Integrations']
  1739. security:
  1740. - AdminBasicAuth: []
  1741. responses:
  1742. '200':
  1743. description: Tokens are returned
  1744. content:
  1745. application/json:
  1746. schema:
  1747. type: array
  1748. items:
  1749. type: string
  1750. /api/admin/webhooks:
  1751. get:
  1752. summary: Return all webhooks.
  1753. description: Return all of the configured webhooks for external events.
  1754. tags: ['Admin']
  1755. security:
  1756. - AdminBasicAuth: []
  1757. responses:
  1758. '200':
  1759. description: Webhooks are returned
  1760. content:
  1761. application/json:
  1762. schema:
  1763. $ref: '#/components/schemas/Webhook'
  1764. /api/admin/config/externalactions:
  1765. post:
  1766. summary: Set external action URLs.
  1767. description: Set a collection of external action URLs that are displayed in the UI.
  1768. tags: ['Admin', 'Integrations']
  1769. security:
  1770. - AdminBasicAuth: []
  1771. requestBody:
  1772. required: true
  1773. content:
  1774. application/json:
  1775. schema:
  1776. type: array
  1777. items:
  1778. type: object
  1779. properties:
  1780. url:
  1781. type: string
  1782. description: URL of the external action content.
  1783. title:
  1784. type: string
  1785. description: The title to put on the external action button.
  1786. description:
  1787. type: string
  1788. description: Optional additional description to display in the UI.
  1789. icon:
  1790. type: string
  1791. description: The URL to an image to place on the external action button.
  1792. color:
  1793. type: string
  1794. description: Optional color to use for drawing the action button.
  1795. openExternally:
  1796. type: boolean
  1797. description: If set this action will open in a new browser tab instead of an internal modal.
  1798. responses:
  1799. '200':
  1800. description: Actions have been updated.
  1801. /api/admin/webhooks/delete:
  1802. post:
  1803. summary: Delete a single webhook.
  1804. description: Delete a single webhook by its ID.
  1805. tags: ['Admin']
  1806. security:
  1807. - AdminBasicAuth: []
  1808. requestBody:
  1809. required: true
  1810. content:
  1811. application/json:
  1812. schema:
  1813. type: object
  1814. properties:
  1815. id:
  1816. type: string
  1817. description: The webhook id to delete
  1818. responses:
  1819. '200':
  1820. description: Webhook is deleted
  1821. /api/admin/webhooks/create:
  1822. post:
  1823. summary: Create a webhook.
  1824. description: Create a single webhook that acts on the requested events.
  1825. tags: ['Admin']
  1826. security:
  1827. - AdminBasicAuth: []
  1828. requestBody:
  1829. required: true
  1830. content:
  1831. application/json:
  1832. schema:
  1833. type: object
  1834. properties:
  1835. url:
  1836. type: string
  1837. description: The url to post the events to.
  1838. events:
  1839. description: The events to be notified about.
  1840. type: array
  1841. items:
  1842. type: string
  1843. responses:
  1844. '200':
  1845. description: Token was created.
  1846. content:
  1847. application/json:
  1848. schema:
  1849. type: object
  1850. properties:
  1851. name:
  1852. type: string
  1853. example: your new token
  1854. token:
  1855. type: string
  1856. example: 'zG2xO-mHTFnelCp5xaIkYEFWcPhoOswOSRmFC1BkI='
  1857. /api/integrations/clients:
  1858. get:
  1859. summary: Return a list of currently connected clients
  1860. description: Return a list of currently connected clients with optional geo details.
  1861. tags: ['Integrations']
  1862. security:
  1863. - AccessToken: []
  1864. responses:
  1865. '200':
  1866. $ref: '#/components/responses/ClientsResponse'
  1867. /api/integrations/chat:
  1868. get:
  1869. summary: Historical Chat Messages
  1870. description: Used to get the backlog of chat messages.
  1871. tags: ['Integrations']
  1872. security:
  1873. - AccessToken: []
  1874. responses:
  1875. '200':
  1876. description: ''
  1877. content:
  1878. application/json:
  1879. schema:
  1880. type: array
  1881. items:
  1882. type: object
  1883. properties:
  1884. user:
  1885. $ref: '#/components/schemas/User'
  1886. body:
  1887. type: string
  1888. description: Escaped HTML of the chat message content.
  1889. id:
  1890. type: string
  1891. description: Unique ID of the chat message.
  1892. visible:
  1893. type: boolean
  1894. description: 'Should chat message be visibly rendered.'
  1895. timestamp:
  1896. type: string
  1897. format: date-time
  1898. /api/integrations/chat/messagevisibility:
  1899. post:
  1900. summary: Update the visibility of chat messages.
  1901. description: Pass an array of IDs you want to change the chat visibility of.
  1902. requestBody:
  1903. content:
  1904. application/json:
  1905. schema:
  1906. type: object
  1907. properties:
  1908. visible:
  1909. type: boolean
  1910. description: Are these messages visible.
  1911. idArray:
  1912. type: array
  1913. items:
  1914. type: string
  1915. description: IDs of the chat messages you wish to change the visibility of.
  1916. tags: ['Integrations']
  1917. security:
  1918. - AccessToken: []
  1919. responses:
  1920. '200':
  1921. $ref: '#/components/responses/BasicResponse'
  1922. /api/admin/chat/users/setmoderator:
  1923. post:
  1924. summary: Set moderator privileges on a chat users.
  1925. description: Give a chat user ID and be able to grant or remove moderator privileges to this user.
  1926. requestBody:
  1927. content:
  1928. application/json:
  1929. schema:
  1930. type: object
  1931. properties:
  1932. userId:
  1933. type: string
  1934. description: User ID of the chat user you want to change moderation status of.
  1935. example: xJ84_48Ghj
  1936. isModerator:
  1937. type: boolean
  1938. description: The moderator status of this user.
  1939. example: true
  1940. tags: ['Admin', 'Moderation']
  1941. security:
  1942. - AdminBasicAuth: []
  1943. responses:
  1944. '200':
  1945. $ref: '#/components/responses/BasicResponse'
  1946. /api/admin/chat/users/moderators:
  1947. get:
  1948. tags: ['Admin', 'Moderation']
  1949. security:
  1950. - AdminBasicAuth: []
  1951. summary: Get a list of chat moderator users.
  1952. responses:
  1953. '200':
  1954. description: List of moderators
  1955. content:
  1956. application/json:
  1957. schema:
  1958. type: array
  1959. items:
  1960. $ref: '#/components/schemas/User'
  1961. /api/admin/followers:
  1962. get:
  1963. tags: ['Admin']
  1964. security:
  1965. - AdminBasicAuth: []
  1966. summary: Get the followers of this instance
  1967. responses:
  1968. '200':
  1969. description: Followers
  1970. content:
  1971. application/json:
  1972. schema:
  1973. type: array
  1974. items:
  1975. $ref: '#/components/schemas/Follower'
  1976. /api/admin/followers/pending:
  1977. get:
  1978. tags: ['Admin']
  1979. security:
  1980. - AdminBasicAuth: []
  1981. summary: Get a list of follow requests that are pending.
  1982. responses:
  1983. '200':
  1984. description: Followers
  1985. $ref: '#/components/schemas/FollowerArray'
  1986. /api/admin/followers/blocked:
  1987. get:
  1988. tags: ['Admin']
  1989. security:
  1990. - AdminBasicAuth: []
  1991. summary: Get a list of follow requests that have been blocked/rejected.
  1992. responses:
  1993. '200':
  1994. description: Follower requests that have been rejected or blocked.
  1995. $ref: '#/components/schemas/FollowerArray'
  1996. /api/admin/followers/approve:
  1997. post:
  1998. tags: ['Admin']
  1999. security:
  2000. - AdminBasicAuth: []
  2001. summary: Approve a pending follow request.
  2002. requestBody:
  2003. content:
  2004. application/json:
  2005. schema:
  2006. type: object
  2007. properties:
  2008. actorIRI:
  2009. type: string
  2010. description: The requestor's remote IRI used to identify the user.
  2011. responses:
  2012. '200':
  2013. description: The request has been successfully approved.
  2014. $ref: '#/components/responses/BasicResponse'
  2015. /api/admin/config/chat/suggestedusernames:
  2016. post:
  2017. tags: ['Admin']
  2018. security:
  2019. - AdminBasicAuth: []
  2020. summary: A list of names to select from randomly for new chat users.
  2021. requestBody:
  2022. content:
  2023. application/json:
  2024. schema:
  2025. type: object
  2026. properties:
  2027. value:
  2028. type: array
  2029. items:
  2030. type: string
  2031. responses:
  2032. '200':
  2033. description: The list of default names have been updated.
  2034. $ref: '#/components/responses/BasicResponse'
  2035. /api/admin/prometheus:
  2036. get:
  2037. tags: ['Admin']
  2038. security:
  2039. - AdminBasicAuth: []
  2040. summary: Return Prometheus-compatible scraper metrics.
  2041. responses:
  2042. '200':
  2043. description: Prometheus-compatible scraper values.