# Twitch Developer Documentation > Official documentation for building on Twitch: the Twitch API, EventSub, Extensions, Chat and IRC, Drops, Embeds, Authentication, Video Broadcast, game engine plugins and the Twitch CLI. Every page is also available as markdown by adding `.md` to its path, and the links below point at those copies. Translated pages exist under a language prefix and are not listed here. ## Authentication - [Authentication](https://dev.twitch.tv/docs/authentication.md): Authorize your application to act on Twitch with OAuth access tokens - [Register Your App](https://dev.twitch.tv/docs/authentication/register-app.md): Registering your application to get a Twitch client ID and secret - [Getting OAuth Tokens](https://dev.twitch.tv/docs/authentication/getting-tokens-oauth.md): Getting a Twitch access token through one of the four OAuth flows - [Get OAuth Tokens Using OIDC](https://dev.twitch.tv/docs/authentication/getting-tokens-oidc.md): Getting a Twitch user access token through OpenID Connect - [Refreshing Access Tokens](https://dev.twitch.tv/docs/authentication/refresh-tokens.md): Refreshing an expired Twitch user access token without asking the user again - [Validating Tokens](https://dev.twitch.tv/docs/authentication/validate-tokens.md): Validating a Twitch access token to confirm it is still valid - [Revoking Access Token](https://dev.twitch.tv/docs/authentication/revoke-tokens.md): Revoking a Twitch access token your application no longer needs - [Scopes](https://dev.twitch.tv/docs/authentication/scopes.md): Choosing the OAuth scopes your application needs to call the Twitch API and EventSub ## Twitch API - [Overview](https://dev.twitch.tv/docs/api.md): Build integrations on Twitch with a REST API covering channels, chat, streams, and more - [Get Started](https://dev.twitch.tv/docs/api/get-started.md): Make your first call to the Twitch API, from registering an app to reading the response - [Twitch API Concepts](https://dev.twitch.tv/docs/api/guide.md): Work within the rate limits, pagination, and change policy that apply across the Twitch API - [Starting a Raid](https://dev.twitch.tv/docs/api/raids.md): Starting and cancelling raids with the Twitch API - [Creator Goals](https://dev.twitch.tv/docs/api/goals.md): Following a broadcaster's Creator Goals with the Twitch API and EventSub - [Running a Poll](https://dev.twitch.tv/docs/api/polls.md): Running channel polls with the Twitch API - [Running a Prediction](https://dev.twitch.tv/docs/api/predictions.md): Running Channel Points predictions with the Twitch API - [Creating Clips](https://dev.twitch.tv/docs/api/clips.md): Creating and retrieving clips with the Twitch API - [Creating Stream Markers](https://dev.twitch.tv/docs/api/markers.md): Creating and reading stream markers with the Twitch API - [Getting Videos](https://dev.twitch.tv/docs/api/videos.md): Listing and deleting a broadcaster's videos with the Twitch API - [Scheduling Broadcasts](https://dev.twitch.tv/docs/api/schedule.md): Managing a broadcaster's stream schedule with the Twitch API - [API Reference](https://dev.twitch.tv/docs/api/reference.md): Every endpoint in the Twitch API, grouped by resource. - [Twitch API reference index for LLMs](https://dev.twitch.tv/docs/api/reference/llms.txt): Every entry in this reference, one line each, linked to its own section. ## EventSub - [EventSub Overview](https://dev.twitch.tv/docs/eventsub.md): Receive real time notifications of Twitch events over webhooks, WebSockets, and conduits - [Handling Webhook Events](https://dev.twitch.tv/docs/eventsub/handling-webhook-events.md): Receiving EventSub events with a webhook callback - [Handling WebSocket Events](https://dev.twitch.tv/docs/eventsub/handling-websocket-events.md): Receiving EventSub events over a WebSocket connection - [Handling Conduit Events](https://dev.twitch.tv/docs/eventsub/handling-conduit-events.md): Receiving EventSub events at scale with conduits - [Managing Subscriptions](https://dev.twitch.tv/docs/eventsub/manage-subscriptions.md): Creating and managing EventSub subscriptions with the Twitch API - [WebSocket Messages](https://dev.twitch.tv/docs/eventsub/websocket-reference.md): The messages that the EventSub WebSocket server sends your client. - [EventSub Reference](https://dev.twitch.tv/docs/eventsub/reference.md): Every EventSub subscription type, grouped by resource. - [EventSub reference index for LLMs](https://dev.twitch.tv/docs/eventsub/reference/llms.txt): Every entry in this reference, one line each, linked to its own section. ## Chat & Chatbots - [Overview](https://dev.twitch.tv/docs/chat.md): Read and send Twitch chat messages from a chatbot, chat client, or cloud service - [Authenticating and EventSub](https://dev.twitch.tv/docs/chat/authenticating.md): Authenticate a chatbot and subscribing it to Twitch chat events - [Send and Receive Messages](https://dev.twitch.tv/docs/chat/send-receive-messages.md): Sending and receiving Twitch chat messages with the Twitch API and EventSub - [Chat Moderation](https://dev.twitch.tv/docs/chat/moderation.md): Moderate a Twitch chat room with the Twitch API - [Whispers](https://dev.twitch.tv/docs/chat/whispers.md): Sending and receiving Whispers with the Twitch API and EventSub - [Migrating from IRC](https://dev.twitch.tv/docs/chat/irc-migration.md): Migrate a chatbot from Twitch IRC to EventSub and the Twitch API - [Example Chatbot](https://dev.twitch.tv/docs/chat/chatbot-guide.md): Build a working Twitch chatbot with EventSub and the Twitch API - [IRC Concepts](https://dev.twitch.tv/docs/chat/irc.md): Connecting to Twitch chat over IRC, with every message, tag, and NOTICE the server sends ## Organizations - [Guide](https://dev.twitch.tv/docs/companies.md): Build games and Extensions together as a Twitch developer organization ## Drops - [Overview](https://dev.twitch.tv/docs/drops.md): Reward the Twitch community with in-game items for watching your game - [Technical Guide](https://dev.twitch.tv/docs/drops/technical-guide.md): Preparing your game and backend to deliver Twitch Drops - [Campaign Guide](https://dev.twitch.tv/docs/drops/campaign-guide.md): Setting up and running a Twitch Drops campaign ## Game Engine Plugins - [Overview](https://dev.twitch.tv/docs/game-engine-plugins.md): Connect your Unity or Unreal game to Twitch with the Twitch game engine plugins - [Change Log](https://dev.twitch.tv/docs/game-engine-plugins/change-log.md): Every release of the Twitch game engine plugins - [Unity Getting Started](https://dev.twitch.tv/docs/game-engine-plugins/unity-guide.md): Integrating Twitch into a Unity game with the Twitch plugin - [Unreal Getting Started Blueprints](https://dev.twitch.tv/docs/game-engine-plugins/unreal-guide-blueprints.md): Integrating Twitch into an Unreal game using Blueprints - [Unreal Getting Started C++](https://dev.twitch.tv/docs/game-engine-plugins/unreal-guide-cpp.md): Integrating Twitch into an Unreal game using C++ - [Unity Reference](https://dev.twitch.tv/docs/game-engine-plugins/unity-reference.md): Reference for the C# types in the Twitch Unity plugin - [Unreal Reference](https://dev.twitch.tv/docs/game-engine-plugins/unreal-reference.md): Reference for the functions in the Twitch Unreal plugin ## Embedding Twitch - [Introduction](https://dev.twitch.tv/docs/embed.md): Bring Twitch live video, video on demand, and chat into your own website - [Embedding Everything](https://dev.twitch.tv/docs/embed/everything.md): Embedding Twitch video and chat together in your own website - [Chat](https://dev.twitch.tv/docs/embed/chat.md): Embedding Twitch chat in your own website - [Video & Clips](https://dev.twitch.tv/docs/embed/video-and-clips.md): Embedding Twitch live streams, videos, and clips in your own website ## Extensions - [Get Started](https://dev.twitch.tv/docs/extensions.md): Build embedded experiences that enhance a Twitch stream for viewers and broadcasters - [Extensions Guidelines & Policies](https://dev.twitch.tv/docs/extensions/guidelines-and-policies.md): Functional, technical, content, Bits, and commerce rules that are enforced during Twitch extension reviews - [Required Technical Background](https://dev.twitch.tv/docs/extensions/required-technical-background.md): Understanding how the parts of a Twitch Extension fit together - [Designing Extensions](https://dev.twitch.tv/docs/extensions/designing.md): Designing a Twitch Extension that broadcasters want to activate - [Panel Extension Guidelines](https://dev.twitch.tv/docs/extensions/designing/panel-extension-guidelines.md): Designing a panel extension for the area below the Twitch video player - [Building Extensions](https://dev.twitch.tv/docs/extensions/building.md): Building an Extension front end and the backend service behind it - [Using the Twitch API in an Extension Front End](https://dev.twitch.tv/docs/extensions/frontend-api-usage.md): Calling the Twitch API from an Extension front end - [Life Cycle Management](https://dev.twitch.tv/docs/extensions/life-cycle.md): Taking a Twitch Extension from local test through review to release - [Monetization](https://dev.twitch.tv/docs/extensions/monetization.md): Monetizing your Twitch Extension with Bits, and enabling channel subscription support - [Monetization Strategies](https://dev.twitch.tv/docs/extensions/monetization-strategies.md): Strategies for earning more Bits revenue from your Twitch Extension - [A/B Testing](https://dev.twitch.tv/docs/extensions/a-b-testing-in-extensions.md): Running A/B tests in a Twitch Extension to see which variant performs better - [Using Google Analytics](https://dev.twitch.tv/docs/extensions/using-google-analytics-in-extensions.md): Track how viewers use your Extension with Google Analytics - [Increase Feedback](https://dev.twitch.tv/docs/extensions/increasing-feedback.md): Encouraging viewer participation in a monetized Twitch Extension - [Load Testing Extensions](https://dev.twitch.tv/docs/extensions/load-testing-extensions.md): Load testing an Extension backend service with Locust - [Submission Best Practices](https://dev.twitch.tv/docs/extensions/submission-best-practices.md): Best practices for getting your Twitch Extension through the review process as quick and effortless as possible - [Extensions Reference](https://dev.twitch.tv/docs/extensions/reference.md): Reference for the Extensions JavaScript helper, client query parameters, and JWT schema ## Insights & Analytics - [Insights & Analytics Guide](https://dev.twitch.tv/docs/insights.md): Measuring how the Twitch community engages with your game or Extension ## Mobile Deeplinks - [Mobile Deep Links Guide](https://dev.twitch.tv/docs/mobile-deeplinks.md): Send users straight into the Twitch mobile app from your own app or website ## Video Broadcast - [Video Broadcast](https://dev.twitch.tv/docs/video-broadcast.md): Send live video into Twitch over RTMP, and pick the ingest server that serves your broadcast - [Video Broadcast Reference](https://dev.twitch.tv/docs/video-broadcast/reference.md): Endpoints for ingesting live video into Twitch, grouped by resource. ## Twitch CLI - [Overview](https://dev.twitch.tv/docs/cli.md): Manage and test your Twitch integration from the terminal with the Twitch CLI - [Configure the Twitch CLI](https://dev.twitch.tv/docs/cli/configure-command.md): Configuring the Twitch CLI with your client ID and secret - [Get an access token](https://dev.twitch.tv/docs/cli/token-command.md): Getting and revoking Twitch access tokens from the Twitch CLI - [Call API endpoints](https://dev.twitch.tv/docs/cli/api-command.md): Calling Twitch API endpoints from the Twitch CLI - [Use the mock data server](https://dev.twitch.tv/docs/cli/mock-api-command.md): Developing against a local mock Twitch API with the Twitch CLI - [Test webhook events](https://dev.twitch.tv/docs/cli/event-command.md): Testing your webhook event handler with mock events from the Twitch CLI - [Get CLI version](https://dev.twitch.tv/docs/cli/version-command.md): Checking which version of the Twitch CLI you have installed - [Test WebSocket Events](https://dev.twitch.tv/docs/cli/websocket-event-command.md): Testing your EventSub WebSocket client with the Twitch CLI ## Optional Large or historical material an agent can skip when a shorter context is needed. - [Documentation Changelog](https://dev.twitch.tv/docs/change-log.md): Every change made to the Twitch developer documentation - [Product Lifecycle](https://dev.twitch.tv/docs/change-log/product-lifecycle.md): A historic list of deprecated and decomissioned products previously offered within the Twitch developer ecosystem