openapi.yaml 65 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720
  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.10-dev'
  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. components:
  22. schemas:
  23. ClientArray:
  24. type: array
  25. items:
  26. $ref: "#/components/schemas/Client"
  27. UserArray:
  28. type: array
  29. items:
  30. $ref: "#/components/schemas/User"
  31. LogEntryArray:
  32. type: array
  33. items:
  34. $ref: "#/components/schemas/LogEntry"
  35. Client:
  36. type: object
  37. description: A single representation of a client.
  38. example:
  39. connectedAt: "2020-10-06T23:20:44.588649-07:00"
  40. messageCount: 0
  41. userAgent: >-
  42. Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36
  43. (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
  44. ipAddress: "::1"
  45. clientID: 2ba20dd34f911c198df3218ddc64c740
  46. geo:
  47. countryCode: US
  48. regionName: California
  49. timeZone: America/Los_Angeles
  50. properties:
  51. connectedAt:
  52. type: string
  53. format: date-time
  54. messageCount:
  55. description: Number of chat messages sent by user
  56. type: integer
  57. userAgent:
  58. description: The web client used to connect to this server
  59. type: string
  60. example: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
  61. ipAddress:
  62. description: The public IP address of this client
  63. type: string
  64. clientID:
  65. description: The value used to identify this client
  66. type: string
  67. geo:
  68. type: object
  69. description: Optional geographic data for the client
  70. properties:
  71. countryCode:
  72. type: string
  73. regionName:
  74. type: string
  75. timeZone:
  76. type: string
  77. user:
  78. $ref: "#/components/schemas/User"
  79. x-last-modified: 1602052347511
  80. BasicResponse:
  81. type: object
  82. properties:
  83. success:
  84. type: boolean
  85. message:
  86. type: string
  87. InstanceDetails:
  88. type: object
  89. description: User-facing details about this server.
  90. properties:
  91. name:
  92. type: string
  93. description: Displayed as the header in the instance details.
  94. summary:
  95. type: string
  96. description: This is brief summary of whom you are or what the stream is.
  97. logo:
  98. type: string
  99. 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.
  100. tags:
  101. type: array
  102. description: Categories of the content this instance focuses on.
  103. items:
  104. type: string
  105. socialHandles:
  106. type: array
  107. description: Links to social network urls.
  108. items:
  109. type: object
  110. properties:
  111. platform:
  112. type: string
  113. example: github
  114. url:
  115. type: string
  116. example: http://github.com/owncast/owncast
  117. extraPageContent:
  118. type: string
  119. description: Additional HTML content to render in the body of the web interface.
  120. example: "<p>This page is <strong>super</strong> cool!"
  121. version:
  122. type: string
  123. example: Owncast v0.0.3-macOS (ef3796a033b32a312ebf5b334851cbf9959e7ecb)
  124. YP:
  125. type: object
  126. description: Configuration of the instance's registration to the Owncast Directory (YP API)
  127. properties:
  128. enabled:
  129. type: boolean
  130. description: If YP support is on or off. Must be enabled to show in the directory.
  131. default: false
  132. instanceUrl:
  133. type: string
  134. description: The public URL of this owncast server, used for registration and linking with the directory. Must be publicly available.
  135. S3:
  136. type: object
  137. description: Configuration of external storage using S3-compatible providers.
  138. properties:
  139. enabled:
  140. type: boolean
  141. endpoint:
  142. type: string
  143. servingEndpoint:
  144. type: string
  145. accessKey:
  146. type: string
  147. secret:
  148. type: string
  149. bucket:
  150. type: string
  151. region:
  152. type: string
  153. acl:
  154. type: string
  155. required:
  156. - enabled
  157. StreamQuality:
  158. type: object
  159. properties:
  160. videoPassthrough:
  161. type: boolean
  162. description: If enabled video transcoding is disabled and the video is passed along in its original format.
  163. audioPassthrough:
  164. type: boolean
  165. description: If enabled audio transcoding is disabled and the audio is passed along in its original format.
  166. videoBitrate:
  167. type: integer
  168. description: The video quality, in kbps.
  169. audioBitrate:
  170. type: integer
  171. description: The audio quality, in kbps.
  172. scaledWidth:
  173. type: integer
  174. description: The resized video width.
  175. scaledHeight:
  176. type: integer
  177. description: The resized video height.
  178. framerate:
  179. type: integer
  180. description: The target frames per second of the video.
  181. cpuUsageLevel:
  182. type: integer
  183. description: "The amount of hardware utilization selected for this HLS variant."
  184. TimestampedValue:
  185. type: object
  186. properties:
  187. time:
  188. type: string
  189. format: date-time
  190. value:
  191. type: integer
  192. ConfigValue:
  193. description: A wrapper object used to set values in many config endpoints.
  194. type: object
  195. properties:
  196. value:
  197. oneOf:
  198. - type: string
  199. - type: integer
  200. - type: object
  201. - type: boolean
  202. LogEntry:
  203. type: object
  204. properties:
  205. time:
  206. type: string
  207. format: date-time
  208. description: "Timestamp for this log entry"
  209. level:
  210. type: string
  211. description: "The level of this log entry"
  212. message:
  213. type: string
  214. description: "The log entry contents"
  215. Webhook:
  216. type: object
  217. properties:
  218. id:
  219. type: string
  220. description: The ID of this webhook.
  221. url:
  222. type: string
  223. description: The URL that events will be sent to.
  224. events:
  225. type: array
  226. items:
  227. type: string
  228. description: The events that will be sent to this webhook.
  229. timestamp:
  230. type: string
  231. format: date-time
  232. description: When this webhook was created.
  233. lastUsed:
  234. type: string
  235. format: date-time
  236. description: When this webhook was last used.
  237. User:
  238. type: object
  239. properties:
  240. id:
  241. type: string
  242. description: User ID
  243. example: yklw5Imng
  244. displayName:
  245. type: string
  246. description: The user-facing disaplay name for this user.
  247. example: awesome-pizza
  248. displayColor:
  249. type: integer
  250. description: Hue value for displaying in the UI.
  251. example: 42
  252. createdAt:
  253. type: string
  254. format: date-time
  255. description: When this account was originally registered/created.
  256. previousNames:
  257. type: string
  258. description: Comma separated list of names previously used by this user.
  259. example: "awesome-pizza,user42"
  260. securitySchemes:
  261. AdminBasicAuth:
  262. type: http
  263. scheme: basic
  264. description: The username for admin basic auth is `admin` and the password is the stream key.
  265. AccessToken:
  266. type: http
  267. scheme: bearer
  268. description: 3rd party integration auth where a service user must provide an access token.
  269. UserToken:
  270. type: apiKey
  271. name: accessToken
  272. in: query
  273. description: 3rd party integration auth where a service user must provide an access token.
  274. responses:
  275. UsersResponse:
  276. description: A collection of users.
  277. content:
  278. application/json:
  279. schema:
  280. $ref: "#/components/schemas/UserArray"
  281. ClientsResponse:
  282. description: Successful response of an array of clients
  283. content:
  284. application/json:
  285. schema:
  286. $ref: "#/components/schemas/ClientArray"
  287. example:
  288. - connectedAt: "2020-10-06T23:20:44.588649-07:00"
  289. messageCount: 3
  290. userAgent: >-
  291. Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36
  292. (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
  293. ipAddress: "172.217.164.110"
  294. geo:
  295. countryCode: US
  296. regionName: California
  297. timeZone: America/Los_Angeles
  298. user:
  299. id: yklw5Imng
  300. displayName: awesome-pizza
  301. displayColor: 42
  302. createdAt: "2021-07-08T20:21:25.303402404-07:00"
  303. previousNames: "awesome-pizza,coolPerson23"
  304. LogsResponse:
  305. description: Response of server log entries
  306. content:
  307. application/json:
  308. schema:
  309. $ref: "#/components/schemas/LogEntryArray"
  310. examples:
  311. success:
  312. summary: Logs returned
  313. value:
  314. [
  315. {
  316. "message": "Owncast v0.0.0-localdev (unknown)",
  317. "level": "info",
  318. "time": "2020-10-29T18:35:34.422386-07:00",
  319. },
  320. {
  321. "message": "Web server running on port: 8080",
  322. "level": "info",
  323. "time": "2020-10-29T18:35:35.011731-07:00",
  324. },
  325. {
  326. "message": "RTMP server is listening for incoming stream on port: 1935",
  327. "level": "info",
  328. "time": "2020-10-29T18:35:35.011823-07:00",
  329. },
  330. ]
  331. BasicResponse:
  332. description: Operation Success/Failure Response
  333. content:
  334. application/json:
  335. schema:
  336. $ref: "#/components/schemas/BasicResponse"
  337. examples:
  338. success:
  339. summary: Operation succeeded.
  340. value:
  341. {
  342. "success": true,
  343. "message": "context specific success message",
  344. }
  345. failure:
  346. summary: Operation failed.
  347. value:
  348. {
  349. "success": false,
  350. "message": "context specific failure message",
  351. }
  352. paths:
  353. /api/config:
  354. get:
  355. summary: Information
  356. description: The client configuration. Information useful for the user interface.
  357. tags: ["Server"]
  358. responses:
  359. "200":
  360. description: ""
  361. content:
  362. application/json:
  363. schema:
  364. $ref: "#/components/schemas/InstanceDetails"
  365. /api/ping:
  366. get:
  367. summary: Mark the current viewer as active.
  368. description: For tracking viewer count, periodically hit the ping endpoint.
  369. tags: ["Server"]
  370. responses:
  371. "200":
  372. description: "Successful ping"
  373. /api/status:
  374. get:
  375. summary: Current Status
  376. 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.
  377. tags: ["Server"]
  378. responses:
  379. "200":
  380. description: ""
  381. content:
  382. application/json:
  383. schema:
  384. type: object
  385. properties:
  386. lastConnectTime:
  387. type: string
  388. nullable: true
  389. format: date-time
  390. overallMaxViewerCount:
  391. type: integer
  392. sessionMaxViewerCount:
  393. type: integer
  394. online:
  395. type: boolean
  396. viewerCount:
  397. type: integer
  398. lastDisconnectTime:
  399. type: string
  400. nullable: true
  401. format: date-time
  402. examples:
  403. online:
  404. value:
  405. lastConnectTime: "2020-10-03T21:36:22-05:00"
  406. lastDisconnectTime: null
  407. online: true
  408. overallMaxViewerCount: 420
  409. sessionMaxViewerCount: 12
  410. viewerCount: 7
  411. /api/chat/register:
  412. post:
  413. summary: Register a chat user
  414. description: Register a user that returns an access token for accessing chat.
  415. tags: ["Chat"]
  416. security:
  417. - UserToken: []
  418. requestBody:
  419. required: false
  420. content:
  421. application/json:
  422. schema:
  423. type: object
  424. properties:
  425. displayName:
  426. type: string
  427. description: Optionally provide a display name you want to assign to this user when registering.
  428. responses:
  429. "200":
  430. description: ""
  431. content:
  432. application/json:
  433. schema:
  434. type: object
  435. properties:
  436. id:
  437. type: string
  438. description: The new user's id.
  439. accessToken:
  440. type: string
  441. description: The access token used for accessing chat.
  442. displayName:
  443. type: string
  444. description: The user-facing name displayed for this user.
  445. /api/chat:
  446. get:
  447. summary: Chat Messages Backlog
  448. description: Used to get chat messages prior to connecting to the websocket.
  449. tags: ["Chat"]
  450. security:
  451. - UserToken: []
  452. responses:
  453. "200":
  454. description: ""
  455. content:
  456. application/json:
  457. schema:
  458. type: array
  459. items:
  460. type: object
  461. properties:
  462. user:
  463. $ref: "#/components/schemas/User"
  464. body:
  465. type: string
  466. description: Escaped HTML of the chat message content.
  467. id:
  468. type: string
  469. description: Unique ID of the chat message.
  470. visible:
  471. type: boolean
  472. description: "Should chat message be visibly rendered."
  473. timestamp:
  474. type: string
  475. format: date-time
  476. /api/yp:
  477. get:
  478. summary: Yellow Pages Information
  479. description: Information to be used in the Yellow Pages service, a global directory of Owncast servers.
  480. tags: ["Server"]
  481. responses:
  482. "200":
  483. description: ""
  484. content:
  485. application/json:
  486. schema:
  487. type: object
  488. properties:
  489. name:
  490. type: string
  491. description:
  492. type: string
  493. logo:
  494. type: string
  495. nsfw:
  496. type: boolean
  497. tags:
  498. type: array
  499. items:
  500. type: string
  501. online:
  502. type: boolean
  503. viewerCount:
  504. type: integer
  505. overallMaxViewerCount:
  506. type: integer
  507. sessionMaxViewerCount:
  508. type: integer
  509. lastConnectTime:
  510. type: string
  511. nullable: true
  512. format: date-time
  513. /api/emoji:
  514. get:
  515. summary: Get Custom Emoji
  516. description: Get a list of custom emoji that are supported in chat.
  517. tags: ["Chat"]
  518. responses:
  519. "200":
  520. description: ""
  521. content:
  522. application/json:
  523. schema:
  524. type: array
  525. items:
  526. type: object
  527. properties:
  528. name:
  529. type: string
  530. description: The name of the Emoji
  531. emoji:
  532. type: string
  533. description: The relative path to the Emoji image file
  534. examples:
  535. default:
  536. value:
  537. items:
  538. - name: nicolas_cage_party
  539. emoji: /img/emoji/nicolas_cage_party.gif
  540. - name: parrot
  541. emoji: /img/emoji/parrot.gif
  542. /api/admin/status:
  543. get:
  544. summary: "Server status and broadcaster"
  545. tags: ["Admin"]
  546. security:
  547. - AdminBasicAuth: []
  548. responses:
  549. "200":
  550. description: Server status and broadcaster details
  551. content:
  552. application/json:
  553. schema:
  554. type: object
  555. properties:
  556. broadcaster:
  557. type: object
  558. properties:
  559. remoteAddr:
  560. type: string
  561. time:
  562. type: string
  563. format: date-time
  564. streamDetails:
  565. type: object
  566. properties:
  567. width:
  568. type: integer
  569. height:
  570. type: integer
  571. frameRate:
  572. type: integer
  573. videoBitrate:
  574. type: integer
  575. videoCodec:
  576. type: string
  577. audioBitrate:
  578. type: integer
  579. audioCodec:
  580. type: string
  581. encoder:
  582. type: string
  583. online:
  584. type: boolean
  585. description: Is a stream currently active
  586. viewerCount:
  587. type: integer
  588. description: The current number of viewers
  589. sessionPeakViewerCount:
  590. type: integer
  591. description: The peak number of viewers this streaming session
  592. overallPeakViewerCount:
  593. type: integer
  594. description: The all-time peak number of viewers
  595. versionNumber:
  596. type: string
  597. description: The current version of the owncast software
  598. examples:
  599. connected:
  600. summary: "Broadcaster Connected"
  601. value:
  602. broadcaster:
  603. remoteAddr: 172.217.164.110
  604. time: "2020-10-06T23:20:44.588649-07:00"
  605. streamDetails:
  606. width: 640
  607. height: 480
  608. frameRate: 24
  609. videoBitrate: 1500
  610. videoCodec: "mp4a"
  611. audioBitrate: 256
  612. audioCodec: "aac"
  613. encoder: "obs-output module (libobs version 25.0.8)"
  614. online: true
  615. viewerCount: 3
  616. overallPeakViewerCount: 4
  617. sessionPeakViewerCount: 4
  618. versionNumber: "0.0.3"
  619. /api/admin/disconnect:
  620. post:
  621. summary: Disconnect Broadcaster
  622. description: Disconnect the active inbound stream, if one exists, and terminate the broadcast.
  623. tags: ["Admin"]
  624. security:
  625. - AdminBasicAuth: []
  626. responses:
  627. "200":
  628. $ref: "#/components/responses/BasicResponse"
  629. /api/admin/yp/reset:
  630. post:
  631. summary: Reset your YP registration key.
  632. 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.
  633. tags: ["Admin"]
  634. security:
  635. - AdminBasicAuth: []
  636. responses:
  637. '200':
  638. $ref: "#/components/responses/BasicResponse"
  639. /api/admin/chat/clients:
  640. get:
  641. summary: Return a list of currently connected clients
  642. description: Return a list of currently connected clients with optional geo details.
  643. tags: ["Admin"]
  644. security:
  645. - AdminBasicAuth: []
  646. responses:
  647. "200":
  648. $ref: "#/components/responses/ClientsResponse"
  649. /api/admin/users/disabled:
  650. get:
  651. summary: Return a list of currently connected clients
  652. description: Return a list of currently connected clients with optional geo details.
  653. tags: ["Admin"]
  654. security:
  655. - AdminBasicAuth: []
  656. responses:
  657. "200":
  658. $ref: "#/components/responses/UsersResponse"
  659. /api/admin/logs:
  660. get:
  661. summary: Return recent log entries
  662. description: Returns server logs.
  663. tags: ["Admin"]
  664. security:
  665. - AdminBasicAuth: []
  666. responses:
  667. "200":
  668. $ref: "#/components/responses/LogsResponse"
  669. /api/admin/logs/warnings:
  670. get:
  671. summary: Return recent warning and error logs.
  672. description: Return recent warning and error logs.
  673. tags: ["Admin"]
  674. security:
  675. - AdminBasicAuth: []
  676. responses:
  677. "200":
  678. $ref: "#/components/responses/LogsResponse"
  679. /api/admin/serverconfig:
  680. get:
  681. summary: Server Configuration
  682. description: Get the current configuration of the Owncast server.
  683. tags: ["Admin"]
  684. security:
  685. - AdminBasicAuth: []
  686. responses:
  687. "200":
  688. description: ""
  689. content:
  690. application/json:
  691. schema:
  692. type: object
  693. properties:
  694. instanceDetails:
  695. $ref: "#/components/schemas/InstanceDetails"
  696. ffmpegPath:
  697. type: string
  698. description: The path to the copy of ffmpeg that this server is using.
  699. webServerPort:
  700. type: integer
  701. description: The port the public web server is listening on.
  702. rtmpServerPort:
  703. type: integer
  704. description: The port the inbound RTMP broadcast should be sent to.
  705. s3:
  706. $ref: "#/components/schemas/S3"
  707. videoSettings:
  708. type: object
  709. description: How the different variants of video streams are configured.
  710. properties:
  711. videoQualityVariants:
  712. type: array
  713. items:
  714. $ref: "#/components/schemas/StreamQuality"
  715. latencyLevel:
  716. type: integer
  717. description: The level of latency selected for streaming. Lower latency can create more buffering.
  718. yp:
  719. $ref: "#/components/schemas/YP"
  720. /api/admin/chat/messages:
  721. get:
  722. summary: Chat messages, unfiltered.
  723. description: Get a list of all chat messages with no filters applied.
  724. tags: ["Admin"]
  725. security:
  726. - AdminBasicAuth: []
  727. responses:
  728. "200":
  729. description: ""
  730. content:
  731. application/json:
  732. schema:
  733. type: array
  734. items:
  735. type: object
  736. properties:
  737. user:
  738. $ref: "#/components/schemas/User"
  739. body:
  740. type: string
  741. description: Escaped HTML of the chat message content.
  742. id:
  743. type: string
  744. description: Unique ID of the chat message.
  745. visible:
  746. type: boolean
  747. description: "Should chat message be visibly rendered."
  748. timestamp:
  749. type: string
  750. format: date-time
  751. /api/admin/chat/updatemessagevisibility:
  752. post:
  753. summary: Update the visibility of chat messages.
  754. description: Pass an array of IDs you want to change the chat visibility of.
  755. requestBody:
  756. content:
  757. application/json:
  758. schema:
  759. type: object
  760. properties:
  761. visible:
  762. type: boolean
  763. description: Are these messages visible.
  764. idArray:
  765. type: array
  766. items:
  767. type: string
  768. description: IDs of the chat messages you wish to change the visibility of.
  769. tags: ["Admin"]
  770. security:
  771. - AdminBasicAuth: []
  772. responses:
  773. "200":
  774. $ref: "#/components/responses/BasicResponse"
  775. /api/admin/chat/users/setenabled:
  776. post:
  777. summary: Enable or disable a single user.
  778. description: Enable or disable a single user. Disabling will also hide all the user's chat messages.
  779. requestBody:
  780. content:
  781. application/json:
  782. schema:
  783. type: object
  784. properties:
  785. userId:
  786. type: string
  787. description: User ID to act upon.
  788. example: "yklw5Imng"
  789. enabled:
  790. type: boolean
  791. description: Set the enabled state of this user.
  792. tags: ["Admin"]
  793. security:
  794. - AdminBasicAuth: []
  795. responses:
  796. "200":
  797. $ref: "#/components/responses/BasicResponse"
  798. /api/admin/config/key:
  799. post:
  800. summary: Set the stream key.
  801. description: Set the stream key. Also used as the admin password.
  802. tags: ["Admin"]
  803. security:
  804. - AdminBasicAuth: []
  805. responses:
  806. '200':
  807. $ref: "#/components/responses/BasicResponse"
  808. requestBody:
  809. content:
  810. application/json:
  811. schema:
  812. $ref: "#/components/schemas/ConfigValue"
  813. /api/admin/config/pagecontent:
  814. post:
  815. summary: Set the custom page content.
  816. description: Set the custom page content using markdown.
  817. tags: ["Admin"]
  818. security:
  819. - AdminBasicAuth: []
  820. responses:
  821. '200':
  822. $ref: "#/components/responses/BasicResponse"
  823. requestBody:
  824. content:
  825. application/json:
  826. schema:
  827. $ref: "#/components/schemas/ConfigValue"
  828. example:
  829. "# Welcome to my cool server!<br><br>I _hope_ you enjoy it."
  830. /api/admin/config/streamtitle:
  831. post:
  832. summary: Set the stream title.
  833. description: Set the title of the currently streaming content.
  834. tags: ["Admin"]
  835. security:
  836. - AdminBasicAuth: []
  837. responses:
  838. '200':
  839. $ref: "#/components/responses/BasicResponse"
  840. requestBody:
  841. content:
  842. application/json:
  843. schema:
  844. $ref: "#/components/schemas/ConfigValue"
  845. example:
  846. value: Streaming my favorite game, Desert Bus.
  847. /api/admin/config/name:
  848. post:
  849. summary: Set the server name.
  850. description: Set the name associated with your server. Often is your name, username or identity.
  851. tags: ["Admin"]
  852. security:
  853. - AdminBasicAuth: []
  854. responses:
  855. '200':
  856. $ref: "#/components/responses/BasicResponse"
  857. requestBody:
  858. content:
  859. application/json:
  860. schema:
  861. $ref: "#/components/schemas/ConfigValue"
  862. /api/admin/config/serversummary:
  863. post:
  864. summary: Set the server summary.
  865. description: Set the summary of your server's streaming content.
  866. tags: ["Admin"]
  867. security:
  868. - AdminBasicAuth: []
  869. responses:
  870. '200':
  871. $ref: "#/components/responses/BasicResponse"
  872. requestBody:
  873. content:
  874. application/json:
  875. schema:
  876. $ref: "#/components/schemas/ConfigValue"
  877. example:
  878. value: The best in Desert Bus Streaming
  879. /api/admin/config/logo:
  880. post:
  881. summary: Set the server logo.
  882. description: Set the logo for your server. Path is relative to webroot.
  883. tags: ["Admin"]
  884. security:
  885. - AdminBasicAuth: []
  886. responses:
  887. '200':
  888. $ref: "#/components/responses/BasicResponse"
  889. requestBody:
  890. content:
  891. application/json:
  892. schema:
  893. $ref: "#/components/schemas/ConfigValue"
  894. example:
  895. value: "/img/mylogo.png"
  896. /api/admin/config/tags:
  897. post:
  898. summary: Set the server tags.
  899. description: Set the tags displayed for your server and the categories you can show up in on the directory.
  900. tags: ["Admin"]
  901. security:
  902. - AdminBasicAuth: []
  903. responses:
  904. '200':
  905. $ref: "#/components/responses/BasicResponse"
  906. requestBody:
  907. content:
  908. application/json:
  909. schema:
  910. $ref: "#/components/schemas/ConfigValue"
  911. example:
  912. value:
  913. - games
  914. - music
  915. - streaming
  916. /api/admin/config/ffmpegpath:
  917. post:
  918. summary: Set the ffmpeg binary path
  919. description: Set the path for a specific copy of ffmpeg on your system.
  920. tags: ["Admin"]
  921. security:
  922. - AdminBasicAuth: []
  923. responses:
  924. '200':
  925. $ref: "#/components/responses/BasicResponse"
  926. requestBody:
  927. content:
  928. application/json:
  929. schema:
  930. $ref: "#/components/schemas/ConfigValue"
  931. example:
  932. value: "/home/owncast/ffmpeg"
  933. /api/admin/config/webserverport:
  934. post:
  935. summary: Set the owncast web port.
  936. description: Set the port the owncast web server should listen on.
  937. tags: ["Admin"]
  938. security:
  939. - AdminBasicAuth: []
  940. responses:
  941. '200':
  942. $ref: "#/components/responses/BasicResponse"
  943. requestBody:
  944. content:
  945. application/json:
  946. schema:
  947. $ref: "#/components/schemas/ConfigValue"
  948. example:
  949. value: 8080
  950. /api/admin/config/rtmpserverport:
  951. post:
  952. summary: Set the inbound rtmp server port.
  953. description: Set the port where owncast service will listen for inbound broadcasts.
  954. tags: ["Admin"]
  955. security:
  956. - AdminBasicAuth: []
  957. responses:
  958. '200':
  959. $ref: "#/components/responses/BasicResponse"
  960. requestBody:
  961. content:
  962. application/json:
  963. schema:
  964. $ref: "#/components/schemas/ConfigValue"
  965. example:
  966. value: 1935
  967. /api/admin/config/nsfw:
  968. post:
  969. summary: Mark if your stream is not safe for work
  970. description: Mark if your stream can be consitered not safe for work. Used in different contexts, including the directory for filtering purposes.
  971. tags: ["Admin"]
  972. security:
  973. - AdminBasicAuth: []
  974. responses:
  975. '200':
  976. $ref: "#/components/responses/BasicResponse"
  977. requestBody:
  978. content:
  979. application/json:
  980. schema:
  981. $ref: "#/components/schemas/ConfigValue"
  982. example:
  983. value: false
  984. /api/admin/config/directoryenabled:
  985. post:
  986. summary: Set if this server supports the Owncast directory.
  987. description: If set to true the server will attempt to register itself with the [Owncast Directory](https://directory.owncast.online). Off by default.
  988. tags: ["Admin"]
  989. security:
  990. - AdminBasicAuth: []
  991. responses:
  992. '200':
  993. $ref: "#/components/responses/BasicResponse"
  994. requestBody:
  995. content:
  996. application/json:
  997. schema:
  998. $ref: "#/components/schemas/ConfigValue"
  999. example:
  1000. value: true
  1001. /api/admin/config/serverurl:
  1002. post:
  1003. summary: Set the public url of this owncast server.
  1004. description: Set the public url of this owncast server. Used for the directory and optional integrations.
  1005. tags: ["Admin"]
  1006. security:
  1007. - AdminBasicAuth: []
  1008. responses:
  1009. '200':
  1010. $ref: "#/components/responses/BasicResponse"
  1011. requestBody:
  1012. content:
  1013. application/json:
  1014. schema:
  1015. $ref: "#/components/schemas/ConfigValue"
  1016. example:
  1017. value: https://live.mycoolserver.biz
  1018. /api/admin/config/video/streamlatencylevel:
  1019. post:
  1020. summary: Set the latency level for the stream.
  1021. 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.
  1022. tags: ["Admin"]
  1023. security:
  1024. - AdminBasicAuth: []
  1025. responses:
  1026. '200':
  1027. $ref: "#/components/responses/BasicResponse"
  1028. requestBody:
  1029. content:
  1030. application/json:
  1031. schema:
  1032. type: object
  1033. properties:
  1034. value:
  1035. description: The latency level
  1036. type: integer
  1037. example:
  1038. value: 4
  1039. /api/admin/config/video/streamoutputvariants:
  1040. post:
  1041. summary: Set the configuration of your stream output.
  1042. description: Sets the detailed configuration for all of the stream variants you support.
  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:
  1056. - framerate: 30
  1057. videoPassthrough: false
  1058. videoBitrate: 1800
  1059. cpuUsageLevel: 2
  1060. audioPassthrough: true
  1061. - framerate: 24
  1062. videoPassthrough: false
  1063. videoBitrate: 1000
  1064. cpuUsageLevel: 3
  1065. audioPassthrough: true
  1066. /api/admin/config/video/codec:
  1067. post:
  1068. summary: Set the video codec.
  1069. 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.
  1070. tags: ["Admin"]
  1071. security:
  1072. - AdminBasicAuth: []
  1073. responses:
  1074. '200':
  1075. $ref: "#/components/responses/BasicResponse"
  1076. requestBody:
  1077. content:
  1078. application/json:
  1079. schema:
  1080. type: object
  1081. properties:
  1082. value:
  1083. description: The video codec to change to.
  1084. type: string
  1085. example:
  1086. value: libx264
  1087. /api/admin/config/s3:
  1088. post:
  1089. summary: Set your storage configration.
  1090. description: Sets your S3 storage provider configuration details to enable external storage.
  1091. tags: ["Admin"]
  1092. security:
  1093. - AdminBasicAuth: []
  1094. responses:
  1095. '200':
  1096. $ref: "#/components/responses/BasicResponse"
  1097. requestBody:
  1098. content:
  1099. application/json:
  1100. schema:
  1101. $ref: "#/components/schemas/ConfigValue"
  1102. example:
  1103. value:
  1104. enabled: true
  1105. endpoint: https://s3.us-west-000.backblazeb2.com
  1106. accessKey: e1ac500y7000500047156bd060
  1107. secret: "H8FH8eSxM2K/S42CUg5K000Tt4WY2fI"
  1108. bucket: "video"
  1109. region: us-west-000
  1110. /api/admin/config/socialhandles:
  1111. post:
  1112. summary: Set your social handles.
  1113. description: Sets the external links to social networks and profiles.
  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:
  1127. - platform: github
  1128. url: https://github.com/owncast/owncast
  1129. - platform: mastodon
  1130. url: https://mastodon.social/@gabek
  1131. /api/admin/config/customstyles:
  1132. post:
  1133. summary: Custom CSS styles to be used in the web front endpoints.
  1134. description: Save a string containing CSS to be inserted in to the web frontend page.
  1135. tags: ["Admin"]
  1136. responses:
  1137. '200':
  1138. $ref: "#/components/responses/BasicResponse"
  1139. requestBody:
  1140. content:
  1141. application/json:
  1142. schema:
  1143. $ref: "#/components/schemas/ConfigValue"
  1144. example:
  1145. value: "body { color: orange; background: black; }"
  1146. /api/admin/viewersOverTime:
  1147. get:
  1148. summary: Viewers Over Time
  1149. description: Get the tracked viewer count over the collected period.
  1150. tags: ["Admin"]
  1151. security:
  1152. - AdminBasicAuth: []
  1153. responses:
  1154. "200":
  1155. description: ""
  1156. content:
  1157. application/json:
  1158. schema:
  1159. type: array
  1160. items:
  1161. $ref: "#/components/schemas/TimestampedValue"
  1162. examples:
  1163. default:
  1164. value:
  1165. - time: "2020-10-03T21:41:00.381996-05:00"
  1166. value: 50
  1167. - time: "2020-10-03T21:42:00.381996-05:00"
  1168. value: 52
  1169. /api/admin/hardwarestats:
  1170. get:
  1171. summary: Hardware Stats
  1172. description: "Get the CPU, Memory and Disk utilization levels over the collected period."
  1173. tags: ["Admin"]
  1174. security:
  1175. - AdminBasicAuth: []
  1176. responses:
  1177. "200":
  1178. description: ""
  1179. content:
  1180. application/json:
  1181. schema:
  1182. type: object
  1183. properties:
  1184. cpu:
  1185. type: array
  1186. items:
  1187. $ref: "#/components/schemas/TimestampedValue"
  1188. memory:
  1189. type: array
  1190. items:
  1191. $ref: "#/components/schemas/TimestampedValue"
  1192. disk:
  1193. type: array
  1194. items:
  1195. $ref: "#/components/schemas/TimestampedValue"
  1196. examples:
  1197. default:
  1198. value:
  1199. cpu:
  1200. - time: "2020-10-03T21:41:00.381996-05:00"
  1201. value: 23
  1202. - time: "2020-10-03T21:42:00.381996-05:00"
  1203. value: 27
  1204. - time: "2020-10-03T21:43:00.381996-05:00"
  1205. value: 22
  1206. memory:
  1207. - time: "2020-10-03T21:41:00.381996-05:00"
  1208. value: 65
  1209. - time: "2020-10-03T21:42:00.381996-05:00"
  1210. value: 66
  1211. - time: "2020-10-03T21:43:00.381996-05:00"
  1212. value: 72
  1213. disk:
  1214. - time: "2020-10-03T21:41:00.381996-05:00"
  1215. value: 11
  1216. - time: "2020-10-03T21:42:00.381996-05:00"
  1217. value: 11
  1218. - time: "2020-10-03T21:43:00.381996-05:00"
  1219. value: 11
  1220. /api/integrations/streamtitle:
  1221. post:
  1222. summary: Set the stream title.
  1223. description: Set the title of the currently streaming content.
  1224. tags: ["Integrations"]
  1225. security:
  1226. - AccessToken: []
  1227. responses:
  1228. '200':
  1229. $ref: "#/components/responses/BasicResponse"
  1230. requestBody:
  1231. content:
  1232. application/json:
  1233. schema:
  1234. $ref: "#/components/schemas/ConfigValue"
  1235. example:
  1236. value: Streaming my favorite game, Desert Bus.
  1237. /api/integrations/chat/send:
  1238. post:
  1239. summary: Send a chat message.
  1240. description: Send a chat message on behalf of a 3rd party integration, bot or service.
  1241. tags: ["Integrations"]
  1242. security:
  1243. - AccessToken: []
  1244. requestBody:
  1245. required: true
  1246. content:
  1247. application/json:
  1248. schema:
  1249. type: object
  1250. properties:
  1251. body:
  1252. type: string
  1253. description: The message text that will be sent as the user.
  1254. responses:
  1255. "200":
  1256. description: Message was sent.
  1257. content:
  1258. application/json:
  1259. schema:
  1260. type: object
  1261. properties:
  1262. success:
  1263. type: boolean
  1264. example: true
  1265. message:
  1266. type: string
  1267. example: sent
  1268. /api/integrations/chat/system:
  1269. post:
  1270. summary: Send a system chat message.
  1271. description: Send a chat message on behalf of the system/server.
  1272. tags: ["Integrations"]
  1273. security:
  1274. - AccessToken: []
  1275. requestBody:
  1276. required: true
  1277. content:
  1278. application/json:
  1279. schema:
  1280. type: object
  1281. properties:
  1282. body:
  1283. type: string
  1284. description: The message text that will be sent as the system user.
  1285. responses:
  1286. "200":
  1287. description: Message was sent.
  1288. content:
  1289. application/json:
  1290. schema:
  1291. type: object
  1292. properties:
  1293. success:
  1294. type: boolean
  1295. example: true
  1296. message:
  1297. type: string
  1298. example: sent
  1299. /api/integrations/chat/action:
  1300. post:
  1301. summary: Send a chat action.
  1302. description: Send an action that took place to the chat.
  1303. tags: ["Integrations"]
  1304. security:
  1305. - AccessToken: []
  1306. requestBody:
  1307. required: true
  1308. content:
  1309. application/json:
  1310. schema:
  1311. type: object
  1312. required:
  1313. - "body"
  1314. properties:
  1315. body:
  1316. type: string
  1317. description: The message text that will be sent as the system user.
  1318. example: "rolled a 15 on the dice"
  1319. author:
  1320. type: string
  1321. description: An optional user name that performed the action.
  1322. example: "JohnSmith"
  1323. responses:
  1324. "200":
  1325. description: Message was sent.
  1326. content:
  1327. application/json:
  1328. schema:
  1329. type: object
  1330. properties:
  1331. success:
  1332. type: boolean
  1333. example: true
  1334. message:
  1335. type: string
  1336. example: sent
  1337. /api/integrations/chat/system/client/{clientId}:
  1338. post:
  1339. summary: Send system chat message to a client, identified by its ClientId
  1340. description: Send a chat message on behalf of the system/server to a single client.
  1341. tags: ["Integrations"]
  1342. security:
  1343. - AccessToken: []
  1344. parameters:
  1345. - name: clientId
  1346. in: path
  1347. description: Client ID (a unique numeric Id, identifying the client connection)
  1348. required: true
  1349. schema:
  1350. type: integer
  1351. format: int64
  1352. requestBody:
  1353. required: true
  1354. content:
  1355. application/json:
  1356. schema:
  1357. type: object
  1358. required:
  1359. - "body"
  1360. properties:
  1361. body:
  1362. type: string
  1363. description: The message text that will be sent to the client.
  1364. example: "What a beautiful day. I love it"
  1365. responses:
  1366. "200":
  1367. description: Message was sent.
  1368. content:
  1369. application/json:
  1370. schema:
  1371. type: object
  1372. properties:
  1373. success:
  1374. type: boolean
  1375. example: true
  1376. messages:
  1377. type: string
  1378. example: sent
  1379. "500":
  1380. description: Message was not sent to the client
  1381. content:
  1382. application/json:
  1383. schema:
  1384. type: object
  1385. properties:
  1386. error:
  1387. type: string
  1388. description: message explaining what went wrong sending the message to the client
  1389. /api/admin/accesstokens/create:
  1390. post:
  1391. summary: Create an access token.
  1392. description: Create a single access token that has access to the access scopes provided.
  1393. tags: ["Integrations"]
  1394. security:
  1395. - AdminBasicAuth: []
  1396. requestBody:
  1397. required: true
  1398. content:
  1399. application/json:
  1400. schema:
  1401. type: object
  1402. properties:
  1403. name:
  1404. type: string
  1405. description: The human-readable name to give this access token.
  1406. scopes:
  1407. type: array
  1408. items:
  1409. type: string
  1410. responses:
  1411. "200":
  1412. description: Token was created.
  1413. content:
  1414. application/json:
  1415. schema:
  1416. type: object
  1417. properties:
  1418. name:
  1419. type: string
  1420. example: your new token
  1421. token:
  1422. type: string
  1423. example: "zG2xO-mHTFnelCp5xaIkYEFWcPhoOswOSRmFC1BkI="
  1424. /api/admin/accesstokens/delete:
  1425. post:
  1426. summary: Delete an access token.
  1427. description: Delete a single access token.
  1428. tags: ["Integrations"]
  1429. security:
  1430. - AdminBasicAuth: []
  1431. requestBody:
  1432. required: true
  1433. content:
  1434. application/json:
  1435. schema:
  1436. type: object
  1437. properties:
  1438. token:
  1439. type: string
  1440. description: The token to delete
  1441. responses:
  1442. "200":
  1443. description: Token was deleted.
  1444. content:
  1445. application/json:
  1446. schema:
  1447. type: object
  1448. properties:
  1449. success:
  1450. type: boolean
  1451. example: true
  1452. message:
  1453. type: string
  1454. example: deleted token
  1455. /api/admin/accesstokens:
  1456. get:
  1457. summary: Return all access tokens.
  1458. description: Return all of the available access tokens.
  1459. tags: ["Integrations"]
  1460. security:
  1461. - AdminBasicAuth: []
  1462. responses:
  1463. "200":
  1464. description: Tokens are returned
  1465. content:
  1466. application/json:
  1467. schema:
  1468. type: array
  1469. items:
  1470. type: string
  1471. /api/admin/webhooks:
  1472. get:
  1473. summary: Return all webhooks.
  1474. description: Return all of the configured webhooks for external events.
  1475. tags: ["Admin"]
  1476. security:
  1477. - AdminBasicAuth: []
  1478. responses:
  1479. "200":
  1480. description: Webhooks are returned
  1481. content:
  1482. application/json:
  1483. schema:
  1484. $ref: "#/components/schemas/Webhook"
  1485. /api/admin/config/externalactions:
  1486. post:
  1487. summary: Set external action URLs.
  1488. description: Set a collection of external action URLs that are displayed in the UI.
  1489. tags: ["Admin", "Integrations"]
  1490. security:
  1491. - AdminBasicAuth: []
  1492. requestBody:
  1493. required: true
  1494. content:
  1495. application/json:
  1496. schema:
  1497. type: array
  1498. items:
  1499. type: object
  1500. properties:
  1501. url:
  1502. type: string
  1503. description: URL of the external action content.
  1504. title:
  1505. type: string
  1506. description: The title to put on the external action button.
  1507. description:
  1508. type: string
  1509. description: Optional additional description to display in the UI.
  1510. icon:
  1511. type: string
  1512. description: The URL to an image to place on the external action button.
  1513. color:
  1514. type: string
  1515. description: Optional color to use for drawing the action button.
  1516. openExternally:
  1517. type: boolean
  1518. description: If set this action will open in a new browser tab instead of an internal modal.
  1519. responses:
  1520. "200":
  1521. description: Actions have been updated.
  1522. /api/admin/webhooks/delete:
  1523. post:
  1524. summary: Delete a single webhook.
  1525. description: Delete a single webhook by its ID.
  1526. tags: ["Admin"]
  1527. security:
  1528. - AdminBasicAuth: []
  1529. requestBody:
  1530. required: true
  1531. content:
  1532. application/json:
  1533. schema:
  1534. type: object
  1535. properties:
  1536. id:
  1537. type: string
  1538. description: The webhook id to delete
  1539. responses:
  1540. "200":
  1541. description: Webhook is deleted
  1542. /api/admin/webhooks/create:
  1543. post:
  1544. summary: Create a webhook.
  1545. description: Create a single webhook that acts on the requested events.
  1546. tags: ["Admin"]
  1547. security:
  1548. - AdminBasicAuth: []
  1549. requestBody:
  1550. required: true
  1551. content:
  1552. application/json:
  1553. schema:
  1554. type: object
  1555. properties:
  1556. url:
  1557. type: string
  1558. description: The url to post the events to.
  1559. events:
  1560. description: The events to be notified about.
  1561. type: array
  1562. items:
  1563. type: string
  1564. responses:
  1565. "200":
  1566. description: Token was created.
  1567. content:
  1568. application/json:
  1569. schema:
  1570. type: object
  1571. properties:
  1572. name:
  1573. type: string
  1574. example: your new token
  1575. token:
  1576. type: string
  1577. example: "zG2xO-mHTFnelCp5xaIkYEFWcPhoOswOSRmFC1BkI="
  1578. /api/integrations/clients:
  1579. get:
  1580. summary: Return a list of currently connected clients
  1581. description: Return a list of currently connected clients with optional geo details.
  1582. tags: ["Integrations"]
  1583. security:
  1584. - AccessToken: []
  1585. responses:
  1586. "200":
  1587. $ref: "#/components/responses/ClientsResponse"
  1588. /api/integrations/chat:
  1589. get:
  1590. summary: Historical Chat Messages
  1591. description: Used to get the backlog of chat messages.
  1592. tags: ["Integrations"]
  1593. security:
  1594. - AccessToken: []
  1595. responses:
  1596. "200":
  1597. description: ""
  1598. content:
  1599. application/json:
  1600. schema:
  1601. type: array
  1602. items:
  1603. type: object
  1604. properties:
  1605. user:
  1606. $ref: "#/components/schemas/User"
  1607. body:
  1608. type: string
  1609. description: Escaped HTML of the chat message content.
  1610. id:
  1611. type: string
  1612. description: Unique ID of the chat message.
  1613. visible:
  1614. type: boolean
  1615. description: "Should chat message be visibly rendered."
  1616. timestamp:
  1617. type: string
  1618. format: date-time
  1619. /api/integrations/chat/updatemessagevisibility:
  1620. post:
  1621. summary: Update the visibility of chat messages.
  1622. description: Pass an array of IDs you want to change the chat visibility of.
  1623. requestBody:
  1624. content:
  1625. application/json:
  1626. schema:
  1627. type: object
  1628. properties:
  1629. visible:
  1630. type: boolean
  1631. description: Are these messages visible.
  1632. idArray:
  1633. type: array
  1634. items:
  1635. type: string
  1636. description: IDs of the chat messages you wish to change the visibility of.
  1637. tags: ["Integrations"]
  1638. security:
  1639. - AccessToken: []
  1640. responses:
  1641. "200":
  1642. $ref: "#/components/responses/BasicResponse"