Skip to main content

REST

REST endpoints live under https://api.lumio.vision/v1. Request and response JSON fields use snake_case. Send JSON mutations with Content-Type: application/json; clients should send Accept: application/json.

curl https://api.lumio.vision/v1/events \
-H "Authorization: Bearer lm_svc_your_key" \
-H "Accept: application/json"

Most resource responses use a data field and a _links.self link. Paginated responses include data, _links, and _meta.

Errors​

REST errors use this envelope:

{
"error": "UNAUTHORIZED",
"message": "Unauthorized: missing token",
"details": null
}
CodeHTTP statusMeaning
DATABASE_ERROR500Database failure. Message detail is scrubbed.
REDIS_ERROR500Cache or Redis failure. Message detail is scrubbed.
NOT_FOUND404Resource not found.
UNAUTHORIZED401Missing authentication, anonymous credential, expired key, or invalid key on a guarded route.
FORBIDDEN403Authenticated but missing permission, feature, account access, developer ownership, or first-party/admin class bar.
BAD_REQUEST400Invalid request shape or invalid parameter.
CONFLICT409Resource state conflict.
INTERNAL_SERVER_ERROR500Unexpected server failure. Message detail is scrubbed.
VALIDATION_ERROR400Validation failure, including unknown API-key scopes.
RATE_LIMIT_EXCEEDED429Request bucket exhausted.
PLAN_LIMIT_REACHED403Plan limit blocks the requested write.
FEATURE_DISABLED403Required feature flag or plan feature is disabled.
CREDENTIAL_DECRYPTION_FAILED422Stored OAuth app credentials cannot be decrypted and must be re-entered.
RATE_LIMIT_UNAVAILABLE503Redis-backed rate limiting is unavailable on an expensive path.

Rate Limits​

API keys use a flat 1200 requests per minute per key bucket. The window is 60 seconds. There are no endpoint-specific public API-key limits.

Successful and failed requests include:

HeaderMeaning
X-RateLimit-LimitMaximum requests in the current window.
X-RateLimit-RemainingRemaining requests in the current window.
X-RateLimit-ResetUnix timestamp when the current window resets.
Retry-AfterPresent on 429; seconds until retry.

Most routes fail open if Redis is unavailable for rate limiting. Expensive paths fail closed with 503 RATE_LIMIT_UNAVAILABLE; these include font proxying, uploads, bundles, screenshots, source downloads, previews, API-key routes, token routes, WebSocket-token minting, popout exchange, OAuth authorize, and OAuth token exchange.

API-Key Management Endpoints​

OperationREST pathScope and class bar
List personal keysGET /v1/api-keysFirst-party user or personal key with apikeys:read; not plan-gated
Create personal keyPOST /v1/api-keysFirst-party user or personal key with apikeys:create; requires feature:apikeys
Assignable scopes`GET /v1/api-keys/permissions?kind=personalservice
Rename personal keyPATCH /v1/api-keys/{id}First-party user or personal key with apikeys:edit; requires feature:apikeys
Rotate personal keyPOST /v1/api-keys/{id}/rotateFirst-party user or personal key with apikeys:edit; requires feature:apikeys
Delete personal keyDELETE /v1/api-keys/{id}First-party user or personal key with apikeys:delete; not plan-gated
List service keysGET /v1/service-keysFirst-party user or personal key with apikeys:read; not plan-gated
Create service keyPOST /v1/service-keysInteractive user session with apikeys:create; requested scopes must be within the caller's grants; requires feature:apikeys
Rename service keyPATCH /v1/service-keys/{id}First-party user or personal key with apikeys:edit; requires feature:apikeys
Rotate service keyPOST /v1/service-keys/{id}/rotateInteractive user session with apikeys:edit; every existing key scope must be within the caller's grants; requires feature:apikeys
Delete service keyDELETE /v1/service-keys/{id}First-party user or personal key with apikeys:delete; not plan-gated
List developer keysGET /v1/developer/api-keysFirst-party approved developer or personal key
Create developer keyPOST /v1/developer/api-keysInteractive session of an approved developer; requested scopes must be extension-dev:* and within the caller's grants; team keys require team-secrets:edit
Rename developer keyPATCH /v1/developer/api-keys/{id}First-party approved developer or personal key; a team key needs team-secrets:edit on that team
Revoke developer keyDELETE /v1/developer/api-keys/{id}First-party approved developer or personal key; a team key needs team-secrets:edit on that team

Endpoint Index​

This index lists selected operations from the generated OpenAPI document at apps/api/openapi.json. Download /v1/openapi.json for the complete operation list and schemas.

Health​

MethodPathOperationAccess
GET/v1v1_indexPublic
GET/v1/healthhealth_checkPublic

Abuse Reports​

MethodPathOperationAccess
POST/v1/abuse-reportssubmit_abuse_reportPublic
GET/v1/admin/abuse-reportslist_abuse_reportsAdmin only; API keys cannot reach
PATCH/v1/admin/abuse-reports/{id}resolve_abuse_reportAdmin only; API keys cannot reach

Audit​

MethodPathOperationAccess
GET/v1/account/audit-logaccount_audit_logPersonal or service key with audit-log:read
POST/v1/internal/audit-ingestingest_audit_eventSystem key with audit:ingest; API keys cannot reach
GET/v1/me/audit-logmy_audit_logFirst-party user or personal key

Accounts​

MethodPathOperationAccess
POST/v1/accountscreate_accountFirst-party user or personal key
GET/v1/accounts/login-assignmentslist_login_assignmentsFirst-party user or personal key with login-assignments:read
POST/v1/accounts/login-assignmentsassign_login_connectionFirst-party user or personal key with login-assignments:create
DELETE/v1/accounts/login-assignments/{provider}remove_login_assignmentFirst-party user or personal key with login-assignments:delete
GET/v1/accounts/{id}get_accountFirst-party user or personal key
DELETE/v1/accounts/{id}dissolve_accountFirst-party user or personal key with account:delete
GET/v1/accounts/{id}/enabled-featuresget_account_enabled_featuresFirst-party user or personal key
GET/v1/accounts/{id}/feature-statusesget_account_feature_statusesFirst-party user or personal key
POST/v1/accounts/{id}/leaveleave_accountFirst-party user or personal key
DELETE/v1/login-connections/{id}delete_login_connectionFirst-party user or personal key

Members​

MethodPathOperationAccess
GET/v1/accounts/{id}/memberslist_membersFirst-party user or personal key with members:read
DELETE/v1/accounts/{id}/members/{membership_id}remove_memberFirst-party user or personal key with members:delete
PATCH/v1/accounts/{id}/members/{membership_id}/roleupdate_member_roleFirst-party user or personal key with members:edit
GET/v1/inviteslist_invitesPersonal or service key with members:read
POST/v1/invitescreate_invitePersonal or service key with members:create
POST/v1/invites/{code}/acceptaccept_inviteAuthenticated
GET/v1/invites/{code}/infoget_invite_by_codePublic
DELETE/v1/invites/{id}delete_invitePersonal or service key with members:delete

Admin​

MethodPathOperationAccess
GET/v1/admin/accountslist_accountsAdmin only; API keys cannot reach
GET/v1/admin/accounts/{account_id}/api-keysadmin_list_account_api_keysAdmin only; API keys cannot reach
GET/v1/admin/accounts/{id}get_account_detailAdmin only; API keys cannot reach
GET/v1/admin/accounts/{id}/bot-connectionsadmin_list_bot_connectionsAdmin only; API keys cannot reach
DELETE/v1/admin/accounts/{id}/bot-connections/{platform}admin_delete_bot_connectionAdmin only; API keys cannot reach
DELETE/v1/admin/accounts/{id}/connections/{platform}admin_delete_connectionAdmin only; API keys cannot reach
GET/v1/admin/accounts/{id}/featuresget_account_featuresAdmin only; API keys cannot reach
PUT/v1/admin/accounts/{id}/featuresset_account_featureAdmin only; API keys cannot reach
DELETE/v1/admin/accounts/{id}/features/{feature_id}clear_account_featureAdmin only; API keys cannot reach
GET/v1/admin/accounts/{id}/limitsget_account_limitsAdmin only; API keys cannot reach
PUT/v1/admin/accounts/{id}/limitsupsert_account_limitsAdmin only; API keys cannot reach
PATCH/v1/admin/accounts/{id}/planupdate_account_planAdmin only; API keys cannot reach
PUT/v1/admin/accounts/{id}/resolved-limitsset_account_resolved_limitsAdmin only; API keys cannot reach
GET/v1/admin/accounts/{id}/se-tokensadmin_list_se_tokensAdmin only; API keys cannot reach
DELETE/v1/admin/accounts/{id}/se-tokens/{token_id}admin_delete_se_tokenAdmin only; API keys cannot reach
GET/v1/admin/admin-permissionslist_admin_permissionsAdmin only; API keys cannot reach
GET/v1/admin/admin-roleslist_admin_rolesAdmin only; API keys cannot reach
POST/v1/admin/admin-rolescreate_admin_roleAdmin only; API keys cannot reach
GET/v1/admin/admin-roles/{id}get_admin_roleAdmin only; API keys cannot reach
DELETE/v1/admin/admin-roles/{id}delete_admin_role_routeAdmin only; API keys cannot reach
PATCH/v1/admin/admin-roles/{id}patch_admin_roleAdmin only; API keys cannot reach
GET/v1/admin/admin-roles/{id}/memberslist_admin_role_membersAdmin only; API keys cannot reach
PUT/v1/admin/admin-roles/{id}/members/{userId}assign_admin_role_memberAdmin only; API keys cannot reach
DELETE/v1/admin/admin-roles/{id}/members/{userId}unassign_admin_role_memberAdmin only; API keys cannot reach
DELETE/v1/admin/api-keys/{kind}/{id}admin_delete_api_keyAdmin only; API keys cannot reach
PATCH/v1/admin/api-keys/{kind}/{id}admin_update_api_keyAdmin only; API keys cannot reach
POST/v1/admin/api-keys/{kind}/{id}/rotateadmin_rotate_api_keyAdmin only; API keys cannot reach
GET/v1/admin/audit-loglist_audit_eventsAdmin only; API keys cannot reach
GET/v1/admin/bot-commandsadmin_list_bot_commandsAdmin only; API keys cannot reach
POST/v1/admin/bot-commandsadmin_create_global_bot_commandAdmin only; API keys cannot reach
PUT/v1/admin/bot-commands/{id}admin_update_bot_commandAdmin only; API keys cannot reach
DELETE/v1/admin/bot-commands/{id}admin_delete_bot_commandAdmin only; API keys cannot reach
GET/v1/admin/bot-connectionslist_global_bot_connectionsAdmin only; API keys cannot reach
DELETE/v1/admin/bot-connections/{platform}delete_global_bot_connectionAdmin only; API keys cannot reach
GET/v1/admin/bot-connections/{platform}/authorizeauthorize_global_botAdmin only; API keys cannot reach
POST/v1/admin/bot-connections/{platform}/exchangeexchange_global_bot_oauthAdmin only; API keys cannot reach
GET/v1/admin/bot-control/statusesadmin_bot_statusesAdmin only; API keys cannot reach
PUT/v1/admin/bot-control/{account_id}/{platform}admin_toggle_botAdmin only; API keys cannot reach
GET/v1/admin/couponslist_couponsAdmin only; API keys cannot reach
POST/v1/admin/couponscreate_couponAdmin only; API keys cannot reach
GET/v1/admin/coupons/{id}get_couponAdmin only; API keys cannot reach
PUT/v1/admin/coupons/{id}update_couponAdmin only; API keys cannot reach
DELETE/v1/admin/coupons/{id}deactivate_couponAdmin only; API keys cannot reach
GET/v1/admin/discord-guildsadmin_discord_guildsAdmin only; API keys cannot reach
DELETE/v1/admin/discord-guilds/{guild_id}admin_delete_discord_guildAdmin only; API keys cannot reach
GET/v1/admin/feature-flagslist_feature_flagsAdmin only; API keys cannot reach
GET/v1/admin/feature-flags/detaillist_feature_flags_detailAdmin only; API keys cannot reach
PATCH/v1/admin/feature-flags/{id}update_feature_flagAdmin only; API keys cannot reach
PUT/v1/admin/feature-flags/{id}/detailupdate_feature_flag_detailAdmin only; API keys cannot reach
GET/v1/admin/oauth-clientslist_oauth_clientsAdmin only; API keys cannot reach
POST/v1/admin/oauth-clientscreate_oauth_clientAdmin only; API keys cannot reach
GET/v1/admin/oauth-clients/{id}get_oauth_clientAdmin only; API keys cannot reach
DELETE/v1/admin/oauth-clients/{id}delete_oauth_clientAdmin only; API keys cannot reach
PATCH/v1/admin/oauth-clients/{id}update_oauth_clientAdmin only; API keys cannot reach
POST/v1/admin/planscreate_planAdmin only; API keys cannot reach
DELETE/v1/admin/plans/{id}delete_planAdmin only; API keys cannot reach
PATCH/v1/admin/plans/{id}update_planAdmin only; API keys cannot reach
PUT/v1/admin/plans/{id}/featuresset_plan_featureAdmin only; API keys cannot reach
POST/v1/admin/privacy/chat/eraseerase_chat_subjectAdmin only; API keys cannot reach
DELETE/v1/admin/privacy/youtube/member/{member_channel_id}erase_memberAdmin only; API keys cannot reach
GET/v1/admin/providerslist_providersAdmin only; API keys cannot reach
PATCH/v1/admin/providers/{platform}/enabledset_provider_enabledAdmin only; API keys cannot reach
PATCH/v1/admin/providers/{platform}/toggletoggle_providerAdmin only; API keys cannot reach
PATCH/v1/admin/providers/{platform}/{subtype}/enabledset_provider_subtype_enabledAdmin only; API keys cannot reach
PATCH/v1/admin/providers/{platform}/{subtype}/toggletoggle_provider_subtypeAdmin only; API keys cannot reach
GET/v1/admin/system-connectionslist_system_connectionsAdmin only; API keys cannot reach
PUT/v1/admin/system-connections/{platform}upsert_system_connectionAdmin only; API keys cannot reach
DELETE/v1/admin/system-connections/{platform}delete_system_connectionAdmin only; API keys cannot reach
GET/v1/admin/system-key-permissionslist_system_key_permissionsAdmin only; API keys cannot reach
GET/v1/admin/system-keyslist_system_keysAdmin only; API keys cannot reach
POST/v1/admin/system-keyscreate_system_keyAdmin only; API keys cannot reach
DELETE/v1/admin/system-keys/{id}delete_system_keyAdmin only; API keys cannot reach
GET/v1/admin/userslist_usersAdmin only; API keys cannot reach
GET/v1/admin/users/{id}get_user_detailAdmin only; API keys cannot reach
PATCH/v1/admin/users/{id}patch_userAdmin only; API keys cannot reach
DELETE/v1/admin/users/{id}/login-connections/{provider}admin_delete_login_connectionAdmin only; API keys cannot reach
GET/v1/admin/users/{user_id}/api-keysadmin_list_user_api_keysAdmin only; API keys cannot reach

CSP Reports​

MethodPathOperationAccess
GET/v1/admin/csp-reportslist_csp_reportsAdmin only; API keys cannot reach
POST/v1/csp-report-ingestingest_csp_reportPublic

AdminDeveloperApplications​

MethodPathOperationAccess
GET/v1/admin/developer-applicationslist_applicationsAdmin only; API keys cannot reach
GET/v1/admin/developer-applications/{id}get_application_detailAdmin only; API keys cannot reach
POST/v1/admin/developer-applications/{id}/approveapprove_applicationAdmin only; API keys cannot reach
POST/v1/admin/developer-applications/{id}/rejectreject_applicationAdmin only; API keys cannot reach

AdminDeveloperTeams​

MethodPathOperationAccess
GET/v1/admin/developer-teamslist_teamsAdmin only; API keys cannot reach
GET/v1/admin/developer-teams/{id}get_teamAdmin only; API keys cannot reach
DELETE/v1/admin/developer-teams/{id}delete_teamAdmin only; API keys cannot reach
POST/v1/admin/developer-teams/{id}/membersadd_team_memberAdmin only; API keys cannot reach
DELETE/v1/admin/developer-teams/{id}/members/{member_id}remove_team_memberAdmin only; API keys cannot reach
PATCH/v1/admin/developer-teams/{id}/members/{member_id}/roleupdate_team_member_roleAdmin only; API keys cannot reach
GET/v1/admin/developerslist_developersAdmin only; API keys cannot reach
GET/v1/admin/developers/{id}get_developerAdmin only; API keys cannot reach
DELETE/v1/admin/developers/{id}delete_developerAdmin only; API keys cannot reach
GET/v1/admin/developers/{id}/limit-requestsget_developer_limit_requestsAdmin only; API keys cannot reach
GET/v1/admin/developers/{id}/limitsget_developer_limitsAdmin only; API keys cannot reach
PUT/v1/admin/developers/{id}/limitsset_developer_limitAdmin only; API keys cannot reach
PATCH/v1/admin/developers/{id}/revenue-splitset_revenue_splitAdmin only; API keys cannot reach
PATCH/v1/admin/extensions/{id}/limitsset_extension_limitsAdmin only; API keys cannot reach
GET/v1/admin/limit-requestslist_all_limit_requestsAdmin only; API keys cannot reach
PUT/v1/admin/limit-requests/{id}review_limit_requestAdmin only; API keys cannot reach
GET/v1/admin/limit-requests/{id}/eventsget_limit_request_eventsAdmin only; API keys cannot reach

DeveloperVerifications​

MethodPathOperationAccess
GET/v1/admin/developer-verificationslist_pending_verificationsAdmin only; API keys cannot reach
GET/v1/admin/developer-verifications/{id}get_verification_detailAdmin only; API keys cannot reach
POST/v1/admin/developer-verifications/{id}/approveapprove_verificationAdmin only; API keys cannot reach
POST/v1/admin/developer-verifications/{id}/rejectreject_verificationAdmin only; API keys cannot reach
GET/v1/developer/verificationget_my_verificationFirst-party user or personal key; developer keys cannot manage applications
POST/v1/developer/verificationsubmit_my_verificationFirst-party user or personal key; developer keys cannot manage applications

ExtensionReviews​

MethodPathOperationAccess
GET/v1/admin/extension-reviewslist_review_queueAdmin only; API keys cannot reach
GET/v1/admin/extensionslist_admin_extensionsAdmin only; API keys cannot reach
POST/v1/admin/extensions/{id}/suspendsuspend_extensionAdmin only; API keys cannot reach
GET/v1/extensions/reviews/{id}get_review_detailAdmin only; API keys cannot reach
POST/v1/extensions/reviews/{id}/approveapprove_versionAdmin only; API keys cannot reach
POST/v1/extensions/reviews/{id}/rejectreject_versionAdmin only; API keys cannot reach
GET/v1/extensions/reviews/{id}/sourcedownload_sourceAdmin only; API keys cannot reach

Tokens​

MethodPathOperationAccess
GET/v1/api-keyslist_api_keysFirst-party user or personal key with apikeys:read
POST/v1/api-keyscreate_api_keyFirst-party user or personal key with apikeys:create
GET/v1/api-keys/permissionsavailable_api_key_permissionsFirst-party user or personal key with apikeys:read
DELETE/v1/api-keys/{id}delete_api_keyFirst-party user or personal key with apikeys:delete
PATCH/v1/api-keys/{id}update_api_keyFirst-party user or personal key with apikeys:edit
POST/v1/api-keys/{id}/rotaterotate_api_keyFirst-party user or personal key with apikeys:edit
GET/v1/service-keyslist_service_keysFirst-party user or personal key with apikeys:read
POST/v1/service-keyscreate_service_keyInteractive user session with apikeys:create; requested scopes must be within the caller's grants
DELETE/v1/service-keys/{id}delete_service_keyFirst-party user or personal key with apikeys:delete
PATCH/v1/service-keys/{id}update_service_keyFirst-party user or personal key with apikeys:edit
POST/v1/service-keys/{id}/rotaterotate_service_keyInteractive user session with apikeys:edit; every existing key scope must be within the caller's grants
GET/v1/tokenslist_tokensFirst-party user or personal key with tokens:read
POST/v1/tokenscreate_tokenFirst-party user or personal key with tokens:create
GET/v1/tokens/meget_my_permissionsFirst-party user or personal key
DELETE/v1/tokens/{id}delete_tokenFirst-party user or personal key with tokens:delete
PATCH/v1/tokens/{id}update_tokenFirst-party user or personal key with tokens:edit

Auth​

MethodPathOperationAccess
POST/v1/auth/authorizeauthorizePublic
POST/v1/auth/linklink_providerFirst-party user or personal key
POST/v1/auth/logoutlogoutAuthenticated
POST/v1/auth/popout/exchangeexchange_popout_tokenPublic
POST/v1/auth/popout/ws-tokenissue_popout_ws_tokenAuthenticated
POST/v1/auth/refreshrefresh_tokenPublic
POST/v1/auth/tokenexchange_tokenPublic
POST/v1/auth/token/exchangetoken_exchangePublic
POST/v1/auth/ws-tokenissue_ws_tokenFirst-party user or personal key

AutomationNodes​

MethodPathOperationAccess
GET/v1/automation/extension-nodeslist_installed_automation_nodesPersonal or service key with automations:read
POST/v1/automation/webhooks/{extension_id}/{install_id}receive_automation_webhookPublic
GET/v1/automation/webhooks/{install_id}/{automation_id}get_automation_webhook_urlPersonal or service key with automations:read

Automations​

MethodPathOperationAccess
GET/v1/automationslist_automationsPersonal or service key with automations:read; feature feature:automation
POST/v1/automationscreate_automationPersonal or service key with automations:create; feature feature:automation
GET/v1/automations/{id}get_automationPersonal or service key with automations:read; feature feature:automation
DELETE/v1/automations/{id}delete_automationPersonal or service key with automations:delete; feature feature:automation
PATCH/v1/automations/{id}update_automationPersonal or service key with automations:edit; feature feature:automation
PUT/v1/automations/{id}/edgessave_edgesPersonal or service key with automations:edit; feature feature:automation
POST/v1/automations/{id}/executeexecute_automationPersonal or service key with automations:execute; feature feature:automation
PUT/v1/automations/{id}/nodessave_nodesPersonal or service key with automations:edit; feature feature:automation

Billing​

MethodPathOperationAccess
GET/v1/billing/account-limitsget_account_limitsFirst-party user or personal key with plan:read
POST/v1/billing/cancelcancel_subscriptionInteractive user session with plan:edit
POST/v1/billing/checkoutcreate_checkoutInteractive user session
GET/v1/billing/invoicesget_invoicesFirst-party user or personal key with plan:read
POST/v1/billing/portalcreate_portalInteractive user session with plan:edit
GET/v1/billing/statusget_billing_statusFirst-party user or personal key with plan:read
GET/v1/billing/validate-couponvalidate_couponFirst-party user or personal key
POST/v1/webhooks/stripestripe_webhookPublic

Bot Commands​

MethodPathOperationAccess
GET/v1/bot-commandslist_bot_commandsPersonal or service key with bot-commands:read; feature feature:bot_commands
POST/v1/bot-commandscreate_bot_commandPersonal or service key with bot-commands:create; feature feature:bot_commands
PUT/v1/bot-commands/{id}update_bot_commandPersonal or service key with bot-commands:edit; feature feature:bot_commands
DELETE/v1/bot-commands/{id}delete_bot_commandPersonal or service key with bot-commands:delete; feature feature:bot_commands
POST/v1/bot-commands/{id}/overrideupsert_bot_command_overridePersonal or service key with bot-commands:edit; feature feature:bot_commands
DELETE/v1/bot-commands/{id}/overridedelete_bot_command_overridePersonal or service key with bot-commands:delete; feature feature:bot_commands

Bot Connections​

MethodPathOperationAccess
GET/v1/bot-connectionslist_bot_connectionsPersonal or service key with bot-connections:read; feature feature:bots
DELETE/v1/bot-connections/{platform}delete_bot_connectionPersonal or service key with bot-connections:delete; feature feature:bots
GET/v1/bot-connections/{platform}/authorizeauthorizeInteractive session with bot-connections:create and feature:bots; discord returns a verified global-bot server invite
POST/v1/bot-connections/{platform}/exchangeoauth_exchangeInteractive session bound to the authorize state; legacy account-source bot exchange, rejects discord
POST/v1/bot-rejoinbot_rejoinPersonal or service key with bot-connections:create; feature feature:bots
GET/v1/bot-statusbot_statusPersonal or service key with bot-connections:read; feature feature:bots
POST/v1/bot-togglebot_togglePersonal or service key with bot-connections:create; feature feature:bots

Bot Modules​

MethodPathOperationAccess
GET/v1/bot-moduleslist_bot_modulesPersonal or service key with bot-modules:read; feature feature:bot_modules
PUT/v1/bot-modules/{module_name}save_bot_modulePersonal or service key with bot-modules:edit; feature feature:bot_modules
DELETE/v1/bot-modules/{module_name}delete_bot_modulePersonal or service key with bot-modules:edit; feature feature:bot_modules

BotModuleExtensions​

MethodPathOperationAccess
POST/v1/bot-modules/killkill_switchPersonal or service key with bot-modules:edit
GET/v1/developer/extensions/{id}/errorsget_extension_errorsDeveloper key, personal key, or user session with extension-dev:read
GET/v1/developer/extensions/{id}/metricsget_extension_metricsDeveloper key, personal key, or user session with extension-dev:read
GET/v1/extension-installs/{id}/logsget_extension_install_logsPersonal or service key with bot-modules:read (bot-module install) or automations:read (automation-node install)
GET/v1/internal/bot-modules/{account_id}/triggersget_triggersAuthenticated

Connections​

MethodPathOperationAccess
GET/v1/channel-infoget_channel_infoPersonal or service key with connections:read; feature feature:connections
GET/v1/connections/channellist_connectionsPersonal or service key with connections:read; feature feature:connections
DELETE/v1/connections/channel/{platform}delete_connectionPersonal or service key with connections:delete; feature feature:connections
GET/v1/connections/channel/{platform}/authorizeauthorizePersonal or service key with connections:create; feature feature:connections
GET/v1/connections/channel/{platform}/callbackoauth_callbackPublic
POST/v1/connections/channel/{platform}/exchangeoauth_exchangePublic
GET/v1/connections/credential-modescredential_modesAuthenticated
GET/v1/connections/credentialslist_credentialsPersonal or service key with connections:read; feature feature:connections
PUT/v1/connections/credentials/{platform}save_credentialsPersonal key or user session with connections:create; feature feature:connections
DELETE/v1/connections/credentials/{platform}delete_credentialsPersonal or service key with connections:delete; feature feature:connections
POST/v1/connections/oauth/{platform}/exchangeoauth_exchange_unifiedPublic
GET/v1/connections/statusconnection_statusesPersonal key or user session with connections:read; feature feature:connections

Channel Status​

MethodPathOperationAccess
GET/v1/channel-statusget_channel_statusPersonal or service key with spotify:read

Chat​

MethodPathOperationAccess
GET/v1/chat/historyget_chat_historyPersonal or service key with chat:read; feature feature:multichat
POST/v1/chat/messagesend_chat_messagePersonal or service key with chat:write; feature feature:multichat
POST/v1/chat/moderatemoderate_chatPersonal or service key with chat:ban, chat:timeout, chat:delete; feature feature:multichat
DELETE/v1/chat/pollend_poll_endpointPersonal or service key with chat:poll; feature feature:multichat
DELETE/v1/chat/predictionend_prediction_endpointPersonal or service key with chat:prediction; feature feature:multichat
DELETE/v1/chat/raidcancel_raid_endpointPersonal or service key with chat:raid; feature feature:multichat
POST/v1/chat/sendsend_chat_to_platformPersonal key or user session with chat:write; service keys lack the user id this route requires; feature feature:multichat
GET/v1/chat/users/searchsearch_chat_usersPersonal or service key with chat:userinfo; feature feature:multichat
GET/v1/chat/users/{platform}/{platform_user_id}get_chat_user_profilePersonal or service key with chat:userinfo; feature feature:multichat
GET/v1/chat/users/{platform}/{platform_user_id}/moderation-logget_moderation_log_endpointPersonal or service key with chat:userinfo; feature feature:multichat
GET/v1/chat/users/{platform}/{platform_user_id}/noteslist_chat_user_notesPersonal key or user session with chat:notes; feature feature:multichat
POST/v1/chat/users/{platform}/{platform_user_id}/notescreate_chat_user_notePersonal or service key with chat:notes; feature feature:multichat
DELETE/v1/chat/users/{platform}/{platform_user_id}/notes/{note_id}delete_chat_user_notePersonal key or user session with chat:notes; feature feature:multichat
PATCH/v1/chat/users/{platform}/{platform_user_id}/notes/{note_id}update_chat_user_note_endpointPersonal key or user session with chat:notes; feature feature:multichat
POST/v1/chat/users/{platform}/{platform_user_id}/refreshrefresh_user_profilePersonal or service key with chat:refresh_user; feature feature:multichat
PUT/v1/chat/users/{platform}/{platform_user_id}/treatmentupdate_user_treatment_endpointPersonal or service key with chat:ban; feature feature:multichat
GET/v1/youtube/memberships/tierslist_tiersPersonal or service key with chat:read
MethodPathOperationAccess
GET/v1/copyright/blocked-songslist_blockedPersonal or service key with copyright:read; feature feature:copyright_detection
POST/v1/copyright/blocked-songsadd_blockedPersonal or service key with copyright:edit; feature feature:copyright_detection
DELETE/v1/copyright/blocked-songs/{id}delete_blockedPersonal or service key with copyright:delete; feature feature:copyright_detection
GET/v1/copyright/checkcheck_songPersonal or service key with copyright:read; feature feature:copyright_detection
POST/v1/copyright/import-playlistimport_playlistPersonal or service key with copyright:edit; feature feature:copyright_detection
GET/v1/copyright/playlist-syncslist_syncsPersonal or service key with copyright:read; feature feature:copyright_detection
DELETE/v1/copyright/playlist-syncs/{id}delete_syncPersonal or service key with copyright:delete; feature feature:copyright_detection
GET/v1/copyright/safe-songslist_safePersonal or service key with copyright:read; feature feature:copyright_detection
POST/v1/copyright/safe-songsadd_safePersonal or service key with copyright:edit; feature feature:copyright_detection
DELETE/v1/copyright/safe-songs/{id}delete_safePersonal or service key with copyright:delete; feature feature:copyright_detection
POST/v1/copyright/votecast_votePersonal or service key with copyright:vote; feature feature:copyright_detection
GET/v1/copyright/vote-candidateslist_vote_candidatesPersonal or service key with copyright:read; feature feature:copyright_detection
POST/v1/copyright/vote-candidates/{track_id}/approveapprove_vote_candidateAdmin only; API keys cannot reach
POST/v1/copyright/vote-candidates/{track_id}/dismissdismiss_vote_candidateAdmin only; API keys cannot reach

Crawler​

MethodPathOperationAccess
GET/v1/crawler/scopeget_scopeAdmin only; API keys cannot reach
PUT/v1/crawler/scopeset_scopeAdmin only; API keys cannot reach
GET/v1/crawler/watchlistlist_watchlistAdmin only; API keys cannot reach
POST/v1/crawler/watchlistadd_watchlistAdmin only; API keys cannot reach
DELETE/v1/crawler/watchlist/{platform}/{platform_channel_id}remove_watchlistAdmin only; API keys cannot reach

DeveloperExtensions​

MethodPathOperationAccess
GET/v1/developer/api-keyslist_developer_keysFirst-party user or personal key; developer keys cannot manage keys or applications
POST/v1/developer/api-keyscreate_developer_keyInteractive user session; team keys also require team-secrets:edit on that team
DELETE/v1/developer/api-keys/{id}revoke_developer_keyFirst-party user or personal key; team keys also require team-secrets:edit on that team; developer keys cannot manage keys or applications
PATCH/v1/developer/api-keys/{id}update_developer_keyFirst-party user or personal key; team keys also require team-secrets:edit on that team; developer keys cannot manage keys or applications
GET/v1/developer/extensionslist_developer_extensionsDeveloper access; owner/profile/team guard applies
POST/v1/developer/extensionscreate_developer_extensionFirst-party user with extension-dev:create; team creation also requires team-extensions:create
GET/v1/developer/extensions/{id}get_developer_extensionDeveloper access; owner/profile/team guard applies
DELETE/v1/developer/extensions/{id}delete_developer_extensionDeveloper access; owner/profile/team guard applies
PATCH/v1/developer/extensions/{id}update_developer_extensionDeveloper access; owner/profile/team guard applies
GET/v1/developer/extensions/{id}/analyticsget_extension_analyticsDeveloper access; owner/profile/team guard applies
POST/v1/developer/extensions/{id}/deletion-requestrequest_extension_deletionFirst-party user with extension-dev:delete; team-owned extensions require team-extensions:delete
POST/v1/developer/extensions/{id}/iconupload_extension_iconDeveloper key, personal key, or user session with extension-dev:edit; feature feature:extension_development
GET/v1/developer/extensions/{id}/limitsget_extension_limitsDeveloper access; owner/profile/team guard applies
GET/v1/developer/extensions/{id}/purchaseslist_extension_purchases_for_developerDeveloper access; owner/profile/team guard applies. Lists records within the 8-year retention only
GET/v1/developer/extensions/{id}/screenshotslist_extension_screenshotsDeveloper key, personal key, or user session with extension-dev:read; feature feature:extension_development
POST/v1/developer/extensions/{id}/screenshotsupload_extension_screenshotDeveloper key, personal key, or user session with extension-dev:edit; feature feature:extension_development
DELETE/v1/developer/extensions/{id}/screenshots/{screenshot_id}delete_extension_screenshotDeveloper key, personal key, or user session with extension-dev:edit; feature feature:extension_development
GET/v1/developer/extensions/{id}/secretslist_extension_secretsDeveloper access (developer keys allowed); owner/profile/team guard; team extensions need team-secrets:read
PUT/v1/developer/extensions/{id}/secrets/{key}set_extension_secretDeveloper access (developer keys allowed); owner/profile/team guard; team extensions need team-secrets:edit
DELETE/v1/developer/extensions/{id}/secrets/{key}delete_extension_secretDeveloper access (developer keys allowed); owner/profile/team guard; team extensions need team-secrets:edit
GET/v1/developer/extensions/{id}/versionslist_extension_versionsDeveloper access; owner/profile/team guard applies
POST/v1/developer/extensions/{id}/versionscreate_extension_versionOwner/profile/team guard; team-owned extensions require team-versions:create; manifest is validated
POST/v1/developer/extensions/{id}/versions/uploadupload_extension_versionDeveloper key, personal key, or user session with extension-dev:edit; team-owned extensions require team-versions:create
POST/v1/developer/extensions/{id}/versions/{vid}/submitsubmit_extension_versionFirst-party user with extension-dev:publish; team-owned extensions require team-extensions:publish; stored manifest is revalidated
GET/v1/developer/extensions/{id}/versions/{vid}/testerslist_extension_testersDeveloper access; owner/profile/team guard applies
POST/v1/developer/extensions/{id}/versions/{vid}/testersinvite_extension_testerFirst-party user with extension-dev:edit; team-owned extensions require team-testers:invite
DELETE/v1/developer/extensions/{id}/versions/{vid}/testers/{uid}remove_extension_testerDeveloper access; owner/profile/team guard applies
GET/v1/developer/limit-requestslist_developer_limit_requestsDeveloper key, personal key, or user session with extension-dev:read
POST/v1/developer/limit-requestscreate_developer_limit_requestDeveloper key, personal key, or user session with extension-dev:read
GET/v1/developer/limit-requests/{id}/eventsget_developer_limit_request_eventsDeveloper key, personal key, or user session with extension-dev:read
GET/v1/developer/limitsget_developer_limitsDeveloper key, personal key, or user session with extension-dev:read
GET/v1/developer/payout-historylist_developer_payoutsFirst-party user session or personal key with extension-dev:payouts
GET/v1/developer/payout-settingsget_developer_payout_settingsFirst-party user session or personal key with extension-dev:payouts
POST/v1/developer/payoutsupdate_developer_payout_settingsInteractive user session with extension-dev:payouts
POST/v1/developer/payouts/requestrequest_developer_payoutInteractive user session with extension-dev:payouts
GET/v1/developer/profileget_developer_profileDeveloper access; owner/profile/team guard applies
GET/v1/developer/revenueget_developer_revenueFirst-party user session or personal key with extension-dev:payouts

Create and update accept only private, unlisted, public, or paid visibility. Developer slugs beginning with system- and a developer-supplied system visibility return 400. JSON version creation and multipart upload validate the manifest schema, extension ID, and version; submission validates the stored manifest again. A manifest error returns 400 Manifest validation failed: ..., while a team member missing the action grant gets 403 Missing team permission: <permission>. Bundle and source storage keys are generated by the server.

DeveloperApplications​

MethodPathOperationAccess
GET/v1/developer/applicationget_my_applicationFirst-party user or personal key; developer keys cannot manage keys or applications
POST/v1/developer/applicationsubmit_applicationFirst-party user or personal key; developer keys cannot manage keys or applications

ExtensionAccess​

MethodPathOperationAccess
GET/v1/developer/extensions/{id}/accesslist_access_grantsDeveloper key, personal key, or user session with extension-dev:read
POST/v1/developer/extensions/{id}/accessgrant_accessDeveloper key, personal key, or user session with extension-dev:edit
GET/v1/developer/extensions/{id}/access/inviteslist_access_invitesDeveloper key, personal key, or user session with extension-dev:read
POST/v1/developer/extensions/{id}/access/invitescreate_access_inviteDeveloper key, personal key, or user session with extension-dev:edit
DELETE/v1/developer/extensions/{id}/access/invites/{invite_id}delete_access_inviteDeveloper key, personal key, or user session with extension-dev:edit
DELETE/v1/developer/extensions/{id}/access/{grant_id}revoke_accessDeveloper key, personal key, or user session with extension-dev:edit
GET/v1/extension-access-invites/{code}get_access_invitePublic
POST/v1/extension-access-invites/{code}/acceptaccept_access_invitePersonal or service key with extension-store:read; feature feature:extensions

On team-owned extensions, access and tester lists require team-testers:read; grants and invites require team-testers:invite; revocations and removals require team-testers:remove.

DeveloperStoreProfiles​

MethodPathOperationAccess
GET/v1/developer/profiles/{slug}get_developer_profilePublic
GET/v1/developer/teams/{slug}/profileget_team_profilePublic

StripeConnect​

MethodPathOperationAccess
POST/v1/developer/stripe-connect/onboardcreate_onboarding_linkInteractive user session with extension-dev:payouts; feature feature:extension_development
GET/v1/developer/stripe-connect/statusget_connect_statusFirst-party user session or personal key with extension-dev:payouts; feature feature:extension_development

DeveloperTeams​

MethodPathOperationAccess
GET/v1/developer/team-invites/{code}get_invite_by_codePublic
POST/v1/developer/team-invites/{code}/acceptaccept_inviteFirst-party user or personal key
GET/v1/developer/teamslist_teamsFirst-party user or personal key
POST/v1/developer/teamscreate_teamFirst-party user or personal key
GET/v1/developer/teams/permissionsavailable_permissionsFirst-party user or personal key
GET/v1/developer/teams/{id}get_teamFirst-party user or personal key
DELETE/v1/developer/teams/{id}delete_teamFirst-party user or personal key
PATCH/v1/developer/teams/{id}update_teamFirst-party user or personal key
GET/v1/developer/teams/{id}/inviteslist_invitesFirst-party user or personal key
POST/v1/developer/teams/{id}/invitescreate_inviteFirst-party user or personal key
DELETE/v1/developer/teams/{id}/invites/{invite_id}delete_inviteFirst-party user or personal key
GET/v1/developer/teams/{id}/memberslist_membersFirst-party user or personal key
DELETE/v1/developer/teams/{id}/members/{member_id}remove_memberFirst-party user or personal key
PATCH/v1/developer/teams/{id}/members/{member_id}/roleupdate_member_roleFirst-party user or personal key
GET/v1/developer/teams/{id}/roleslist_rolesFirst-party user or personal key
POST/v1/developer/teams/{id}/rolescreate_roleFirst-party user or personal key
DELETE/v1/developer/teams/{id}/roles/{rid}delete_roleFirst-party user or personal key
PATCH/v1/developer/teams/{id}/roles/{rid}update_roleFirst-party user or personal key

Discord Guilds​

MethodPathOperationAccess
GET/v1/discord-guildslist_guildsActive account with bot-connections:read; rows include bot_removed and missing_permissions
DELETE/v1/discord-guilds/{guild_id}disconnect_guildActive account with bot-connections:delete; deletes the server settings

Discord server installation begins with GET /v1/bot-connections/discord/authorize and completes through /api/connections/oauth/discord/callback, which exchanges and verifies Discord's code. POST /v1/discord-guilds/exchange is not an endpoint.

Emotes​

MethodPathOperationAccess
GET/v1/emotes/userget_user_emotesAuthenticated
GET/v1/emotes/{platform}/{channel_id}get_emotesAuthenticated

Events​

MethodPathOperationAccess
GET/v1/eventslist_eventsPersonal or service key with events:read; feature feature:events
POST/v1/events/emitemit_eventPersonal or service key with events:create
POST/v1/events/testbroadcast_test_eventPersonal or service key with events:create; feature feature:events
GET/v1/events/{id}get_eventPersonal or service key with events:read; feature feature:events

ExtensionBundles​

MethodPathOperationAccess
GET/v1/extension-bundles/{extension_id}/{version}/bundle.jsserve_bundle_legacyPublished: public; draft/testing: developer, extension token, or system key with bots:internal
GET/v1/extension-bundles/{extension_id}/{version}/{path}serve_bundle_filePublished: public; draft/testing: developer, extension token, or system key with bots:internal

Every bundle response has X-Content-Type-Options: nosniff. HTML, SVG, JSON, source maps, Lottie, and other non-passive content also have Content-Security-Policy: sandbox and Content-Disposition: attachment. Legacy file keys are accepted only within the owning extension version's storage namespace.

ExtensionStore​

MethodPathOperationAccess
GET/v1/extension-installslist_installsPersonal or service key with extension-store:read; feature feature:extensions
POST/v1/extension-installsinstall_extensionextension-store:install and feature:extensions; feature:extension_paid only for a non-free extension
DELETE/v1/extension-installs/{id}uninstall_extensionPersonal or service key with extension-store:uninstall; feature feature:extensions
PATCH/v1/extension-installs/{id}configure_extensionPersonal or service key with extension-store:configure; feature feature:extensions
GET/v1/extensionslist_extensionsAuthenticated
GET/v1/extensions/{id}/versions/{version}/fileslist_extension_version_filesFirst-party user or personal key with extension-store:read
GET/v1/extensions/{slug}get_extensionAuthenticated
GET/v1/extensions/{slug}/reviewslist_reviewsPersonal or service key with extension-store:read; feature feature:extensions
POST/v1/extensions/{slug}/reviewsreview_extensionPersonal or service key with extension-store:review; feature feature:extensions
GET/v1/store/extensions/{slug}/iconget_extension_iconPublic
GET/v1/store/extensions/{id}/icon-dataget_extension_icon_dataPublic; 404 unless the extension is store-visible and has an icon
GET/v1/store/extensions/{slug}/screenshotsget_extension_screenshotsPublic

Installation requires a published extension. A private extension additionally requires an account access grant or a tester invitation for the acting user; an ineligible target returns 404 Extension not found. Revoking an access grant prevents reinstalling through that grant. The GraphQL installExtension mutation applies the same check.

Installing an extension the account already has returns 409 Extension is already installed. After DELETE /v1/extension-installs/{id}, the install is gone from every read at once, and its per-install action, function and storage endpoints return 404 Extension install not found. Unless the data was deleted immediately, installing the same extension again within 30 days restores the install with its saved configuration and stored data.

ExtensionActions​

MethodPathOperationAccess
POST/v1/extension-installs/{install_id}/actions/{action}execute_extension_actionThe install's extension token, or a personal or service key with extension-store:configure; feature feature:extensions plus the action's own feature (feature:music / feature:obs_remote / feature:multichat); the manifest must declare the action

The GraphQL twin executeExtensionAction uses the same gates and returns the same error codes and messages. A rejected request (unknown action, invalid params, undeclared permission, missing feature) is an HTTP error; an action that was accepted but could not run returns 200 with success: false, error and, for chat actions, a stable error_code (bot_not_connected, bot_scope_missing, moderation_forbidden, moderation_failed, platform_not_supported, internal_error). Chat actions run as the account's bot. The action list and payloads are on the useLumioAction page.

ExtensionFunctions​

MethodPathOperationAccess
POST/v1/extension-installs/{install_id}/execute/{function_name}execute_handlerAuthenticated
POST/v1/extension-installs/{install_id}/mutate/{function_name}execute_mutatePersonal key with extension-data:edit, a System key with bots:internal, or a token bound to the install (extension, overlay or widget token; editorOnly functions refused)
POST/v1/extension-installs/{install_id}/query/{function_name}execute_queryPersonal key with extension-data:read, a System key with bots:internal, or a token bound to the install (extension, overlay or widget token; editorOnly functions refused)

query / mutate run the declarative function function_name from the installed version's functions.json with the body { "params": { … } } (the arg() values). A personal or System key may send a raw operation (table, …) instead; tokens may not. The GraphQL twins extensionQuery / extensionMutate use the same checks and messages.

ExtensionStorage​

MethodPathOperationAccess
GET/v1/extension-installs/{install_id}/storageget_storagePersonal or service key with extension-store:read, or the install's extension token; feature feature:extensions
POST/v1/extension-installs/{install_id}/storageset_storagePersonal or service key with extension-store:configure, or the install's extension token; feature feature:extensions

Storage limits per install: key ≤ 256 bytes, value ≤ 64 KiB, ≤ 1 000 keys, ≤ 1 MiB in total. See Shared Storage.

ExtensionPurchases​

MethodPathOperationAccess
POST/v1/extension-purchasescreate_purchasePersonal or service key with extension-store:install; feature feature:extensions, feature:extension_paid

ExtensionUploads​

MethodPathOperationAccess
POST/v1/extensions/{extension_id}/uploadsupload_extension_fileAuthenticated
GET/v1/extensions/{extension_id}/uploads/{filename}serve_extension_uploadPublic

Features​

MethodPathOperationAccess
GET/v1/features/enabledpublic_feature_enabledPublic
GET/v1/providers/enabledlist_enabled_providersPublic

Fonts​

MethodPathOperationAccess
GET/v1/fonts/{family}/cssget_font_cssAuthenticated
GET/v1/fonts/{family}/{weight}.woff2get_font_woff2Authenticated

Stream History​

MethodPathOperationAccess
GET/v1/historylist_historyAuthenticated
GET/v1/history/filter-optionslist_filter_optionsAuthenticated
GET/v1/history/reports/{id}get_reportAuthenticated
DELETE/v1/history/reports/{id}delete_historyAuthenticated
GET/v1/history/reports/{id}/exportexport_reportAuthenticated
GET/v1/history/reports/{id}/shared-linkslist_report_linksAuthenticated
POST/v1/history/reports/{id}/shared-linkscreate_report_linkAuthenticated
GET/v1/history/reports/{id}/statsget_report_statsAuthenticated
DELETE/v1/history/shared-links/{id}revoke_report_linkAuthenticated
PATCH/v1/history/shared-links/{id}extend_report_linkAuthenticated
GET/v1/history/shared/{token}get_public_sharePublic
GET/v1/history/shared/{token}/exportexport_public_sharePublic

Ideas​

MethodPathOperationAccess
GET/v1/ideaslist_ideasPublic
POST/v1/ideascreate_ideaPersonal key or user session with ideas:create
GET/v1/ideas/categorieslist_categoriesPublic
POST/v1/ideas/categoriescreate_categoryAdmin only; API keys cannot reach
DELETE/v1/ideas/categories/{id}delete_categoryAdmin only; API keys cannot reach
PATCH/v1/ideas/categories/{id}update_categoryAdmin only; API keys cannot reach
DELETE/v1/ideas/comments/{id}delete_commentPersonal key or user session with ideas:comment_delete
PATCH/v1/ideas/comments/{id}update_commentPersonal key or user session with ideas:comment_edit
POST/v1/ideas/comments/{id}/votevote_commentPersonal key or user session with ideas:comment_vote
DELETE/v1/ideas/comments/{id}/voteremove_comment_votePersonal key or user session with ideas:comment_vote
GET/v1/ideas/tagslist_tagsPublic
POST/v1/ideas/tagscreate_tagPersonal key or user session with ideas:create
DELETE/v1/ideas/tags/{id}delete_tagAdmin only; API keys cannot reach
GET/v1/ideas/{id}get_ideaPublic
DELETE/v1/ideas/{id}delete_ideaPersonal key or user session with ideas:delete
PATCH/v1/ideas/{id}update_ideaPersonal key or user session with ideas:edit
GET/v1/ideas/{id}/commentslist_idea_commentsPublic
POST/v1/ideas/{id}/commentscreate_commentPersonal key or user session with ideas:comment_create
GET/v1/ideas/{id}/participantslist_participantsPublic
PATCH/v1/ideas/{id}/statusupdate_idea_statusPersonal key or user session with a user-scoped permission
POST/v1/ideas/{id}/votevote_ideaPersonal key or user session with ideas:vote
DELETE/v1/ideas/{id}/voteremove_votePersonal key or user session with ideas:vote
GET/v1/ideas/{id}/voterslist_votersPublic

OBS​

MethodPathOperationAccess
GET/v1/integrations/obsget_obs_configPersonal or service key with obs:read; feature feature:obs_remote
PUT/v1/integrations/obssave_obs_configPersonal or service key with obs:edit; feature feature:obs_remote, integration:obs_websocket
DELETE/v1/integrations/obsdelete_obs_configPersonal or service key with obs:delete; feature feature:obs_remote, integration:obs_websocket
GET/v1/integrations/obs/credentialsget_obs_credentialsPersonal or service key with obs:read; feature feature:obs_remote
GET/v1/integrations/obs/statusget_obs_statusPersonal or service key with obs:read; feature feature:obs_remote
POST/v1/integrations/obs/testtest_obs_connectionPersonal or service key with obs:edit; feature feature:obs_remote
POST/v1/obs-remote/recordingrecording_controlPersonal or service key with obs:edit; feature feature:obs_remote
POST/v1/obs-remote/sceneswitch_scenePersonal or service key with obs:edit; feature feature:obs_remote
GET/v1/obs-remote/statusget_statusPersonal or service key with obs:read; feature feature:obs_remote
POST/v1/obs-remote/streamstream_controlPersonal or service key with obs:edit; feature feature:obs_remote

Marketplace​

MethodPathOperationAccess
GET/v1/marketplace/categoriesget_categories_publicPublic
GET/v1/marketplace/extensionslist_extensions_publicPublic
GET/v1/marketplace/extensions/{slug}get_extension_publicPublic
GET/v1/marketplace/extensions/{slug}/reviewsget_extension_reviews_publicPublic
GET/v1/marketplace/featuredget_featured_publicPublic

Notifications​

MethodPathOperationAccess
GET/v1/notificationslist_notificationsFirst-party user or personal key
POST/v1/notifications/delete-alldelete_all_notificationsFirst-party user or personal key
GET/v1/notifications/preferencesget_notification_preferencesFirst-party user or personal key
PATCH/v1/notifications/preferences/{notification_type}update_notification_preferenceFirst-party user or personal key
POST/v1/notifications/read-allmark_all_notifications_readFirst-party user or personal key
POST/v1/notifications/{id}/actionexecute_notification_actionFirst-party user or personal key
PATCH/v1/notifications/{id}/readmark_notification_readFirst-party user or personal key

Overlay Folders​

MethodPathOperationAccess
GET/v1/overlay-folderslist_foldersPersonal or service key with overlays:read; feature feature:overlay_folders
POST/v1/overlay-folderscreate_folderPersonal or service key with overlays:create; feature feature:overlay_folders
DELETE/v1/overlay-folders/{id}delete_folderPersonal or service key with overlays:delete; feature feature:overlay_folders
PATCH/v1/overlay-folders/{id}rename_folderPersonal or service key with overlays:edit; feature feature:overlay_folders

Overlays​

MethodPathOperationAccess
GET/v1/overlayslist_overlaysPersonal or service key with overlays:read; feature feature:overlays
POST/v1/overlayscreate_overlayPersonal or service key with overlays:create; feature feature:overlays
GET/v1/overlays/{id}get_overlayPersonal or service key with overlays:read; feature feature:overlays
DELETE/v1/overlays/{id}delete_overlayPersonal or service key with overlays:delete; feature feature:overlays
PATCH/v1/overlays/{id}update_overlayPersonal or service key with overlays:edit; feature feature:overlays
POST/v1/overlays/{id}/movemove_overlayPersonal or service key with overlays:edit; feature feature:overlay_folders

Platforms​

MethodPathOperationAccess
GET/v1/platforms/metadataget_platform_metadataPublic

Playlists​

MethodPathOperationAccess
GET/v1/playlistslist_playlistsPublic; feature:copyright_detection
GET/v1/playlists/{id}get_playlistPublic; feature:copyright_detection

Public Stats​

MethodPathOperationAccess
GET/v1/public-stats/browsebrowse_channelsPublic
GET/v1/public-stats/channelslist_channel_settingsPersonal or service key with public-stats:read
PUT/v1/public-stats/channels/{platform}set_channel_settingsPersonal key or user session with public-stats:edit
GET/v1/public-stats/channels/{platform}/{channel}get_channel_statsPublic
GET/v1/public-stats/channels/{platform}/{channel}/panel-historyget_channel_panel_historyPublic
GET/v1/public-stats/channels/{platform}/{channel}/profile-historyget_channel_profile_historyPublic
GET/v1/public-stats/channels/{platform}/{channel}/trendsget_channel_trendsPublic
GET/v1/public-stats/emoteslist_public_emotesPublic
GET/v1/public-stats/gamesbrowse_gamesPublic
GET/v1/public-stats/streams/{platform}/{broadcast_id}get_stream_statsPublic
GET/v1/public-stats/streams/{platform}/{broadcast_id}/metadata-historyget_stream_metadata_historyPublic

Roles​

MethodPathOperationAccess
GET/v1/roleslist_rolesPersonal or service key with roles:read
POST/v1/rolescreate_rolePersonal or service key with roles:edit
GET/v1/roles/permissionsavailable_permissionsPersonal or service key with roles:read
GET/v1/roles/{id}get_rolePersonal or service key with roles:read
DELETE/v1/roles/{id}delete_rolePersonal or service key with roles:delete
PATCH/v1/roles/{id}update_rolePersonal or service key with roles:edit

SE Tokens​

MethodPathOperationAccess
GET/v1/se-tokenslist_se_tokensPersonal or service key with se-tokens:read; feature feature:streamelements
POST/v1/se-tokenscreate_se_tokenPersonal key or user session with se-tokens:create; feature feature:streamelements
DELETE/v1/se-tokens/{id}delete_se_tokenPersonal key or user session with se-tokens:delete; feature feature:streamelements

Setting Presets​

MethodPathOperationAccess
GET/v1/setting-presetslist_setting_presetsFirst-party user or personal key
POST/v1/setting-presetscreate_setting_presetFirst-party user or personal key
GET/v1/setting-presets/{id}get_setting_presetFirst-party user or personal key
DELETE/v1/setting-presets/{id}delete_setting_presetFirst-party user or personal key
PATCH/v1/setting-presets/{id}update_setting_presetFirst-party user or personal key
POST/v1/setting-presets/{id}/defaultset_default_setting_presetFirst-party user or personal key

Songs​

MethodPathOperationAccess
GET/v1/songslist_songsPublic; feature:copyright_detection
GET/v1/songs/checkcheck_song_statusPublic; feature:copyright_detection
GET/v1/songs/sitemapsong_sitemapPublic; feature:copyright_detection
GET/v1/songs/{id}get_songPublic; feature:copyright_detection

These routes return 403 FEATURE_DISABLED when the gate is off. GET /v1/songs/sitemap accepts an exclusive after UUID cursor and limit (default and maximum 5,000). Its data contains items with id and nullable lastmod, and has_more; pass the last ID as after while has_more is true. Song detail exposes only a global safe or blocked row; an unknown or account-owned ID returns 404. Playlist detail includes tracks and returns 404 for an unknown ID.

Sounds​

MethodPathOperationAccess
GET/v1/soundslist_soundsPersonal or service key with sounds:read; feature feature:sounds
POST/v1/soundsupload_soundPersonal key or user session with sounds:create; feature feature:sounds
GET/v1/sounds/{id}get_soundPersonal or service key with sounds:read; feature feature:sounds
DELETE/v1/sounds/{id}delete_soundPersonal or service key with sounds:delete; feature feature:sounds
PATCH/v1/sounds/{id}update_soundPersonal or service key with sounds:edit; feature feature:sounds
POST/v1/sounds/{id}/playplay_soundPersonal or service key with sounds:play; feature feature:sounds
POST/v1/sounds/{id}/stopstop_soundPersonal or service key with sounds:play; feature feature:sounds
GET/v1/sounds/{id}/streamstream_soundAuthenticated; feature feature:sounds

Spotify​

MethodPathOperationAccess
GET/v1/spotify/devicesget_devicesPersonal or service key with spotify:read; feature feature:music
POST/v1/spotify/devicestransfer_devicePersonal key or user session with spotify:device; feature feature:music
GET/v1/spotify/manual-connectget_manual_connectPersonal or service key with spotify:read
POST/v1/spotify/manual-connectstart_manual_connectAuthenticated
DELETE/v1/spotify/manual-connectstop_manual_connectAuthenticated
POST/v1/spotify/playbackplayback_actionPersonal key or user session with spotify:playback, spotify:volume; feature feature:music
GET/v1/spotify/playlistsget_playlistsPersonal or service key with spotify:read; feature feature:music
POST/v1/spotify/playlistsplaylist_actionPersonal key or user session with spotify:playlist; feature feature:music
GET/v1/spotify/queueget_queuePersonal or service key with spotify:read; feature feature:music
POST/v1/spotify/queueadd_to_queuePersonal key or user session with spotify:queue; feature feature:music
GET/v1/spotify/searchsearch_tracksPersonal or service key with spotify:read; feature feature:music
GET/v1/spotify/stateget_statePersonal or service key with spotify:read; feature feature:music

Uploads​

MethodPathOperationAccess
GET/v1/uploadslist_uploadsPersonal or service key with uploads:read; feature feature:uploads
POST/v1/uploadsupload_filePersonal or service key with uploads:create; feature feature:uploads
GET/v1/uploads/{id}get_uploadPersonal or service key with uploads:read; feature feature:uploads
DELETE/v1/uploads/{id}delete_uploadPersonal or service key with uploads:delete; feature feature:uploads

User Roles​

MethodPathOperationAccess
GET/v1/user-roleslist_user_rolesAdmin only; API keys cannot reach
POST/v1/user-rolescreate_user_roleAdmin only; API keys cannot reach
DELETE/v1/user-roles/{id}delete_user_roleAdmin only; API keys cannot reach
PATCH/v1/user-roles/{id}update_user_roleAdmin only; API keys cannot reach
GET/v1/users/{user_id}/permission-overridesget_user_permission_overridesAdmin only; API keys cannot reach
PUT/v1/users/{user_id}/permission-overridesset_user_permission_overrideAdmin only; API keys cannot reach
DELETE/v1/users/{user_id}/permission-overrides/{permission}remove_user_permission_overrideAdmin only; API keys cannot reach
GET/v1/users/{user_id}/permissions/resolvedget_resolved_user_permissionsAdmin only; API keys cannot reach
GET/v1/users/{user_id}/rolesget_user_role_assignmentsAdmin only; API keys cannot reach
POST/v1/users/{user_id}/rolesassign_user_roleAdmin only; API keys cannot reach
DELETE/v1/users/{user_id}/roles/{role_id}remove_user_roleAdmin only; API keys cannot reach

Users​

MethodPathOperationAccess
GET/v1/users/meget_current_userPersonal key or user session with a user-scoped permission
PATCH/v1/users/mepatch_current_userPersonal key or user session with a user-scoped permission
GET/v1/users/me/login-connectionsget_login_connectionsFirst-party user or personal key
GET/v1/users/me/sessionsget_sessionsFirst-party user or personal key
DELETE/v1/users/me/sessionsdelete_all_other_sessionsFirst-party user or personal key
DELETE/v1/users/me/sessions/{id}delete_sessionFirst-party user or personal key

Watchlist​

MethodPathOperationAccess
GET/v1/watchlistlist_watchlistPublic
POST/v1/watchlistadd_to_watchlistPublic
DELETE/v1/watchlistremove_from_watchlistPublic

Webhooks​

MethodPathOperationAccess
POST/v1/webhooks/kickkick_webhookPublic
POST/v1/webhooks/shopifyshopify_webhookPublic
GET/v1/webhooks/youtubeyoutube_verifyPublic
POST/v1/webhooks/youtubeyoutube_webhookPublic

Widgets​

MethodPathOperationAccess
GET/v1/widgetslist_widgetsPersonal or service key with widgets:read; feature feature:widgets
POST/v1/widgetscreate_widgetPersonal or service key with widgets:create; feature feature:widgets
GET/v1/widgets/{id}get_widgetPersonal or service key with widgets:read; feature feature:widgets
DELETE/v1/widgets/{id}delete_widgetPersonal or service key with widgets:delete; feature feature:widgets
PATCH/v1/widgets/{id}update_widgetPersonal or service key with widgets:edit; feature feature:widgets
GET/v1/widgets/{id}/accesslist_widget_accessPersonal or service key with widgets:access-read; feature feature:widgets
GET/v1/widgets/{id}/access/candidateslist_widget_access_candidatesPersonal or service key with widgets:access-read; feature feature:widgets
PUT/v1/widgets/{id}/access/{user_id}set_widget_access_routePersonal or service key with widgets:access-grant; feature feature:widgets
DELETE/v1/widgets/{id}/access/{user_id}remove_widget_access_routePersonal key or user session with widgets:access-revoke; feature feature:widgets
POST/v1/widgets/{id}/copy-urlcopy_widget_urlPersonal key or user session with widgets:edit; feature feature:widgets
POST/v1/widgets/{id}/duplicateduplicate_widget_routePersonal key or user session with widgets:create; feature feature:widgets
POST/v1/widgets/{id}/preview-configpreview_configPersonal or service key with widgets:edit; feature feature:widgets
POST/v1/widgets/{id}/revoke-tokenrevoke_widget_tokenPersonal or service key with widgets:edit; feature feature:widgets

YouTube​

MethodPathOperationAccess
GET/v1/youtube/active-streamslist_active_streamsPersonal or service key with chat:read