Using our REST API endpoints a developer can manage all things related to Daily rooms, meeting tokens, recordings, domains, metrics and logs.
Your domain’s API key is available in the Developers section of the Daily dashboard.Admins can view and regenerate your team’s API key. Members do not have access to it.If you need the key, ask an Admin on your team to send it to you, or ask them to change your role to Admin. See dashboard user roles for what each role can do.Staging and testing: Daily doesn’t support adding a second domain to an existing account. To create a staging environment, sign up for a separate Daily account using a variant of your domain name (e.g. yourdomain-dev). The staging API key is immediately available under Developers in the dashboard.
HTTPS is required for all Daily REST API requests.
The complete Daily REST API is described by an OpenAPI 3.0 specification: https://docs.daily.co/openapi.json. Use it to generate API clients, import the API into tools like Postman, or give an AI agent the full API schema in a single machine-readable file.
The Daily API uses API keys to authenticate requests.Almost all of the Daily API endpoints require that you include your API key in the Authorization header of your HTTPS request. For example:
Each API key is tied to a specific Daily domain.You should keep your API key secret. Never use the API key in client-side web browser code, for example.If an API call requires authentication, but no Authorization: Bearer header is present, we return an HTTP 400 error, with a body that includes an error parameter set to the string "authorization-header-error".If an API call requires authentication but the API key provided in the authorization header isn’t valid, we return an HTTP 401 error, with a body that includes an error parameter set to the string "authentication-error".
Daily uses rate limiting to ensure the stability of the API across all of Daily’s users. If you make lots of requests in succession, you may see 429 status codes returned by the API with error: "rate-limit-error". Limits are counted per API key, per endpoint, and different groups of endpoints have different limits.
For most of our API endpoints, including POST /rooms, DELETE /rooms/:name, GET /rooms, presence, and webhooks, you can expect a limit of 99 requests over a 5 second window.
For analytics and data endpoints, including GET /meetings, GET /recordings, usage, API and webhook logs, transcripts, the batch processor, phone numbers, verified caller IDs, SIP trunks, and domain dial-in config, you can expect 49 requests over a 30 second window.
For starting a dial-out, starting a dial-in, and starting a live stream, you can expect 4 requests over a 5 second window. These three share one budget: a dial-out start and a live stream start with the same API key both count against the same window.
For starting a recording, you can expect 4 requests over a 5 second window. Starting a recording has its own separate budget, so it does not use up any of the budget shared by dial-out, dial-in, and live streaming. That means you can start a recording and start a dial-out at the same moment without one crowding out the other.
For batch room create and batch room delete, you can expect 9 requests over a 30 second window. Each of these requests can include up to 1000 rooms, and creates still count toward your account’s room limit.
POST /meeting-tokens does not currently have a per-endpoint rate limit. If you need to issue a large number of tokens at once, consider self-signing tokens instead of calling the API for each one.
These are the number of requests that succeed in each window. The next request in the same window gets a 429.You should attempt to retry 429 status codes in order to handle limiting gracefully. A good technique to apply here is to retry your requests with an exponential backoff schedule to help reduce your request volume over each window. Many HTTP clients offer this as a configuration option out of the box.In order to ensure stability and prevent abuse, we may alter the stated limits. Contact support if you need to increase your API limits.
The Daily API endpoints all return errors, wherever possible, as HTTP 4xx or 5xx error responses.Error response bodies generally include two parameters: error, and info. The error parameter is a string indicating an error type, and the info parameter fills in a bit more human readable information, wherever available.The error types are stable; we don’t expect to change them (though we’ll likely add new error types over time.) But please treat the info strings only as additional information you use while developing and debugging. Content of the info parameter is not fixed and may change as we improve error feedback.
The Authorization header is missing or badly formatted.
forbidden-error
The API key is valid but the requested resource is forbidden.
json-parsing-error
The JSON request body could not be parsed.
invalid-request-error
The request could not be performed. More information is usually available in the info field of the response body. Typical causes are missing required parameters, bad parameter values, etc.
rate-limit-error
Too many requests were sent in too short a period of time. Please throttle your request rate.
The list rooms and list recordings API endpoints return a maximum of 100 data objects at one time, and accept pagination arguments in their query strings.All pagination arguments are optional. Without any pagination arguments, the list methods return up to 100 data objects, sorted in reverse chronological order by creation time.It’s helpful to think of pagination arguments in terms of defining “pages” of results.
The limit argument sets the size of the page (how many objects each page contains), and defaults to a value of 100.
The starting_after argument sets the starting point of the page and is used to fetch “subsequent” pages of results — as if you were paging through a book from front to back.
The ending_before argument is the opposite, and is used to fetch previous pages of results — as if you were paging through a book from back to front.
A special ending_before argument, OLDEST, is available to facilitate fetching pages of results “backwards,” from oldest objects to newest.
Note that the granularity for created_at timestamps is one second. The returned list order is stable, because id is the secondary sort field. But if you create multiple rooms within a 1-second window, the list order may not be precisely reverse-chronological.
Pagination argument
Description
limit
A limit on the number of objects to be returned. Maximum value is 100. Default value (if not supplied) is 100.
starting_after
An object ID to be used as a pagination cursor. The first object returned will be the object immediately after the object with this id. Commonly used to fetch the “next” page of results.
ending_before
The opposite of starting_after. The last page of returned results will be the object immediately preceding the object with this id. The special value OLDEST fetches the “last” page of results (the page containing the objects created longest ago).
# List your five most recently created roomscurl -H "Content-Type: application/json" \ -H "Authorization: Bearer DAILY_API_KEY" \ https://api.daily.co/v1/rooms?limit=5
# List your five oldest roomscurl -H "Content-Type: application/json" \ -H "Authorization: Bearer DAILY_API_KEY" \ https://api.daily.co/v1/rooms?limit=5&ending_before=OLDEST
// Get first page of resultslet rooms = getPageOfRooms({ endpoint: 'https://api.daily.co/v1/rooms',});while (rooms.data.length > 0) { for (var i = 0; i < rooms.data.length; i++) { doSomeStuff(rooms.data[i]); } // Fetch next page rooms = getPageOfRooms({ endpoint: 'https://api.daily.co/v1/rooms?starting_after=' + rooms.data[rooms.data.length - 1].id, });}
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Daily","colors":{"primary":"#FF6E4A","light":"#FF6E4A","dark":"#141c24"},"logo":{"light":"https://mintcdn.com/daily-co/UZ5SeZfPxiPGRDvT/logo/light.svg?fit=max\u0026auto=format\u0026n=UZ5SeZfPxiPGRDvT\u0026q=85\u0026s=e96bdb062d7c5b0d12c9b0e155ca32ee","dark":"https://mintcdn.com/daily-co/UZ5SeZfPxiPGRDvT/logo/dark.svg?fit=max\u0026auto=format\u0026n=UZ5SeZfPxiPGRDvT\u0026q=85\u0026s=f537bd7ef1b96c7b50130240a5a98111"},"favicon":"https://mintcdn.com/daily-co/UZ5SeZfPxiPGRDvT/favicon.ico?fit=max\u0026auto=format\u0026n=UZ5SeZfPxiPGRDvT\u0026q=85\u0026s=c35fb5852ca7a1df9ca8a63ef3a9b26b","api":{"openapi":"openapi.json","mdx":{"auth":{"method":"bearer"}}},"navbar":{"links":[{"icon":"discord","href":"https://discord.com/invite/dailyco","label":"Discord"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.daily.co"}},"footer":{"socials":{"x":"https://x.com/dailyco","github":"https://github.com/daily-co","discord":"https://discord.com/invite/dailyco"},"links":[{"header":"Company","items":[{"label":"Blog","href":"https://blog.daily.co"},{"label":"Pipecat","href":"https://docs.pipecat.ai"}]}]},"integrations":{"cookies":{"key":"daily_analytics_consent","value":"granted"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"daily-co","hasAudioNarration":false,"actualSubdomain":"daily-co","customDomains":["docs.daily.co"],"gitSource":{"type":"github","owner":"daily-co","repo":"daily-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"c517bf74-a3b0-4408-a32c-fd3e07743699","liveDeploymentHistoryId":"6ada298d959c31025f5842e1","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ada298d959c31025f5842e1"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ada298d959c31025f5842e1","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Reference","count":411},{"language":"default","tag":"Instance Methods","count":202},{"language":"default","tag":"Daily JS","count":168},{"language":"default","tag":"Documentation","count":121},{"language":"default","tag":"REST API","count":118},{"language":"default","tag":"React Native","count":110},{"language":"default","tag":"Daily React","count":60},{"language":"default","tag":"Events","count":58},{"language":"default","tag":"Guides","count":40},{"language":"default","tag":"Hooks","count":39}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":".peer.is-center~.peer-\\[\\.is-center\\]\\:max-w-3xl{max-width:75rem;padding:0 3rem}"}],"page":{"pagePath":"docs/rest-api","slug":"/docs/rest-api","pageMetadata":{"title":"REST API","sidebarTitle":"Overview","description":"Using our REST API endpoints a developer can manage all things related to Daily rooms, meeting tokens, recordings, domains, metrics and logs.","href":"/docs/rest-api/index"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Using our REST API endpoints a developer can manage all things related to Daily rooms, meeting tokens, recordings, domains, metrics and logs.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Your domain’s API key is available in the `,_jsx(_components.strong,{children:`Developers`}),` section of the Daily `,_jsx(_components.a,{href:`https://dashboard.daily.co/`,children:`dashboard`}),`.`]}),`\n`,_jsx(_components.p,{children:`Admins can view and regenerate your team’s API key. Members do not have access to it.`}),`\n`,_jsxs(_components.p,{children:[`If you need the key, ask an Admin on your team to send it to you, or ask them to change your role to Admin. See `,_jsx(_components.a,{href:`/docs/guides/architecture-and-monitoring/experiment-in-the-dashboard#user-roles`,children:`dashboard user roles`}),` for what each role can do.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Staging and testing:`}),` Daily doesn’t support adding a second domain to an existing account. To create a staging environment, sign up for a separate Daily account using a variant of your domain name (e.g. `,_jsx(_components.code,{children:`yourdomain-dev`}),`). The staging API key is immediately available under `,_jsx(_components.strong,{children:`Developers`}),` in the dashboard.`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`HTTPS is required for all Daily REST API requests.`})}),`\n`,_jsx(Heading,{level:`2`,id:`openapi-specification`,children:`OpenAPI specification`}),`\n`,_jsxs(_components.p,{children:[`The complete Daily REST API is described by an OpenAPI 3.0 specification: `,_jsx(_components.a,{href:`https://docs.daily.co/openapi.json`,children:`https://docs.daily.co/openapi.json`}),`. Use it to generate API clients, import the API into tools like Postman, or give an AI agent the full API schema in a single machine-readable file.`]}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`The Daily API uses API keys to authenticate requests.`})}),`\n`,_jsxs(_components.p,{children:[`Almost all of the Daily API endpoints require that you include your API key in the `,_jsx(_components.code,{children:`Authorization`}),` header of your HTTPS request. For example:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.daily.co/v1/rooms`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer DAILY_API_KEY\"`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Each API key is tied to a specific Daily domain.`}),`\n`,_jsxs(_components.p,{children:[`You should keep your API key secret. `,_jsx(_components.strong,{children:`Never use the API key in client-side web browser code`}),`, for example.`]}),`\n`,_jsxs(_components.p,{children:[`If an API call requires authentication, but no `,_jsx(_components.code,{children:`Authorization: Bearer`}),` header is present, we return an HTTP `,_jsx(_components.code,{children:`400`}),` error, with a body that includes an `,_jsx(_components.code,{children:`error`}),` parameter set to the string `,_jsx(_components.code,{children:`\"authorization-header-error\"`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`If an API call requires authentication but the API key provided in the authorization header isn’t valid, we return an HTTP `,_jsx(_components.code,{children:`401`}),` error, with a body that includes an `,_jsx(_components.code,{children:`error`}),` parameter set to the string `,_jsx(_components.code,{children:`\"authentication-error\"`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`rate-limits`,children:`Rate limits`}),`\n`,_jsxs(_components.p,{children:[`Daily uses rate limiting to ensure the stability of the API across all of Daily’s users. If you make lots of requests in succession, you may see `,_jsx(_components.code,{children:`429`}),` status codes returned by the API with `,_jsx(_components.code,{children:`error: \"rate-limit-error\"`}),`. Limits are counted per API key, per endpoint, and different groups of endpoints have different limits.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`For most of our API endpoints, including `,_jsx(_components.a,{href:`/reference/rest-api/rooms/create-room`,children:`POST /rooms`}),`, `,_jsx(_components.a,{href:`/reference/rest-api/rooms/delete-room`,children:`DELETE /rooms/:name`}),`, `,_jsx(_components.a,{href:`/reference/rest-api/rooms/list-rooms`,children:`GET /rooms`}),`, presence, and webhooks, you can expect a limit of `,_jsx(_components.code,{children:`99`}),` requests over a `,_jsx(_components.code,{children:`5`}),` second window.`]}),`\n`,_jsxs(_components.li,{children:[`For analytics and data endpoints, including `,_jsx(_components.a,{href:`/reference/rest-api/meetings/list-meetings`,children:`GET /meetings`}),`, `,_jsx(_components.a,{href:`/reference/rest-api/recordings/list-recordings`,children:`GET /recordings`}),`, usage, API and webhook logs, transcripts, the batch processor, phone numbers, verified caller IDs, SIP trunks, and domain dial-in config, you can expect `,_jsx(_components.code,{children:`49`}),` requests over a `,_jsx(_components.code,{children:`30`}),` second window.`]}),`\n`,_jsxs(_components.li,{children:[`For starting a dial-out, starting a dial-in, and starting a live stream, you can expect `,_jsx(_components.code,{children:`4`}),` requests over a `,_jsx(_components.code,{children:`5`}),` second window. These three share one budget: a dial-out start and a live stream start with the same API key both count against the same window.`]}),`\n`,_jsxs(_components.li,{children:[`For starting a recording, you can expect `,_jsx(_components.code,{children:`4`}),` requests over a `,_jsx(_components.code,{children:`5`}),` second window. Starting a recording has its own separate budget, so it does not use up any of the budget shared by dial-out, dial-in, and live streaming. That means you can start a recording and start a dial-out at the same moment without one crowding out the other.`]}),`\n`,_jsxs(_components.li,{children:[`For `,_jsx(_components.a,{href:`/reference/rest-api/batch/create-rooms`,children:`batch room create`}),` and `,_jsx(_components.a,{href:`/reference/rest-api/batch/delete-rooms`,children:`batch room delete`}),`, you can expect `,_jsx(_components.code,{children:`9`}),` requests over a `,_jsx(_components.code,{children:`30`}),` second window. Each of these requests can include up to `,_jsx(_components.code,{children:`1000`}),` rooms, and creates still count toward your account’s room limit.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/reference/rest-api/meeting-tokens/create-meeting-token`,children:`POST /meeting-tokens`}),` does not currently have a per-endpoint rate limit. If you need to issue a large number of tokens at once, consider `,_jsx(_components.a,{href:`/docs/guides/privacy-and-security/self-signing-tokens`,children:`self-signing tokens`}),` instead of calling the API for each one.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`These are the number of requests that succeed in each window. The next request in the same window gets a `,_jsx(_components.code,{children:`429`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`You should attempt to retry `,_jsx(_components.code,{children:`429`}),` status codes in order to handle limiting gracefully. A good technique to apply here is to retry your requests with an `,_jsx(_components.a,{href:`https://en.wikipedia.org/wiki/Exponential_backoff`,children:`exponential backoff schedule`}),` to help reduce your request volume over each window. Many HTTP clients offer this as a configuration option out of the box.`]}),`\n`,_jsxs(_components.p,{children:[`In order to ensure stability and prevent abuse, we may alter the stated limits. `,_jsx(_components.a,{href:`https://www.daily.co/contact/support`,children:`Contact support`}),` if you need to increase your API limits.`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(_components.p,{children:[`The Daily API endpoints all return errors, wherever possible, as HTTP `,_jsx(_components.code,{children:`4xx`}),` or `,_jsx(_components.code,{children:`5xx`}),` error responses.`]}),`\n`,_jsxs(_components.p,{children:[`Error response bodies generally include two parameters: `,_jsx(_components.code,{children:`error`}),`, and `,_jsx(_components.code,{children:`info`}),`. The `,_jsx(_components.code,{children:`error`}),` parameter is a string indicating an error type, and the `,_jsx(_components.code,{children:`info`}),` parameter fills in a bit more human readable information, wherever available.`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`error`}),` types are stable; we don’t expect to change them (though we’ll likely add new error types over time.) But please treat the `,_jsx(_components.code,{children:`info`}),` strings only as additional information you use while developing and debugging. Content of the `,_jsx(_components.code,{children:`info`}),` parameter is `,_jsx(_components.em,{children:`not`}),` fixed and may change as we improve error feedback.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"invalid-request-error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"info\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bad Authorization header format\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`http-status-codes`,children:`HTTP status codes`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`HTTP status code`}),_jsx(_components.th,{children:`Response`}),_jsx(_components.th,{children:`Interpretation`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`200`}),_jsx(_components.td,{children:`OK`}),_jsx(_components.td,{children:`Everything worked as expected.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:`Bad Request`}),_jsx(_components.td,{children:`The operation could not be performed as requested.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsx(_components.td,{children:`Unauthorized`}),_jsx(_components.td,{children:`The provided API key was not valid.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsx(_components.td,{children:`Forbidden`}),_jsx(_components.td,{children:`The API key was valid but the requested resource was forbidden.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`404`}),_jsx(_components.td,{children:`Not Found`}),_jsx(_components.td,{children:`The requested REST resource did not exist.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`429`}),_jsx(_components.td,{children:`Too Many Requests`}),_jsx(_components.td,{children:`Too many requests were sent in too short a period of time. Please throttle your request rate.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`5xx`}),_jsx(_components.td,{children:`Server Errors`}),_jsx(_components.td,{children:`Something unexpected happened on the server side. Please ping us to report this, if possible.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`error-types`,children:`Error types`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Error string`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`authentication-error`}),_jsx(_components.td,{children:`The API key is not valid.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`authorization-header-error`}),_jsx(_components.td,{children:`The Authorization header is missing or badly formatted.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`forbidden-error`}),_jsx(_components.td,{children:`The API key is valid but the requested resource is forbidden.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`json-parsing-error`}),_jsx(_components.td,{children:`The JSON request body could not be parsed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`invalid-request-error`}),_jsxs(_components.td,{children:[`The request could not be performed. More information is usually available in the `,_jsx(_components.code,{children:`info`}),` field of the response body. Typical causes are missing required parameters, bad parameter values, etc.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`rate-limit-error`}),_jsx(_components.td,{children:`Too many requests were sent in too short a period of time. Please throttle your request rate.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`server-error`}),_jsx(_components.td,{children:`Something unexpected went wrong.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`pagination`,children:`Pagination`}),`\n`,_jsx(Heading,{level:`3`,id:`fetching-100-results-at-a-time`,children:`Fetching 100 results at a time`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`/reference/rest-api/rooms/list-rooms`,children:`list rooms`}),` and `,_jsx(_components.a,{href:`/reference/rest-api/recordings/list-recordings`,children:`list recordings`}),` API endpoints return a maximum of 100 data objects at one time, and accept pagination arguments in their query strings.`]}),`\n`,_jsx(_components.p,{children:`All pagination arguments are optional. Without any pagination arguments, the list methods return up to 100 data objects, sorted in reverse chronological order by creation time.`}),`\n`,_jsx(_components.p,{children:`It’s helpful to think of pagination arguments in terms of defining “pages” of results.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`limit`}),` argument sets the size of the page (how many objects each page contains), and defaults to a value of 100.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`starting_after`}),` argument sets the starting point of the page and is used to fetch “subsequent” pages of results — as if you were paging through a book from front to back.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`ending_before`}),` argument is the opposite, and is used to fetch previous pages of results — as if you were paging through a book from back to front.`]}),`\n`,_jsxs(_components.li,{children:[`A special `,_jsx(_components.code,{children:`ending_before`}),` argument, `,_jsx(_components.code,{children:`OLDEST`}),`, is available to facilitate fetching pages of results “backwards,” from oldest objects to newest.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Note that the granularity for `,_jsx(_components.code,{children:`created_at`}),` timestamps is one second. The returned list order is stable, because `,_jsx(_components.code,{children:`id`}),` is the secondary sort field. But if you create multiple rooms within a 1-second window, the list order may not be `,_jsx(_components.em,{children:`precisely`}),` reverse-chronological.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Pagination argument`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`limit`}),_jsx(_components.td,{children:`A limit on the number of objects to be returned. Maximum value is 100. Default value (if not supplied) is 100.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`starting_after`}),_jsx(_components.td,{children:`An object ID to be used as a pagination cursor. The first object returned will be the object immediately after the object with this id. Commonly used to fetch the “next” page of results.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`ending_before`}),_jsxs(_components.td,{children:[`The opposite of `,_jsx(_components.code,{children:`starting_after`}),`. The last page of returned results will be the object immediately preceding the object with this id. The special value `,_jsx(_components.code,{children:`OLDEST`}),` fetches the “last” page of results (the page containing the objects created longest ago).`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`examples`,children:`Examples`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# List your five most recently created rooms`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer DAILY_API_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.daily.co/v1/rooms?limit=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`5`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# List your five oldest rooms`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer DAILY_API_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.daily.co/v1/rooms?limit=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ending_before`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`OLDEST`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`pseudocode-for-fetching-all-results`,children:`Pseudocode for fetching all results`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Get first page of results`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` rooms`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getPageOfRooms`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` endpoint:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api.daily.co/v1/rooms'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`while`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`rooms`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`length`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` i`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`i`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` rooms`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`length`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`i`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`++`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` doSomeStuff`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`rooms`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`i`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Fetch next page`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` rooms`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getPageOfRooms`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` endpoint:`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api.daily.co/v1/rooms?starting_after='`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` +`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` rooms`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`rooms`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`length`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` -`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`].`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"REST API","sidebarTitle":"Overview","description":"Using our REST API endpoints a developer can manage all things related to Daily rooms, meeting tokens, recordings, domains, metrics and logs.","href":"/docs/rest-api/index"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"OpenAPI specification","slug":"openapi-specification","depth":2,"children":[]},{"title":"Authentication","slug":"authentication","depth":2,"children":[]},{"title":"Rate limits","slug":"rate-limits","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[{"title":"HTTP status codes","slug":"http-status-codes","depth":3,"children":[]},{"title":"Error types","slug":"error-types","depth":3,"children":[]}]},{"title":"Pagination","slug":"pagination","depth":2,"children":[{"title":"Fetching 100 results at a time","slug":"fetching-100-results-at-a-time","depth":3,"children":[]},{"title":"Examples","slug":"examples","depth":3,"children":[]},{"title":"Pseudocode for fetching all results","slug":"pseudocode-for-fetching-all-results","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/daily-co/b09599f26eb2661c/kapa-widget.js","/_mintlify/custom/daily-co/7fcc8ce029135af3/gtm.js"],"subdomain":"daily-co","siteName":"Daily","title":"REST API - Daily","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-14T02:58:00.109Z","originalFileLocation":"docs/rest-api/index.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Using our REST API endpoints a developer can manage all things related to Daily rooms, meeting tokens, recordings, domains, metrics and logs.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Daily\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/daily-co/Zqz2RGzK123gGV7q/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/daily-co/Zqz2RGzK123gGV7q/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/daily-co/Zqz2RGzK123gGV7q/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/daily-co/Zqz2RGzK123gGV7q/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/daily-co/Zqz2RGzK123gGV7q/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/daily-co/Zqz2RGzK123gGV7q/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/daily-co/Zqz2RGzK123gGV7q/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/daily-co/Zqz2RGzK123gGV7q/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/daily-co/Zqz2RGzK123gGV7q/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"REST API - Daily\">\u003cmeta data-mint-head property=\"og:description\" content=\"Using our REST API endpoints a developer can manage all things related to Daily rooms, meeting tokens, recordings, domains, metrics and logs.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Daily\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.daily.co/docs/rest-api\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://daily-co.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=REST+API\u0026amp;description=Using+our+REST+API+endpoints+a+developer+can+manage+all+things+related+to+Daily+rooms%2C+meeting+tokens%2C+recordings%2C+domains%2C+metrics+and+logs.\u0026amp;theme=15766adf3c4c0f043ee3c760\u0026amp;signature=471e82ce051c0392a2c74ebde7faa80d07438cefe06bcdd19257ff9bd6702ba2\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"REST API - Daily\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Using our REST API endpoints a developer can manage all things related to Daily rooms, meeting tokens, recordings, domains, metrics and logs.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://daily-co.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=REST+API\u0026amp;description=Using+our+REST+API+endpoints+a+developer+can+manage+all+things+related+to+Daily+rooms%2C+meeting+tokens%2C+recordings%2C+domains%2C+metrics+and+logs.\u0026amp;theme=15766adf3c4c0f043ee3c760\u0026amp;signature=471e82ce051c0392a2c74ebde7faa80d07438cefe06bcdd19257ff9bd6702ba2\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/daily-co/Zqz2RGzK123gGV7q/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Daily\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF6E4A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.daily.co/docs/rest-api\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/rest-api.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.daily.co/#organization\",\"name\":\"Daily\",\"url\":\"https://docs.daily.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/daily-co/UZ5SeZfPxiPGRDvT/logo/light.svg?fit=max\u0026auto=format\u0026n=UZ5SeZfPxiPGRDvT\u0026q=85\u0026s=e96bdb062d7c5b0d12c9b0e155ca32ee\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.daily.co#website\",\"name\":\"Daily\",\"url\":\"https://docs.daily.co\",\"publisher\":{\"@id\":\"https://docs.daily.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.daily.co/docs/rest-api#webpage\",\"url\":\"https://docs.daily.co/docs/rest-api\",\"name\":\"REST API\",\"description\":\"Using our REST API endpoints a developer can manage all things related to Daily rooms, meeting tokens, recordings, domains, metrics and logs.\",\"dateModified\":\"2026-10-14T02:58:00.109Z\",\"isPartOf\":{\"@id\":\"https://docs.daily.co#website\"}},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.daily.co/docs/rest-api#article\",\"headline\":\"REST API\",\"name\":\"REST API\",\"description\":\"Using our REST API endpoints a developer can manage all things related to Daily rooms, meeting tokens, recordings, domains, metrics and logs.\",\"url\":\"https://docs.daily.co/docs/rest-api\",\"mainEntityOfPage\":{\"@id\":\"https://docs.daily.co/docs/rest-api#webpage\"},\"dateModified\":\"2026-10-14T02:58:00.109Z\",\"publisher\":{\"@id\":\"https://docs.daily.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.daily.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Daily\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Daily","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/"}]},{"tab":"Documentation","dropdowns":[{"dropdown":"Guides","icon":"book","pages":[{"group":"Architecture \u0026 Monitoring","pages":[{"title":"Video Call Architecture (Quick Intro)","sidebarTitle":"Video call architecture","href":"/docs/guides/architecture-and-monitoring/intro-to-video-arch"},{"title":"Global Mesh Network (Mesh SFU)","sidebarTitle":"Global Mesh Network","href":"/docs/guides/architecture-and-monitoring/global-mesh-network"},{"title":"Daily call quality logging and metrics","sidebarTitle":"Logging and metrics","href":"/docs/guides/architecture-and-monitoring/logging-and-metrics"},{"title":"Using the Daily Dashboard","sidebarTitle":"Dashboard overview","href":"/docs/guides/architecture-and-monitoring/experiment-in-the-dashboard"},{"title":"Daily Adaptive Bitrate","sidebarTitle":"Adaptive Bitrate","href":"/docs/guides/architecture-and-monitoring/adaptive-bitrate"}]},{"group":"Troubleshooting","pages":[{"title":"Debugging call issues","href":"/docs/guides/troubleshooting/debugging-call-issues"},{"title":"Debugging recordings and transcription","href":"/docs/guides/troubleshooting/debugging-recordings-and-transcription"},{"title":"Before contacting support","href":"/docs/guides/troubleshooting/before-contacting-support"}]},{"group":"Privacy and Security","pages":[{"title":"Working with Daily meeting tokens","sidebarTitle":"Meeting tokens","href":"/docs/guides/privacy-and-security/meeting-tokens"},{"title":"Self-signing meeting tokens","sidebarTitle":"Self-signing tokens","href":"/docs/guides/privacy-and-security/self-signing-tokens"},{"title":"Controlling who joins a meeting","sidebarTitle":"Controlling who joins","href":"/docs/guides/privacy-and-security/controlling-who-joins-a-meeting"},{"title":"HIPAA Compliance for healthcare","sidebarTitle":"HIPAA compliance","href":"/docs/guides/privacy-and-security/hipaa"},{"title":"Setting up your CSP for daily-js","sidebarTitle":"Content Security Policy","href":"/docs/guides/privacy-and-security/content-security-policy"},{"title":"Networking Guide","sidebarTitle":"Networking","href":"/docs/guides/privacy-and-security/corporate-firewalls-nats-allowed-ip-list"}]},{"group":"Scaling Calls","pages":[{"title":"Scaling Daily applications","sidebarTitle":"Overview","href":"/docs/guides/scaling-calls/index"},{"title":"Large real-time calls","href":"/docs/guides/scaling-calls/large-real-time-calls"},{"title":"Interactive live streaming and RTMP output","sidebarTitle":"Streaming and RTMP","href":"/docs/guides/scaling-calls/interactive-live-streaming-rtmp-output"},{"title":"Best practices to scale large experiences","sidebarTitle":"Best practices","href":"/docs/guides/scaling-calls/best-practices-to-scale-large-experiences"}]},{"group":"Features","pages":[{"group":"Recording","root":{"title":"Recording calls with the Daily API","sidebarTitle":"Overview","href":"/docs/guides/features/recording/index"},"pages":[{"title":"Storing Daily call recordings in a custom Amazon S3 bucket","sidebarTitle":"Custom S3 storage","href":"/docs/guides/features/recording/custom-s3-storage"},{"title":"Storing Daily call recordings in a custom OCI bucket","sidebarTitle":"Custom OCI storage","href":"/docs/guides/features/recording/custom-oci-storage"}]},{"group":"Live Streaming","root":{"title":"Live streaming with Daily","sidebarTitle":"RTMP live streaming","href":"/docs/guides/features/live-streaming/index"},"pages":[{"title":"Streaming HLS with Daily","sidebarTitle":"HLS streaming","href":"/docs/guides/features/live-streaming/hls"},{"title":"Multi-instance live streaming and recording","sidebarTitle":"Multi-instance","href":"/docs/guides/features/live-streaming/multi-instance"},{"title":"Custom layouts with VCS","sidebarTitle":"VCS layouts","href":"/docs/guides/features/live-streaming/vcs"}]},{"group":"Dial-in / Dial-out","root":{"title":"SIP and PSTN dial-in/dial-out","sidebarTitle":"Overview","href":"/docs/guides/features/dial-in-dial-out/index"},"pages":[{"title":"SIP dial-in and dial-out","sidebarTitle":"SIP","href":"/docs/guides/features/dial-in-dial-out/sip"},{"title":"PSTN dial-in with a PIN code","sidebarTitle":"PIN dial-in","href":"/docs/guides/features/dial-in-dial-out/pstn-pin-dialin"},{"title":"SIP Interconnect and Pinless PSTN dial-in","sidebarTitle":"Pinless dial-in","href":"/docs/guides/features/dial-in-dial-out/sip-interconnect-pinless"},{"title":"SIP and PSTN call transfers","sidebarTitle":"Transfers","href":"/docs/guides/features/dial-in-dial-out/transfers"},{"group":"SIP Trunk","root":{"title":"SIP Trunk (inbound)","sidebarTitle":"SIP Trunk","href":"/docs/guides/features/dial-in-dial-out/sip-trunk/index"},"pages":[{"title":"Twilio","sidebarTitle":"Twilio","href":"/docs/guides/features/dial-in-dial-out/sip-trunk/twilio"},{"title":"Telnyx","sidebarTitle":"Telnyx","href":"/docs/guides/features/dial-in-dial-out/sip-trunk/telnyx"},{"title":"Vonage","sidebarTitle":"Vonage","href":"/docs/guides/features/dial-in-dial-out/sip-trunk/vonage"}]},{"title":"SIP Clients","sidebarTitle":"SIP Clients","href":"/docs/guides/features/dial-in-dial-out/sip-clients"}]},{"title":"Transcription","href":"/docs/guides/features/transcription"},{"title":"Build audio-only experiences with Daily","sidebarTitle":"Audio-only","description":"Learn how to build voice-first and voice-only applications with Daily, including best practices and common feature patterns.","href":"/docs/guides/features/audio-only"}]}]},{"dropdown":"REST API","icon":"server","pages":[{"title":"REST API","sidebarTitle":"Overview","href":"/docs/rest-api"},{"title":"Authentication","description":"How to authenticate with the Daily REST API.","href":"/docs/rest-api/authentication"},{"title":"Errors","href":"/docs/rest-api/errors"},{"title":"Access links","href":"/docs/rest-api/access-links"},{"title":"Transcription","href":"/docs/rest-api/transcription"}]},{"dropdown":"Daily JS","icon":"js","pages":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/docs/daily-js/introduction"},{"title":"Quickstart","href":"/docs/daily-js/quickstart"},{"title":"Installation","href":"/docs/daily-js/installation"}]},{"group":"Core Concepts","pages":[{"title":"Call Modes","href":"/docs/daily-js/concepts/call-modes"},{"title":"Call configuration","href":"/docs/daily-js/concepts/call-configuration"},{"title":"Events","href":"/docs/daily-js/concepts/events"},{"title":"Participants","href":"/docs/daily-js/concepts/participants"},{"title":"Tracks and Media","href":"/docs/daily-js/concepts/tracks"}]},{"group":"Guides","pages":[{"title":"Audio and Video Controls","href":"/docs/daily-js/guides/audio-video"},{"title":"Handling device permissions","href":"/docs/daily-js/guides/device-permissions"},{"title":"Waiting room (knock-to-join)","href":"/docs/daily-js/guides/waiting-room"},{"title":"Custom messages and shared data","href":"/docs/daily-js/guides/custom-messages"},{"title":"Permissions","href":"/docs/daily-js/guides/permissions"},{"title":"Network and call quality","href":"/docs/daily-js/guides/network-quality"},{"title":"Working with multiple call instances","href":"/docs/daily-js/guides/multi-instance"}]},{"group":"Features","pages":[{"title":"Screen Sharing","href":"/docs/daily-js/features/screen-sharing"},{"title":"Recording","href":"/docs/daily-js/features/recording"},{"title":"Live Streaming","href":"/docs/daily-js/features/live-streaming"},{"title":"Real-Time Transcription","href":"/docs/daily-js/features/transcription"},{"title":"Custom Tracks","href":"/docs/daily-js/features/custom-tracks"},{"title":"Dial-in and dial-out","href":"/docs/daily-js/features/dialin-dialout"}]}]},{"dropdown":"Daily React","icon":"react","pages":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/docs/daily-react/docs"},{"title":"Quickstart","href":"/docs/daily-react/docs/quickstart"},{"title":"Installation","href":"/docs/daily-react/docs/installation"}]},{"group":"Core Concepts","pages":[{"title":"Thinking in Daily React","href":"/docs/daily-react/docs/thinking-in-daily-react"},{"title":"The call object and provider","href":"/docs/daily-react/docs/call-object-and-provider"},{"title":"Working with participants","href":"/docs/daily-react/docs/participants"},{"title":"Handling events","href":"/docs/daily-react/docs/events"},{"title":"Rendering media","href":"/docs/daily-react/docs/rendering-media"}]},{"group":"Building Call Features","pages":[{"title":"Cameras, mics, and speakers","href":"/docs/daily-react/docs/devices"},{"title":"Active speaker and audio levels","href":"/docs/daily-react/docs/active-speaker"},{"title":"Screen sharing","href":"/docs/daily-react/docs/screen-sharing"},{"title":"Custom messages","href":"/docs/daily-react/docs/app-messages"},{"title":"Recording","href":"/docs/daily-react/docs/recording"},{"title":"Live streaming","href":"/docs/daily-react/docs/live-streaming"},{"title":"Real-Time Transcription","href":"/docs/daily-react/docs/transcription"},{"title":"Permissions","href":"/docs/daily-react/docs/permissions"},{"title":"Network quality and diagnostics","href":"/docs/daily-react/docs/network-quality"}]}]},{"dropdown":"React Native","icon":"mobile","pages":[{"title":"Introduction","href":"/docs/react-native"},{"title":"Installation","href":"/docs/react-native/installation"}]},{"dropdown":"Android","icon":"android","pages":[{"title":"Daily Client SDK for Android","sidebarTitle":"Overview","href":"/docs/android"},{"title":"Installing the Daily Client SDK for Android","sidebarTitle":"Installation","href":"/docs/android/installation"},{"title":"Daily Android Mobile SDK Kotlin Quickstart","sidebarTitle":"Quickstart","href":"/docs/android/quickstart"},{"title":"Daily Android Mobile SDK Screen Share Quickstart","sidebarTitle":"Screen Sharing","href":"/docs/android/screen-share"}]},{"dropdown":"iOS","icon":"apple","pages":[{"title":"Daily Client SDK for iOS","sidebarTitle":"Overview","href":"/docs/ios"},{"title":"Installing the Daily Client SDK for iOS","sidebarTitle":"Installation","href":"/docs/ios/installation"},{"title":"Daily iOS Mobile SDK Swift Quickstart","sidebarTitle":"Quickstart","href":"/docs/ios/quickstart"},{"title":"Daily iOS Mobile SDK Screen Share Quickstart","sidebarTitle":"Screen Sharing","href":"/docs/ios/screen-share"}]},{"dropdown":"Flutter","icon":"flutter","pages":[{"title":"Daily Client SDK for Flutter","sidebarTitle":"Overview","href":"/docs/flutter"},{"title":"Installing the Daily Client SDK for Flutter","sidebarTitle":"Installation","href":"/docs/flutter/installation"}]},{"dropdown":"Python","icon":"python","pages":[{"title":"Daily Python SDK","sidebarTitle":"Overview","href":"/docs/python"},{"title":"Installing the Daily Client SDK for Python","sidebarTitle":"Installation","href":"/docs/python/installation"},{"title":"Getting started with the Daily Python SDK","sidebarTitle":"Getting started","href":"/docs/python/getting-started"}]},{"dropdown":"Prebuilt","icon":"browser","pages":[{"title":"Embed video chat quickly with Daily Prebuilt","sidebarTitle":"Overview","href":"/docs/prebuilt"},{"title":"Customize Daily Prebuilt's UI","sidebarTitle":"Customizing","href":"/docs/prebuilt/customizing-daily-prebuilt"},{"title":"Customizing Daily Prebuilt calls with color themes","sidebarTitle":"Color themes","href":"/docs/prebuilt/customizing-daily-prebuilt-calls-with-color-themes"},{"title":"Changing the language in Daily Prebuilt","sidebarTitle":"Language settings","href":"/docs/prebuilt/language"}]},{"dropdown":"VCS","icon":"film","pages":[{"group":"Getting Started","pages":[{"title":"Using Daily's Video Component System (VCS) SDK","sidebarTitle":"Introduction","href":"/docs/vcs"},{"title":"Daily's Video Component System (VCS) installation guide","sidebarTitle":"Installation","href":"/docs/vcs/installation"},{"title":"VCS Layout API","href":"/docs/vcs/layout-api/index"}]},{"group":"Core Concepts","pages":[{"title":"VCS SDK: Core concepts","sidebarTitle":"Core concepts","href":"/docs/vcs/core-concepts/index"},{"title":"VCS best practices","sidebarTitle":"Best practices","href":"/docs/vcs/core-concepts/best-practices"},{"title":"VCS SDK: Composition file structure and interface","sidebarTitle":"Composition and interface","href":"/docs/vcs/core-concepts/composition"},{"title":"VCS SDK: Input and compositing models","sidebarTitle":"Input and compositing models","href":"/docs/vcs/core-concepts/input-and-compositing-models"}]},{"group":"Components","pages":[{"title":"VCS Components","sidebarTitle":"Overview","href":"/docs/vcs/components/index"},{"title":"VCS Box component","sidebarTitle":"Box","href":"/docs/vcs/components/box"},{"title":"VCS Image component","sidebarTitle":"Image","href":"/docs/vcs/components/image"},{"title":"VCS Text component","sidebarTitle":"Text","href":"/docs/vcs/components/text"},{"title":"VCS Video component","sidebarTitle":"Video","href":"/docs/vcs/components/video"},{"title":"VCS WebFrame component","sidebarTitle":"WebFrame","href":"/docs/vcs/components/webframe"}]},{"group":"Custom React Hooks","pages":[{"title":"VCS: Custom React Hooks","sidebarTitle":"Overview","href":"/docs/vcs/custom-react-hooks/index"},{"title":"VCS: useActiveVideo()","sidebarTitle":"useActiveVideo()","href":"/docs/vcs/custom-react-hooks/use-active-video"},{"title":"VCS: useGrid()","sidebarTitle":"useGrid()","href":"/docs/vcs/custom-react-hooks/use-grid"},{"title":"VCS: useMediaInput()","sidebarTitle":"useMediaInput()","href":"/docs/vcs/custom-react-hooks/use-media-input"},{"title":"VCS: useParams()","sidebarTitle":"useParams()","href":"/docs/vcs/custom-react-hooks/use-params"},{"title":"VCS: useVideoPlaybackState()","sidebarTitle":"useVideoPlaybackState()","href":"/docs/vcs/custom-react-hooks/use-video-playback-state"},{"title":"VCS: useVideoTime()","sidebarTitle":"useVideoTime()","href":"/docs/vcs/custom-react-hooks/use-video-time"},{"title":"VCS: useViewportSize()","sidebarTitle":"useViewportSize()","href":"/docs/vcs/custom-react-hooks/use-viewport-size"}]},{"title":"Using session assets in Daily VCS","sidebarTitle":"Session assets","href":"/docs/vcs/session-assets"},{"group":"Tools","pages":[{"title":"VCS tools","href":"/docs/vcs/tools/index"},{"title":"Build a JS package","href":"/docs/vcs/tools/build-a-js-package"},{"title":"VCS Simulator","href":"/docs/vcs/tools/simulator"},{"title":"VCS web renderer","href":"/docs/vcs/tools/vcs-web-renderer"}]}]}]},{"tab":"Reference","dropdowns":[{"dropdown":"REST API","icon":"server","pages":[{"group":"Domain","root":{"title":"Overview","href":"/reference/rest-api/domain"},"pages":[{"title":"Get Domain Config","openapi":"GET /","href":"/reference/rest-api/domain/get-domain-config"},{"title":"Set Domain Config","openapi":"POST /","href":"/reference/rest-api/domain/set-domain-config"}]},{"group":"Rooms","root":{"title":"Rooms","href":"/reference/rest-api/rooms/index"},"pages":[{"group":"Rooms","pages":[{"title":"List Rooms","openapi":"GET /rooms","href":"/reference/rest-api/rooms/list-rooms"},{"title":"Create Room","openapi":"POST /rooms","href":"/reference/rest-api/rooms/create-room"},{"title":"Get Room Config","openapi":"GET /rooms/{room_name}","href":"/reference/rest-api/rooms/get-room"},{"title":"Get Room Presence","openapi":"GET /rooms/{room_name}/presence","href":"/reference/rest-api/rooms/get-room-presence"},{"title":"Set Room Config","openapi":"POST /rooms/{room_name}","href":"/reference/rest-api/rooms/update-room"},{"title":"Delete Room","openapi":"DELETE /rooms/{room_name}","href":"/reference/rest-api/rooms/delete-room"}]},{"group":"Session","pages":[{"title":"Get Room Presence","openapi":"GET /rooms/{room_name}/presence","href":"/reference/rest-api/rooms/session/get-presence"},{"title":"Send App Message","openapi":"POST /rooms/{room_name}/send-app-message","href":"/reference/rest-api/rooms/session/send-app-message"},{"title":"Get Session Data","openapi":"GET /rooms/{room_name}/get-session-data","href":"/reference/rest-api/rooms/session/get-session-data"},{"title":"Set Session Data","openapi":"POST /rooms/{room_name}/set-session-data","href":"/reference/rest-api/rooms/session/set-session-data"},{"title":"Eject","openapi":"POST /rooms/{room_name}/eject","href":"/reference/rest-api/rooms/session/eject"},{"title":"Update Permissions","openapi":"POST /rooms/{room_name}/update-permissions","href":"/reference/rest-api/rooms/session/update-permissions"}]},{"group":"Recordings","pages":[{"title":"Room Recordings Start","openapi":"POST /rooms/{room_name}/recordings/start","href":"/reference/rest-api/rooms/recordings/start"},{"title":"Room Recordings Update","openapi":"POST /rooms/{room_name}/recordings/update","href":"/reference/rest-api/rooms/recordings/update"},{"title":"Room Recordings Stop","openapi":"POST /rooms/{room_name}/recordings/stop","href":"/reference/rest-api/rooms/recordings/stop"}]},{"group":"Live Streaming","pages":[{"title":"Room Livestreaming Start","openapi":"POST /rooms/{room_name}/live-streaming/start","href":"/reference/rest-api/rooms/live-streaming/start"},{"title":"Room Livestreaming Update","openapi":"POST /rooms/{room_name}/live-streaming/update","href":"/reference/rest-api/rooms/live-streaming/update"},{"title":"Room Livestreaming Add Endpoints","openapi":"POST /rooms/{room_name}/live-streaming/add-endpoints","href":"/reference/rest-api/rooms/live-streaming/add-endpoints"},{"title":"Room Livestreaming Remove Endpoints","openapi":"POST /rooms/{room_name}/live-streaming/remove-endpoints","href":"/reference/rest-api/rooms/live-streaming/remove-endpoints"},{"title":"Room Livestreaming Stop","openapi":"POST /rooms/{room_name}/live-streaming/stop","href":"/reference/rest-api/rooms/live-streaming/stop"}]},{"group":"Transcription","pages":[{"title":"Room Transcription Start","openapi":"POST /rooms/{room_name}/transcription/start","href":"/reference/rest-api/rooms/transcription/start"},{"title":"Room Transcription Update","openapi":"POST /rooms/{room_name}/transcription/update","href":"/reference/rest-api/rooms/transcription/update"},{"title":"Room Transcription Stop","openapi":"POST /rooms/{room_name}/transcription/stop","href":"/reference/rest-api/rooms/transcription/stop"}]},{"group":"Dial Out","pages":[{"title":"Room Dial Out Start","openapi":"POST /rooms/{room_name}/dialOut/start","href":"/reference/rest-api/rooms/dial-out/start"},{"title":"Room Dial Out Send DTMF","openapi":"POST /rooms/{room_name}/dialOut/sendDTMF","href":"/reference/rest-api/rooms/dial-out/send-dtmf"},{"title":"Room Dial Out Stop","openapi":"POST /rooms/{room_name}/dialOut/stop","href":"/reference/rest-api/rooms/dial-out/stop"}]},{"group":"SIP / Call Transfer","pages":[{"title":"Room SIP Call Transfer","openapi":"POST /rooms/{room_name}/sipCallTransfer","href":"/reference/rest-api/rooms/call-transfer/sip-call-transfer"},{"title":"Room SIP Refer","openapi":"POST /rooms/{room_name}/sipRefer","href":"/reference/rest-api/rooms/call-transfer/sip-refer"}]},{"group":"Batch Rooms","pages":[{"title":"Batch Room Create","openapi":"POST /batch/rooms","href":"/reference/rest-api/batch/create-rooms"},{"title":"Batch Room Delete","openapi":"DELETE /batch/rooms","href":"/reference/rest-api/batch/delete-rooms"}]}]},{"group":"Meeting Tokens","root":{"title":"Meeting tokens - Overview","href":"/reference/rest-api/meeting-tokens/index"},"pages":[{"title":"Create Meeting Token","openapi":"POST /meeting-tokens","href":"/reference/rest-api/meeting-tokens/create-meeting-token"},{"title":"Validate Meeting Token","openapi":"GET /meeting-tokens/{meeting_token}","href":"/reference/rest-api/meeting-tokens/validate-meeting-token"}]},{"group":"Recordings","root":{"title":"Recordings - overview","href":"/reference/rest-api/recordings/index"},"pages":[{"title":"List Recordings","openapi":"GET /recordings","href":"/reference/rest-api/recordings/list-recordings"},{"title":"Get Recording Info","openapi":"GET /recordings/{recording_id}","href":"/reference/rest-api/recordings/get-recording"},{"title":"Delete Recording","openapi":"DELETE /recordings/{recording_id}","href":"/reference/rest-api/recordings/delete-recording"},{"title":"Get Recording Link","openapi":"GET /recordings/{recording_id}/access-link","href":"/reference/rest-api/recordings/get-recording-link"},{"title":"Test OCI Bucket","openapi":"GET /recordings/test-oci-bucket","href":"/reference/rest-api/recordings/test-oci-bucket"}]},{"group":"Transcripts","root":{"title":"Transcripts - overview","href":"/reference/rest-api/transcripts/index"},"pages":[{"title":"List Transcript","openapi":"GET /transcript","href":"/reference/rest-api/transcripts/list-transcripts"},{"title":"Get Transcript Info","openapi":"GET /transcript/{transcriptId}","href":"/reference/rest-api/transcripts/get-transcript"},{"title":"Delete Transcript","openapi":"DELETE /transcript/{transcriptId}","href":"/reference/rest-api/transcripts/delete-transcript"},{"title":"Get Transcript Link","openapi":"GET /transcript/{transcriptId}/access-link","href":"/reference/rest-api/transcripts/get-transcript-link"}]},{"group":"Logs","root":{"title":"Logs - overview","href":"/reference/rest-api/logs/index"},"pages":[{"title":"List Logs","openapi":"GET /logs","href":"/reference/rest-api/logs/list-logs"},{"title":"List API Logs","openapi":"GET /logs/api","href":"/reference/rest-api/logs/list-api-logs"}]},{"group":"Meetings","root":{"title":"Meetings","href":"/reference/rest-api/meetings/index"},"pages":[{"title":"Get Meeting Info","openapi":"GET /meetings","href":"/reference/rest-api/meetings/list-meetings"},{"title":"Get Individual Meeting Info","openapi":"GET /meetings/{meeting}","href":"/reference/rest-api/meetings/get-meeting"},{"title":"Get Meeting Participants","openapi":"GET /meetings/{meeting}/participants","href":"/reference/rest-api/meetings/get-participants"}]},{"group":"Presence","root":{"title":"Presence - overview","href":"/reference/rest-api/presence/index"},"pages":[{"title":"Get Presence","openapi":"GET /presence","href":"/reference/rest-api/presence/get-presence"}]},{"group":"Phone Numbers","root":{"title":"phone-numbers","href":"/reference/rest-api/phone-numbers/index"},"pages":[{"title":"List Available Numbers","openapi":"GET /list-available-numbers","href":"/reference/rest-api/phone-numbers/list-available"},{"title":"Purchased Phone Numbers","openapi":"GET /purchased-phone-numbers","href":"/reference/rest-api/phone-numbers/list-purchased"},{"title":"Buy Phone Number","openapi":"POST /buy-phone-number","href":"/reference/rest-api/phone-numbers/buy-number"},{"title":"Release Phone Number","openapi":"DELETE /release-phone-number/{id}","href":"/reference/rest-api/phone-numbers/release-number"}]},{"group":"Dial-In","root":{"title":"Dial-In","href":"/reference/rest-api/dial-in/index"},"pages":[{"title":"Pinless Call Update","openapi":"POST /dialin/pinlessCallUpdate","href":"/reference/rest-api/dial-in/pinless-update"}]},{"group":"Domain Dial-In Config","root":{"title":"Pinless_dialin and pin_dialin - overview","href":"/reference/rest-api/domainDialinConfig/index"},"pages":[{"title":"List Domain Dialin Configs","openapi":"GET /domain-dialin-config","href":"/reference/rest-api/dial-in/list-configs"},{"title":"Create Domain Dial Config Info","openapi":"POST /domain-dialin-config","href":"/reference/rest-api/dial-in/create-config"},{"title":"Get Domain Dialin Config Info","openapi":"GET /domain-dialin-config/{id}","href":"/reference/rest-api/dial-in/get-config"},{"title":"Update Domain Dial Config Info","openapi":"PUT /domain-dialin-config/{id}","href":"/reference/rest-api/dial-in/update-config"},{"title":"Delete Domain Dialin Config","openapi":"DELETE /domain-dialin-config/{id}","href":"/reference/rest-api/dial-in/delete-config"}]},{"group":"SIP Trunk","root":{"title":"SIP Trunk","href":"/reference/rest-api/sip-trunk/index"},"pages":[{"title":"Create a SIP trunk","openapi":"POST /sip-trunk","href":"/reference/rest-api/sip-trunk/create"},{"title":"List SIP trunks","openapi":"GET /sip-trunk","href":"/reference/rest-api/sip-trunk/list"},{"title":"Get a SIP trunk","openapi":"GET /sip-trunk/{id}","href":"/reference/rest-api/sip-trunk/get"},{"title":"Update a SIP trunk","openapi":"PUT /sip-trunk/{id}","href":"/reference/rest-api/sip-trunk/update"},{"title":"Delete a SIP trunk","openapi":"DELETE /sip-trunk/{id}","href":"/reference/rest-api/sip-trunk/delete"},{"title":"sip_trunk.incoming notification","href":"/reference/rest-api/sip-trunk/notification"}]},{"group":"SIP Clients","root":{"title":"SIP Clients","href":"/reference/rest-api/sip-clients/index"},"pages":[{"title":"Create a SIP client","openapi":"POST /sip-clients","href":"/reference/rest-api/sip-clients/create"},{"title":"List SIP clients","openapi":"GET /sip-clients","href":"/reference/rest-api/sip-clients/list"},{"title":"Get a SIP client","openapi":"GET /sip-clients/{username}","href":"/reference/rest-api/sip-clients/get"},{"title":"Delete a SIP client","openapi":"DELETE /sip-clients/{username}","href":"/reference/rest-api/sip-clients/delete"},{"title":"Rotate a SIP client's password","openapi":"POST /sip-clients/{username}/rotate","href":"/reference/rest-api/sip-clients/rotate"}]},{"group":"Webhooks","root":{"title":"Webhooks","href":"/reference/rest-api/webhooks/index"},"pages":[{"title":"Get Webhooks","openapi":"GET /webhooks","href":"/reference/rest-api/webhooks/list-webhooks"},{"title":"Create Webhook","openapi":"POST /webhooks","href":"/reference/rest-api/webhooks/create-webhook"},{"title":"Get Webhook Config","openapi":"GET /webhooks/{id}","href":"/reference/rest-api/webhooks/get-webhook"},{"title":"Update Webhook Config","openapi":"POST /webhooks/{id}","href":"/reference/rest-api/webhooks/update-webhook"},{"title":"Delete Webhook","openapi":"DELETE /webhooks/{id}","href":"/reference/rest-api/webhooks/delete-webhook"},{"group":"Events","root":{"title":"Webhook Events","href":"/reference/rest-api/webhooks/events/index"},"pages":[{"title":"Batch Processor Job Error","href":"/reference/rest-api/webhooks/events/batch-processor-error"},{"title":"Batch Processor Job Finished","href":"/reference/rest-api/webhooks/events/batch-processor-job-finished"},{"title":"Calltransfer Answered","href":"/reference/rest-api/webhooks/events/calltransfer-answered"},{"title":"Calltransfer Completed","href":"/reference/rest-api/webhooks/events/calltransfer-completed"},{"title":"Calltransfer Initiated","href":"/reference/rest-api/webhooks/events/calltransfer-initiated"},{"title":"Calltransfer Triggered","href":"/reference/rest-api/webhooks/events/calltransfer-triggered"},{"title":"Dial-in Connected","href":"/reference/rest-api/webhooks/events/dialin-connected"},{"title":"Dial-in error","href":"/reference/rest-api/webhooks/events/dialin-error"},{"title":"Dial-in Ready","href":"/reference/rest-api/webhooks/events/dialin-ready"},{"title":"Dial-in stopped","href":"/reference/rest-api/webhooks/events/dialin-stopped"},{"title":"Dial-in warning","href":"/reference/rest-api/webhooks/events/dialin-warning"},{"title":"Dial-out Answered","href":"/reference/rest-api/webhooks/events/dialout-answered"},{"title":"Dial-out Connected","href":"/reference/rest-api/webhooks/events/dialout-connected"},{"title":"Dial-out error","href":"/reference/rest-api/webhooks/events/dialout-error"},{"title":"Dial-out stopped","href":"/reference/rest-api/webhooks/events/dialout-stopped"},{"title":"Dial-out warning","href":"/reference/rest-api/webhooks/events/dialout-warning"},{"title":"Meeting Ended","href":"/reference/rest-api/webhooks/events/meeting-ended"},{"title":"Meeting Started","href":"/reference/rest-api/webhooks/events/meeting-started"},{"title":"Participant Joined","href":"/reference/rest-api/webhooks/events/participant-joined"},{"title":"Participant Left","href":"/reference/rest-api/webhooks/events/participant-left"},{"title":"Recording Error","href":"/reference/rest-api/webhooks/events/recording-error"},{"title":"Recording Ready to Download","href":"/reference/rest-api/webhooks/events/recording-ready-to-download"},{"title":"Recording Started","href":"/reference/rest-api/webhooks/events/recording-started"},{"title":"Streaming Ended","href":"/reference/rest-api/webhooks/events/streaming-ended"},{"title":"Streaming Error","href":"/reference/rest-api/webhooks/events/streaming-error"},{"title":"Streaming Started","href":"/reference/rest-api/webhooks/events/streaming-started"},{"title":"Streaming Updated","href":"/reference/rest-api/webhooks/events/streaming-updated"},{"title":"Streaming Warning","href":"/reference/rest-api/webhooks/events/streaming-warning"},{"title":"Transcript Error","href":"/reference/rest-api/webhooks/events/transcript-error"},{"title":"Transcript Ready to Download","href":"/reference/rest-api/webhooks/events/transcript-ready-to-download"},{"title":"Transcript Started","href":"/reference/rest-api/webhooks/events/transcript-started"},{"title":"Waiting Participant Joined","href":"/reference/rest-api/webhooks/events/waiting-participant-joined"},{"title":"Waiting Participant Left","href":"/reference/rest-api/webhooks/events/waiting-participant-left"}]}]},{"group":"Batch Processor","root":{"title":"Batch Processor API","href":"/reference/rest-api/batch-processor/index"},"pages":[{"title":"Submit job","href":"/reference/rest-api/batch-processor/reference/submit-job"},{"title":"List jobs","href":"/reference/rest-api/batch-processor/reference/list-jobs"},{"title":"Get job","href":"/reference/rest-api/batch-processor/reference/get-job"},{"title":"Access-Link","href":"/reference/rest-api/batch-processor/reference/get-job-access-link"},{"title":"Delete job","href":"/reference/rest-api/batch-processor/reference/delete-job"}]}]},{"dropdown":"Daily JS","icon":"js","pages":[{"group":"Daily Call Client","pages":[{"title":"Daily Call Client","href":"/reference/daily-js/daily-call-client/index"}]},{"group":"Types","pages":[{"title":"Types","href":"/reference/daily-js/types/index"},{"title":"DailyCallOptions","href":"/reference/daily-js/types/daily-call-options"},{"title":"DailyParticipant","href":"/reference/daily-js/types/daily-participant"},{"title":"DailyTrackState","href":"/reference/daily-js/types/daily-track-state"},{"title":"DailyParticipantPermissions","href":"/reference/daily-js/types/daily-participant-permissions"},{"title":"DailyStreamingOptions","href":"/reference/daily-js/types/daily-streaming-options"},{"title":"DailyStreamingLayoutConfig","href":"/reference/daily-js/types/daily-streaming-layout-config"}]},{"group":"Factory Methods","pages":[{"title":"Factory methods","href":"/reference/daily-js/factory-methods/index"},{"title":"Daily.createCallObject()","href":"/reference/daily-js/factory-methods/create-call-object"},{"title":"Daily.createFrame()","href":"/reference/daily-js/factory-methods/create-frame"},{"title":"Daily.createTransparentFrame()","href":"/reference/daily-js/factory-methods/create-transparent-frame"},{"title":"Daily.wrap()","href":"/reference/daily-js/factory-methods/wrap"}]},{"group":"Static Methods","pages":[{"title":"Static methods","href":"/reference/daily-js/static-methods/index"},{"title":"Daily.getCallInstance()","href":"/reference/daily-js/static-methods/get-call-instance"},{"title":"supportedBrowser()","href":"/reference/daily-js/static-methods/supported-browser"}]},{"group":"Instance Methods","pages":[{"title":"Instance methods","href":"/reference/daily-js/instance-methods/index"},{"title":"abortTestNetworkConnectivity()","href":"/reference/daily-js/instance-methods/abort-test-network-connectivity"},{"title":"abortTestWebsocketConnectivity()","href":"/reference/daily-js/instance-methods/abort-test-websocket-connectivity"},{"title":"accessState()","href":"/reference/daily-js/instance-methods/access-state"},{"title":"activeSpeakerMode()","href":"/reference/daily-js/instance-methods/active-speaker-mode"},{"title":"addFakeParticipant()","href":"/reference/daily-js/instance-methods/add-fake-participant"},{"title":"addLiveStreamingEndpoints()","href":"/reference/daily-js/instance-methods/add-live-streaming-endpoints"},{"title":"customIntegrations()","href":"/reference/daily-js/instance-methods/custom-integrations"},{"title":"customTrayButtons()","href":"/reference/daily-js/instance-methods/custom-tray-buttons"},{"title":"cycleCamera()","href":"/reference/daily-js/instance-methods/cycle-camera"},{"title":"cycleMic()","href":"/reference/daily-js/instance-methods/cycle-mic"},{"title":"destroy()","href":"/reference/daily-js/instance-methods/destroy"},{"title":"enumerateDevices()","href":"/reference/daily-js/instance-methods/enumerate-devices"},{"title":"exitFullscreen()","href":"/reference/daily-js/instance-methods/exit-fullscreen"},{"title":"getCpuLoadStats()","href":"/reference/daily-js/instance-methods/get-cpu-load-stats"},{"title":"getDailyLang()","href":"/reference/daily-js/instance-methods/get-daily-lang"},{"title":"getInputDevices()","href":"/reference/daily-js/instance-methods/get-input-devices"},{"title":"getInputSettings()","href":"/reference/daily-js/instance-methods/get-input-settings"},{"title":"getLocalAudioLevel()","href":"/reference/daily-js/instance-methods/get-local-audio-level"},{"title":"getMeetingSession() (Deprecated)","href":"/reference/daily-js/instance-methods/get-meeting-session"},{"title":"getNetworkStats()","href":"/reference/daily-js/instance-methods/get-network-stats"},{"title":"getNetworkTopology()","href":"/reference/daily-js/instance-methods/get-network-topology"},{"title":"getReceiveSettings()","href":"/reference/daily-js/instance-methods/get-receive-settings"},{"title":"getRemoteParticipantsAudioLevel()","href":"/reference/daily-js/instance-methods/get-remote-participants-audio-level"},{"title":"getSendSettings()","href":"/reference/daily-js/instance-methods/get-send-settings"},{"title":"getSidebarView()","href":"/reference/daily-js/instance-methods/get-sidebar-view"},{"title":"iframe()","href":"/reference/daily-js/instance-methods/iframe"},{"title":"isDestroyed()","href":"/reference/daily-js/instance-methods/is-destroyed"},{"title":"isLocalAudioLevelObserverRunning()","href":"/reference/daily-js/instance-methods/is-local-audio-level-observer-running"},{"title":"isRemoteParticipantsAudioLevelObserverRunning()","href":"/reference/daily-js/instance-methods/is-remote-participants-audio-level-observer-running"},{"title":"join()","href":"/reference/daily-js/instance-methods/join"},{"title":"leave()","href":"/reference/daily-js/instance-methods/leave"},{"title":"load()","href":"/reference/daily-js/instance-methods/load"},{"title":"localAudio()","href":"/reference/daily-js/instance-methods/local-audio"},{"title":"localScreenAudio()","href":"/reference/daily-js/instance-methods/local-screen-audio"},{"title":"localScreenVideo()","href":"/reference/daily-js/instance-methods/local-screen-video"},{"title":"localVideo()","href":"/reference/daily-js/instance-methods/local-video"},{"title":"meetingSessionState()","href":"/reference/daily-js/instance-methods/meeting-session-state"},{"title":"meetingSessionSummary()","href":"/reference/daily-js/instance-methods/meeting-session-summary"},{"title":"meetingState()","href":"/reference/daily-js/instance-methods/meeting-state"},{"title":"off()","href":"/reference/daily-js/instance-methods/off"},{"title":"on()","href":"/reference/daily-js/instance-methods/on"},{"title":"once()","href":"/reference/daily-js/instance-methods/once"},{"title":"participantCounts()","href":"/reference/daily-js/instance-methods/participant-counts"},{"title":"participants()","href":"/reference/daily-js/instance-methods/participants"},{"title":"preAuth()","href":"/reference/daily-js/instance-methods/pre-auth"},{"title":"removeLiveStreamingEndpoints()","href":"/reference/daily-js/instance-methods/remove-live-streaming-endpoints"},{"title":"requestAccess()","href":"/reference/daily-js/instance-methods/request-access"},{"title":"requestFullscreen()","href":"/reference/daily-js/instance-methods/request-fullscreen"},{"title":"room()","href":"/reference/daily-js/instance-methods/room"},{"title":"sendAppMessage()","href":"/reference/daily-js/instance-methods/send-app-message"},{"title":"sendDTMF()","href":"/reference/daily-js/instance-methods/send-dtmf"},{"title":"setActiveSpeakerMode()","href":"/reference/daily-js/instance-methods/set-active-speaker-mode"},{"title":"setBandwidth()","href":"/reference/daily-js/instance-methods/set-bandwidth"},{"title":"setCustomIntegrations()","href":"/reference/daily-js/instance-methods/set-custom-integrations"},{"title":"setDailyLang()","href":"/reference/daily-js/instance-methods/set-daily-lang"},{"title":"setIceConfig()","href":"/reference/daily-js/instance-methods/set-ice-config"},{"title":"setInputDevicesAsync()","href":"/reference/daily-js/instance-methods/set-input-devices-async"},{"title":"setLocalAudio()","href":"/reference/daily-js/instance-methods/set-local-audio"},{"title":"setLocalVideo()","href":"/reference/daily-js/instance-methods/set-local-video"},{"title":"setMeetingSessionData()","href":"/reference/daily-js/instance-methods/set-meeting-session-data"},{"title":"setNetworkTopology()","href":"/reference/daily-js/instance-methods/set-network-topology"},{"title":"setOutputDeviceAsync()","href":"/reference/daily-js/instance-methods/set-output-device-async"},{"title":"setPlayNewParticipantSound()","href":"/reference/daily-js/instance-methods/set-play-new-participant-sound"},{"title":"setProxyUrl()","href":"/reference/daily-js/instance-methods/set-proxy-url"},{"title":"setShowLocalVideo()","href":"/reference/daily-js/instance-methods/set-show-local-video"},{"title":"setShowNamesMode()","href":"/reference/daily-js/instance-methods/set-show-names-mode"},{"title":"setShowParticipantsBar()","href":"/reference/daily-js/instance-methods/set-show-participants-bar"},{"title":"setSidebarView()","href":"/reference/daily-js/instance-methods/set-sidebar-view"},{"title":"setSubscribeToTracksAutomatically()","href":"/reference/daily-js/instance-methods/set-subscribe-to-tracks-automatically"},{"title":"setTheme()","href":"/reference/daily-js/instance-methods/set-theme"},{"title":"setUserData()","href":"/reference/daily-js/instance-methods/set-user-data"},{"title":"setUserName()","href":"/reference/daily-js/instance-methods/set-user-name"},{"title":"showLocalVideo()","href":"/reference/daily-js/instance-methods/show-local-video"},{"title":"showParticipantsBar()","href":"/reference/daily-js/instance-methods/show-participants-bar"},{"title":"sipCallTransfer()","href":"/reference/daily-js/instance-methods/sip-call-transfer"},{"title":"sipRefer()","href":"/reference/daily-js/instance-methods/sip-refer"},{"title":"startCamera()","href":"/reference/daily-js/instance-methods/start-camera"},{"title":"startCustomIntegrations()","href":"/reference/daily-js/instance-methods/start-custom-integrations"},{"title":"startCustomTrack()","href":"/reference/daily-js/instance-methods/start-custom-track"},{"title":"startDialOut()","href":"/reference/daily-js/instance-methods/start-dial-out"},{"title":"startLiveStreaming()","href":"/reference/daily-js/instance-methods/start-live-streaming"},{"title":"startLocalAudioLevelObserver()","href":"/reference/daily-js/instance-methods/start-local-audio-level-observer"},{"title":"startRecording()","href":"/reference/daily-js/instance-methods/start-recording"},{"title":"startRemoteParticipantsAudioLevelObserver()","href":"/reference/daily-js/instance-methods/start-remote-participants-audio-level-observer"},{"title":"startScreenShare()","href":"/reference/daily-js/instance-methods/start-screen-share"},{"title":"startTranscription()","href":"/reference/daily-js/instance-methods/start-transcription"},{"title":"stopCustomIntegrations()","href":"/reference/daily-js/instance-methods/stop-custom-integrations"},{"title":"stopCustomTrack()","href":"/reference/daily-js/instance-methods/stop-custom-track"},{"title":"stopDialOut()","href":"/reference/daily-js/instance-methods/stop-dial-out"},{"title":"stopLiveStreaming()","href":"/reference/daily-js/instance-methods/stop-live-streaming"},{"title":"stopLocalAudioLevelObserver()","href":"/reference/daily-js/instance-methods/stop-local-audio-level-observer"},{"title":"stopRecording()","href":"/reference/daily-js/instance-methods/stop-recording"},{"title":"stopRemoteParticipantsAudioLevelObserver()","href":"/reference/daily-js/instance-methods/stop-remote-participants-audio-level-observer"},{"title":"stopScreenShare()","href":"/reference/daily-js/instance-methods/stop-screen-share"},{"title":"stopTestCallQuality()","href":"/reference/daily-js/instance-methods/stop-test-call-quality"},{"title":"stopTestConnectionQuality()","href":"/reference/daily-js/instance-methods/stop-test-connection-quality"},{"title":"stopTestPeerToPeerCallQuality()","href":"/reference/daily-js/instance-methods/stop-test-peer-to-peer-call-quality"},{"title":"stopTranscription()","href":"/reference/daily-js/instance-methods/stop-transcription"},{"title":"testCallQuality()","href":"/reference/daily-js/instance-methods/test-call-quality"},{"title":"testConnectionQuality()","href":"/reference/daily-js/instance-methods/test-connection-quality"},{"title":"testNetworkConnectivity()","href":"/reference/daily-js/instance-methods/test-network-connectivity"},{"title":"testPeerToPeerCallQuality()","href":"/reference/daily-js/instance-methods/test-peer-to-peer-call-quality"},{"title":"testWebsocketConnectivity()","href":"/reference/daily-js/instance-methods/test-websocket-connectivity"},{"title":"theme()","href":"/reference/daily-js/instance-methods/theme"},{"title":"updateCustomTrayButtons()","href":"/reference/daily-js/instance-methods/update-custom-tray-buttons"},{"title":"updateInputSettings()","href":"/reference/daily-js/instance-methods/update-input-settings"},{"title":"updateLiveStreaming()","href":"/reference/daily-js/instance-methods/update-live-streaming"},{"title":"updateParticipant()","href":"/reference/daily-js/instance-methods/update-participant"},{"title":"updateParticipants()","href":"/reference/daily-js/instance-methods/update-participants"},{"title":"updateReceiveSettings()","href":"/reference/daily-js/instance-methods/update-receive-settings"},{"title":"updateRecording()","href":"/reference/daily-js/instance-methods/update-recording"},{"title":"updateScreenShare()","href":"/reference/daily-js/instance-methods/update-screen-share"},{"title":"updateSendSettings()","href":"/reference/daily-js/instance-methods/update-send-settings"},{"title":"updateTranscription()","href":"/reference/daily-js/instance-methods/update-transcription"},{"title":"updateWaitingParticipant()","href":"/reference/daily-js/instance-methods/update-waiting-participant"},{"title":"updateWaitingParticipants()","href":"/reference/daily-js/instance-methods/update-waiting-participants"},{"title":"waitingParticipants()","href":"/reference/daily-js/instance-methods/waiting-participants"}]},{"group":"Events","pages":[{"title":"daily-js events","href":"/reference/daily-js/events/index"},{"title":"Lifecycle events","href":"/reference/daily-js/events/lifecycle-events"},{"title":"Participant events","href":"/reference/daily-js/events/participant-events"},{"title":"Media events","href":"/reference/daily-js/events/media-events"},{"title":"Network events","href":"/reference/daily-js/events/network-events"},{"title":"Settings \u0026 device events","href":"/reference/daily-js/events/settings-events"},{"title":"Messaging events","href":"/reference/daily-js/events/messaging-events"},{"title":"Recording events","href":"/reference/daily-js/events/recording-events"},{"title":"Live streaming events","href":"/reference/daily-js/events/live-streaming-events"},{"title":"Transcription events","href":"/reference/daily-js/events/transcription-events"},{"title":"Telephony events (SIP/PSTN)","href":"/reference/daily-js/events/telephony-events"},{"title":"Error events","href":"/reference/daily-js/events/error-events"},{"title":"Iframe UI events","href":"/reference/daily-js/events/iframe-ui-events"}]}]},{"dropdown":"Daily React","icon":"react","pages":[{"group":"Components","pages":[{"title":"Daily Provider","href":"/reference/daily-react/daily-provider"},{"title":"Daily Audio","href":"/reference/daily-react/daily-audio"},{"title":"Daily Audio Track","href":"/reference/daily-react/daily-audio-track"},{"title":"Daily Video","href":"/reference/daily-react/daily-video"}]},{"group":"Hooks","pages":[{"title":"useActiveParticipant","href":"/reference/daily-react/use-active-participant"},{"title":"useActiveSpeakerId","href":"/reference/daily-react/use-active-speaker-id"},{"title":"useAppMessage","href":"/reference/daily-react/use-app-message"},{"title":"useAudioLevel","href":"/reference/daily-react/use-audio-level"},{"title":"useAudioLevelObserver","href":"/reference/daily-react/use-audio-level-observer"},{"title":"useCPULoad","href":"/reference/daily-react/use-cpu-load"},{"title":"useCallFrame","href":"/reference/daily-react/use-call-frame"},{"title":"useCallObject","href":"/reference/daily-react/use-call-object"},{"title":"useDaily","href":"/reference/daily-react/use-daily"},{"title":"useDailyError","href":"/reference/daily-react/use-daily-error"},{"title":"useDailyEvent","href":"/reference/daily-react/use-daily-event"},{"title":"useDevices","href":"/reference/daily-react/use-devices"},{"title":"useDialin","href":"/reference/daily-react/use-dialin"},{"title":"useDialOut","href":"/reference/daily-react/use-dialout"},{"title":"useInputSettings","href":"/reference/daily-react/use-input-settings"},{"title":"useLiveStreaming","href":"/reference/daily-react/use-live-streaming"},{"title":"useLiveStreamingInstances","href":"/reference/daily-react/use-live-streaming-instances"},{"title":"useLocalParticipant","href":"/reference/daily-react/use-local-participant"},{"title":"useLocalSessionId","href":"/reference/daily-react/use-local-session-id"},{"title":"useMediaTrack","href":"/reference/daily-react/use-media-track"},{"title":"useMeetingSessionState","href":"/reference/daily-react/use-meeting-session-state"},{"title":"useMeetingSessionSummary","href":"/reference/daily-react/use-meeting-session-summary"},{"title":"useMeetingState","href":"/reference/daily-react/use-meeting-state"},{"title":"useNetwork","href":"/reference/daily-react/use-network"},{"title":"useParticipant","href":"/reference/daily-react/use-participant"},{"title":"useParticipantCounts","href":"/reference/daily-react/use-participant-counts"},{"title":"useParticipantIds","href":"/reference/daily-react/use-participant-ids"},{"title":"useParticipantProperty","href":"/reference/daily-react/use-participant-property"},{"title":"usePermissions","href":"/reference/daily-react/use-permissions"},{"title":"useReceiveSettings","href":"/reference/daily-react/use-receive-settings"},{"title":"useRecording","href":"/reference/daily-react/use-recording"},{"title":"useRecordingInstances","href":"/reference/daily-react/use-recording-instances"},{"title":"useRoom","href":"/reference/daily-react/use-room"},{"title":"useRoomExp","href":"/reference/daily-react/use-room-exp"},{"title":"useScreenShare","href":"/reference/daily-react/use-screen-share"},{"title":"useSendSettings","href":"/reference/daily-react/use-send-settings"},{"title":"useThrottledDailyEvent","href":"/reference/daily-react/use-throttled-daily-event"},{"title":"useTranscription","href":"/reference/daily-react/use-transcription"},{"title":"useWaitingParticipants","href":"/reference/daily-react/use-waiting-participants"}]}]},{"dropdown":"React Native","icon":"mobile","pages":[{"group":"Daily Call Client","pages":[{"title":"Daily Call Client","href":"/reference/react-native/daily-call-client/index"},{"title":"Daily.createCallObject()","href":"/reference/react-native/daily-call-client/create-call-object"}]},{"group":"Types","pages":[{"title":"Types","href":"/reference/react-native/types/index"},{"title":"DailyCallOptions","href":"/reference/react-native/types/daily-call-options"},{"title":"DailyParticipant","href":"/reference/react-native/types/daily-participant"},{"title":"DailyParticipantPermissions","href":"/reference/react-native/types/daily-participant-permissions"},{"title":"DailyStreamingLayoutConfig","href":"/reference/react-native/types/daily-streaming-layout-config"},{"title":"DailyStreamingOptions","href":"/reference/react-native/types/daily-streaming-options"},{"title":"DailyTrackState","href":"/reference/react-native/types/daily-track-state"}]},{"group":"Static Methods","pages":[{"title":"Static methods","href":"/reference/react-native/static-methods/index"},{"title":"Daily.getCallInstance()","href":"/reference/react-native/static-methods/get-call-instance"},{"title":"supportedBrowser()","href":"/reference/react-native/static-methods/supported-browser"}]},{"group":"Instance Methods","pages":[{"title":"Instance methods","href":"/reference/react-native/instance-methods/index"},{"title":"abortTestNetworkConnectivity()","href":"/reference/react-native/instance-methods/abort-test-network-connectivity"},{"title":"abortTestWebsocketConnectivity()","href":"/reference/react-native/instance-methods/abort-test-websocket-connectivity"},{"title":"accessState()","href":"/reference/react-native/instance-methods/access-state"},{"title":"addLiveStreamingEndpoints()","href":"/reference/react-native/instance-methods/add-live-streaming-endpoints"},{"title":"cycleCamera()","href":"/reference/react-native/instance-methods/cycle-camera"},{"title":"destroy()","href":"/reference/react-native/instance-methods/destroy"},{"title":"enumerateDevices()","href":"/reference/react-native/instance-methods/enumerate-devices"},{"title":"getCameraFacingMode()","href":"/reference/react-native/instance-methods/get-camera-facing-mode"},{"title":"getCpuLoadStats()","href":"/reference/react-native/instance-methods/get-cpu-load-stats"},{"title":"getInputDevices()","href":"/reference/react-native/instance-methods/get-input-devices"},{"title":"getLocalAudioLevel()","href":"/reference/react-native/instance-methods/get-local-audio-level"},{"title":"getNetworkStats()","href":"/reference/react-native/instance-methods/get-network-stats"},{"title":"getReceiveSettings()","href":"/reference/react-native/instance-methods/get-receive-settings"},{"title":"getRemoteParticipantsAudioLevel()","href":"/reference/react-native/instance-methods/get-remote-participants-audio-level"},{"title":"getSendSettings()","href":"/reference/react-native/instance-methods/get-send-settings"},{"title":"isDestroyed()","href":"/reference/react-native/instance-methods/is-destroyed"},{"title":"isLocalAudioLevelObserverRunning()","href":"/reference/react-native/instance-methods/is-local-audio-level-observer-running"},{"title":"isRemoteParticipantsAudioLevelObserverRunning()","href":"/reference/react-native/instance-methods/is-remote-participants-audio-level-observer-running"},{"title":"join()","href":"/reference/react-native/instance-methods/join"},{"title":"leave()","href":"/reference/react-native/instance-methods/leave"},{"title":"load()","href":"/reference/react-native/instance-methods/load"},{"title":"localAudio()","href":"/reference/react-native/instance-methods/local-audio"},{"title":"localScreenAudio()","href":"/reference/react-native/instance-methods/local-screen-audio"},{"title":"localScreenVideo()","href":"/reference/react-native/instance-methods/local-screen-video"},{"title":"localVideo()","href":"/reference/react-native/instance-methods/local-video"},{"title":"meetingSessionState()","href":"/reference/react-native/instance-methods/meeting-session-state"},{"title":"meetingSessionSummary()","href":"/reference/react-native/instance-methods/meeting-session-summary"},{"title":"meetingState()","href":"/reference/react-native/instance-methods/meeting-state"},{"title":"nativeInCallAudioMode()","href":"/reference/react-native/instance-methods/native-in-call-audio-mode"},{"title":"off()","href":"/reference/react-native/instance-methods/off"},{"title":"on()","href":"/reference/react-native/instance-methods/on"},{"title":"once()","href":"/reference/react-native/instance-methods/once"},{"title":"participantCounts()","href":"/reference/react-native/instance-methods/participant-counts"},{"title":"participants()","href":"/reference/react-native/instance-methods/participants"},{"title":"preAuth()","href":"/reference/react-native/instance-methods/pre-auth"},{"title":"removeLiveStreamingEndpoints()","href":"/reference/react-native/instance-methods/remove-live-streaming-endpoints"},{"title":"requestAccess()","href":"/reference/react-native/instance-methods/request-access"},{"title":"room()","href":"/reference/react-native/instance-methods/room"},{"title":"sendAppMessage()","href":"/reference/react-native/instance-methods/send-app-message"},{"title":"sendDTMF()","href":"/reference/react-native/instance-methods/send-dtmf"},{"title":"setAudioDevice()","href":"/reference/react-native/instance-methods/set-audio-device"},{"title":"setCamera()","href":"/reference/react-native/instance-methods/set-camera"},{"title":"setIceConfig()","href":"/reference/react-native/instance-methods/set-ice-config"},{"title":"setLocalAudio()","href":"/reference/react-native/instance-methods/set-local-audio"},{"title":"setLocalVideo()","href":"/reference/react-native/instance-methods/set-local-video"},{"title":"setMeetingSessionData()","href":"/reference/react-native/instance-methods/set-meeting-session-data"},{"title":"setNativeInCallAudioMode()","href":"/reference/react-native/instance-methods/set-native-in-call-audio-mode"},{"title":"setProxyUrl()","href":"/reference/react-native/instance-methods/set-proxy-url"},{"title":"setSubscribeToTracksAutomatically()","href":"/reference/react-native/instance-methods/set-subscribe-to-tracks-automatically"},{"title":"setUserData()","href":"/reference/react-native/instance-methods/set-user-data"},{"title":"setUserName()","href":"/reference/react-native/instance-methods/set-user-name"},{"title":"sipCallTransfer()","href":"/reference/react-native/instance-methods/sip-call-transfer"},{"title":"sipRefer()","href":"/reference/react-native/instance-methods/sip-refer"},{"title":"startCamera()","href":"/reference/react-native/instance-methods/start-camera"},{"title":"startDialOut()","href":"/reference/react-native/instance-methods/start-dial-out"},{"title":"startLiveStreaming()","href":"/reference/react-native/instance-methods/start-live-streaming"},{"title":"startLocalAudioLevelObserver()","href":"/reference/react-native/instance-methods/start-local-audio-level-observer"},{"title":"startRecording()","href":"/reference/react-native/instance-methods/start-recording"},{"title":"startRemoteParticipantsAudioLevelObserver()","href":"/reference/react-native/instance-methods/start-remote-participants-audio-level-observer"},{"title":"startScreenShare()","href":"/reference/react-native/instance-methods/start-screen-share"},{"title":"startTranscription()","href":"/reference/react-native/instance-methods/start-transcription"},{"title":"stopDialOut()","href":"/reference/react-native/instance-methods/stop-dial-out"},{"title":"stopLiveStreaming()","href":"/reference/react-native/instance-methods/stop-live-streaming"},{"title":"stopLocalAudioLevelObserver()","href":"/reference/react-native/instance-methods/stop-local-audio-level-observer"},{"title":"stopRecording()","href":"/reference/react-native/instance-methods/stop-recording"},{"title":"stopRemoteParticipantsAudioLevelObserver()","href":"/reference/react-native/instance-methods/stop-remote-participants-audio-level-observer"},{"title":"stopScreenShare()","href":"/reference/react-native/instance-methods/stop-screen-share"},{"title":"stopTestPeerToPeerCallQuality()","href":"/reference/react-native/instance-methods/stop-test-peer-to-peer-call-quality"},{"title":"stopTranscription()","href":"/reference/react-native/instance-methods/stop-transcription"},{"title":"testNetworkConnectivity()","href":"/reference/react-native/instance-methods/test-network-connectivity"},{"title":"testPeerToPeerCallQuality()","href":"/reference/react-native/instance-methods/test-peer-to-peer-call-quality"},{"title":"testWebsocketConnectivity()","href":"/reference/react-native/instance-methods/test-websocket-connectivity"},{"title":"updateLiveStreaming()","href":"/reference/react-native/instance-methods/update-live-streaming"},{"title":"updateParticipant()","href":"/reference/react-native/instance-methods/update-participant"},{"title":"updateParticipants()","href":"/reference/react-native/instance-methods/update-participants"},{"title":"updateReceiveSettings()","href":"/reference/react-native/instance-methods/update-receive-settings"},{"title":"updateRecording()","href":"/reference/react-native/instance-methods/update-recording"},{"title":"updateScreenShare()","href":"/reference/react-native/instance-methods/update-screen-share"},{"title":"updateSendSettings()","href":"/reference/react-native/instance-methods/update-send-settings"},{"title":"updateTranscription()","href":"/reference/react-native/instance-methods/update-transcription"},{"title":"updateWaitingParticipant()","href":"/reference/react-native/instance-methods/update-waiting-participant"},{"title":"updateWaitingParticipants()","href":"/reference/react-native/instance-methods/update-waiting-participants"},{"title":"waitingParticipants()","href":"/reference/react-native/instance-methods/waiting-participants"}]},{"group":"Events","pages":[{"title":"react-native-daily-js events","href":"/reference/react-native/events/index"},{"title":"Lifecycle events","href":"/reference/react-native/events/lifecycle-events"},{"title":"Participant events","href":"/reference/react-native/events/participant-events"},{"title":"Media events","href":"/reference/react-native/events/media-events"},{"title":"Network events","href":"/reference/react-native/events/network-events"},{"title":"Settings \u0026 device events","href":"/reference/react-native/events/settings-events"},{"title":"Messaging events","href":"/reference/react-native/events/messaging-events"},{"title":"Recording events","href":"/reference/react-native/events/recording-events"},{"title":"Live streaming events","href":"/reference/react-native/events/live-streaming-events"},{"title":"Transcription events","href":"/reference/react-native/events/transcription-events"},{"title":"Telephony events (SIP/PSTN)","href":"/reference/react-native/events/telephony-events"},{"title":"Error events","href":"/reference/react-native/events/error-events"}]}]},{"dropdown":"Android","icon":"android","href":"https://reference-android.daily.co/"},{"dropdown":"iOS","icon":"apple","href":"https://reference-ios.daily.co/"},{"dropdown":"Flutter","icon":"flutter","href":"https://pub.dev/packages/daily_flutter"},{"dropdown":"Python","icon":"python","href":"https://reference-python.daily.co/"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"REST API - Daily","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}