In this tutorial, we'll walk through the steps involved in creating your first application on Stream. We'll create a new account, choose how you want to build, and get you to your first working integration.
Creating a New Account
On Stream, a single account gives you access to all products, Chat, Activity Feeds, Video, Moderation, and Vision Agents. To create a new account, head over to our account creation page and enter your email and password, or sign in with Google or GitHub.
Before heading to the dashboard, the sign-up flow will ask you to select the main product you want to use in your application. Of course, you are free to use multiple products or mix and match, but we recommend selecting the one that most closely matches your use case for a highly personalized onboarding experience and support flow should you encounter any issues.
As a developer-first platform, Stream products are free for individual developers with generous free tiers across Chat, Activity Feeds, Video, and Moderation. For the most up-to-date pricing information, please refer to our pricing page.
Two Ways to Get Started
Once your account is created, you have two paths to your first Stream app:
- Set up your app in the dashboard
- Install the Stream CLI, then either hand it to an AI coding agent or drive it yourself from the terminal
Option 1: Use the Dashboard
The following sections cover the manual dashboard path, including creating a project, selecting a product, and configuring your app through the UI. This is a good fit if you want to understand each piece of the setup as you go.
Create a New Project in Your Dashboard
After landing on the Stream Dashboard, you can perform a few actions:
- Create a new application
- Invite team members
- View your monthly usage summary
When creating a new application, you'll be prompted to name it and select a server region for Chat and Feeds. The region is locked in once set, but you can switch between development and production mode at any time.
If you already have an application on Stream, you can choose to clone that application as a starting point instead of creating an entirely new one.
We recommend creating two applications, one for development and testing with slightly open permissions (such as using a development token for testing) and a hardened application under "production" mode with refined permissions and access control.
You will be taken to the app overview screen when your app is created.
Chat Dashboard Overview
The dashboard's top bar lets you switch between your organization and app, and jump between products without leaving the page. API Keys, Settings, and Contact are always one click away on the right.
Landing on the Chat Overview page, you'll immediately see your app's credentials (App ID, API key, and secret) ready to copy, along with a Usage & Limits table showing your current consumption against plan limits (API calls, stored channels, stored messages, total bandwidth, and more).
Below that, the overview charts give you an at-a-glance read on how your app is being used.
The left sidebar is organized into three groups:
- App configuration: Rate Limits (see real-time quota usage per operation, broken down by platform), Channel Types (configure capabilities like threads, reactions, mutes, and message reminders per channel type), Predefined Filters (save reusable channel query filters), and Channel Viewer (browse the users, channels, and messages stored in your app).
- Settings: General (webhooks, guest users, multi-tenancy, upload restrictions, Datadog, and more), plus dedicated pages for Push Templates, Retention Policy, and User Roles.
- Logs: separate API, Webhook, and Push logs for auditing requests, webhook deliveries, and push notification activity.
We recommend reading our dedicated permission and security guide to learn more about Stream's permission system.
To integrate chat into your application, visit our SDK pages to select the most relevant framework.
Video Dashboard Overview
Using Stream, developers can create six types of applications from a single API/SDK:
Landing on the Video Overview page shows your credentials (App ID, API key, secret) up top, followed by Recent Sessions -- a live table of call CIDs, session IDs, quality scores, and durations you can jump into directly by ID or CID.
Below that, the Test Drive panel lets you spin up a real call in your browser without touching code: Video Call, Audio Room, Livestream, or a Custom call type you've configured yourself.
Similar to Chat, the SDK Usage and General Usage sections give you an at-a-glance read on how your app is being used.
The left sidebar covers:
- Installation: SDK-specific setup, picked from a dropdown (React, and other client frameworks).
- Call Types: configure call type behavior (default, audio_room, development, livestream, or your own custom type).
- Call Viewer: browse live and past calls stored under your app.
- Telephony: a SIP trunks page for configuring inbound SIP trunks and routing rules, useful if you're connecting Stream Video to existing telephony infrastructure.
Settings covers Webhooks and User Roles, and Logs now splits into API, Webhooks, Push, and SIP logs for auditing activity by type.
One more thing worth noting: the sidebar includes a "What are you building?" prompt where you can set a primary use case (video calling, voice calling, livestreaming, audio rooms, voice & video AI agents, live shopping) to tailor the dashboard to your workflow.
By default, all calls on Stream run on our global edge network. Regardless of your customer's location, they will always be connected to the closest server to ensure the lowest possible latency and jitter while speaking.
Building AI Voice and Video Agents
If you're building a voice or video AI agent rather than a traditional calling experience, Stream's Vision Agents (accessible directly from the Video dashboard's sidebar) is worth a dedicated look.
It's an open-source Python framework for real-time, low-latency (sub-500ms) voice and video agents, with pluggable vision pipelines (YOLO, Roboflow, custom PyTorch/ONNX models), smart turn detection, tool calling/MCP support, and phone integration via Twilio. It works with Stream's edge network, Tencent RTC, or your own infrastructure.
To get started with Stream Video directly, choose from one of our client-side SDKs, including React, React Native, Android, iOS, or Flutter. For AI agent use cases, head to visionagents.ai instead.
Activity Feeds Dashboard Overview
Activity Feeds allows you to easily create, personalize, and scale user connections in your application. Whether you're building a social network or simply have a dynamic timeline in your application, our Feeds platform abstracts the complexities and allows you to focus on the parts of our app that differentiate you from the competition.
When building with Feeds, our Dashboard consists of three main parts:
- Overview: high-level stats on your app, including API calls, API keys, and configuration for real-time Feed updates.
- Feed Groups: configure the feed groups your app uses.
- Explorer & Logs: browse the data currently stored in your app, and review logs and usage.
A couple of things worth knowing before you dive in:
- Feeds tokens are separate from Chat/Video. Unlike those two products, user objects aren't shared with Feeds. You'll need to generate a dedicated token for Feeds users in your application.
- Predefined feed types ship out of the box: Flat Feed, Aggregated Feed, and Notification Feed. You can also define custom feed types for use across your app.
Since Feeds tends to have many nuanced concepts, we always recommend developers check out our Feeds 101 guide before jumping into the code.
To get started, please check out our backend SDKs, which include NodeJS, Python, Go, PHP, .NET, and Java.
Moderation Dashboard Overview
Under Moderation, the Overview page shows your credentials up top, followed by an AI-Powered Moderation banner if you haven't enabled it yet, and a live snapshot of activity: Total Queue Items, Reviewed, False Positives, and Unreviewed counts, plus breakdowns of Entities by Engine, AI Actions, and Moderator Actions over your selected date range.
Setting up AI Moderation for the first time walks you through a short wizard:
- Tell it about your app -- pick a community type (General, Gaming, Social, Marketplace, Dating, Healthcare, Education) and describe what you're building.
- Configure your policy -- set how each harm category (Scam, Terrorism, Hatred, Sexually Explicit, Threat, Vulgarity, and more) should be handled: Remove, Flag, or Keep.
- Preview your policy in action against a sample harm set before committing, so you can see exactly what gets flagged or removed and adjust before going live.
The left sidebar is organized into three groups:
- Configuration: Filters (manage Blocklists, Allowlists, and Regex rules; the default
profanityblocklist ships built-in and can't be edited or deleted), Policies (configure AI Text and AI Images & Video detection per content type, alongside block lists and regex), and Rules (standalone rule configurations that apply across multiple channel types or your whole app). - Moderation: Users and Content queues for reviewing flagged items, Appeals (surfaces anything submitted through the Appeal API for review), and three explorer tools (Chat Explorer, Message Explorer, and Feed Explorer) for browsing and investigating content across your app.
- Settings: General (default rules like auto-flagging repeat offenders, moderation queue behavior, escalation, and attachment handling), Webhooks, and Action Buttons (configure which quick actions moderators see for Users, Messages, and Activities).
There's also a dedicated Audit Logs page for tracking every moderation action (who took it, on what, and when), and a built-in Guide -- a full reference doc covering every feature and button in the dashboard, accessible right from the sidebar.
To get started with Moderation in your own app, check out the Moderation docs.
Option 2: Install the Stream CLI
Next, we'll cover installing the Stream CLI and linking it to your app, then choosing how you want to work with it: handed to an AI coding agent or driven manually from the terminal. This is a good fit if you'd rather scaffold your app quickly or skip the dashboard UI entirely.
First, install the Stream CLI with:
1curl -fsSL https://getstream.io/cli.sh | bash
Then confirm it worked with getstream --version.
From your project directory, run getstream init to link that directory to one of your Stream apps (the same way you'd run git init). It walks you through signing in via your browser, picking your organization and app, and generating a local .stream/creds.yaml file with your app's key and secret (added to .gitignore automatically). You'll also get the option to install Stream's skills for your AI coding agent, or skip that step if you don't use one.
If you don't have a Stream account yet, run getstream login --guest before init to create a temporary guest account backed by a throwaway app. You can upgrade it to a real account later with getstream login --upgrade if you want to keep the work.
From there, you can go two ways:
- With an AI coding agent: restart your agent so it picks up the new skills, then ask in plain English.
/streamroutes your request,/stream-docssearches live Stream SDK documentation, and/stream-builderscaffolds a new app or adds Stream products to an existing one. For example,/stream-builder build a Next.js social feed with likes, follows, and stories. Every command the agent runs is shown in your terminal and goes through your agent's normal approval flow first. - Without an agent: call the Stream API directly from your terminal. For example,
getstream api QueryChannels --request '{"limit":10}'to list your app's channels, orgetstream token alice --ttl 1hto generate a test token for connecting through an SDK.
Either path (dashboard vs. CLI) gets you to a working integration.
Wrap Up
We are excited for you to try our APIs and bring rich real-time experiences into your application.
A few places to go from here:
- Stuck on something specific? Ask
/stream-docsdirectly from your coding agent, or check the Stream docs directly. - Building an AI voice or video agent? Vision Agents has quickstarts, examples, and integration guides.
- Hit a bug or have feedback? Contact support if you're on a paid plan.
Happy building!

