Build multi-modal AI applications using our new open-source Vision AI SDK.

Guide to Getting Started with Stream

11 min read
Nash R.
Nash R.
Published May 30, 2024
Guide to Getting Started with Stream

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.

Stream account creation page

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.

Select your main Stream product

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:

  1. Set up your app in the dashboard
  2. 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

Stream Dashboard - create a new application

After landing on the Stream Dashboard, you can perform a few actions:

  1. Create a new application
  2. Invite team members
  3. 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

Stream 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.
Stream Chat Dashboard sidebar detail

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

Stream Video Dashboard overview

Using Stream, developers can create six types of applications from a single API/SDK:

  1. Video Calling
  2. Voice Calling
  3. Audio Rooms
  4. Livestreaming
  5. Live Shopping
  6. Voice AI

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.
Stream Video Dashboard stats and call detail

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 your own app? Get access to our Livestream or Video Calling API and launch in days!

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.

Stream Vision Agents

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

Stream 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

Stream 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:

  1. Tell it about your app -- pick a community type (General, Gaming, Social, Marketplace, Dating, Healthcare, Education) and describe what you're building.
  2. Configure your policy -- set how each harm category (Scam, Terrorism, Hatred, Sexually Explicit, Threat, Vulgarity, and more) should be handled: Remove, Flag, or Keep.
  3. 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.
Stream Moderation policy configuration wizard

The left sidebar is organized into three groups:

  • Configuration: Filters (manage Blocklists, Allowlists, and Regex rules; the default profanity blocklist 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:

shell
1
curl -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. /stream routes your request, /stream-docs searches live Stream SDK documentation, and /stream-builder scaffolds 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, or getstream token alice --ttl 1h to 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-docs directly 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!

Ready to Increase App Engagement?
Integrate Stream's real-time communication components today and watch your engagement rate grow overnight.