openapi.yaml 76 KB

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