Every integration is tied to one partner guild. Your guild's channels, roles, bans and moderation settings are what people see and use on your site, and anything they send shows up in Vortex too.
Choose an integration
vortex.send and vortex.onmessage.
npm SDK
Full control from your Node.js server, including your own "Log in
with Vortex" and bots.
| Embed | CDN script | npm SDK | |
|---|---|---|---|
| Setup | Paste an iframe | Add a script tag | Install a package |
| UI | Ready-made, styled in the dashboard | Yours | Yours |
| Runs in | Browser (Vortex iframe) | Browser (your page) | Your server |
| Sign in | Vortex popup | Redirect or popup to Vortex | Your own "Log in with Vortex" flow |
| Client secret | No | No | Yes, server only |
| Act as your app | No | No | Yes (read channels, post announcements) |
| Best for | Adding chat to a page fast | Custom chat widgets | Apps with accounts, bots, sync |
You can switch types any time from your guild dashboard. Your guild, channels and members stay the same.
Quick start
- Set up your partner guild. Open Partner Tools → Guild, create your channels and roles, and set a default role for new members.
- Create an integration. In the Website section, choose Embed, CDN script or npm SDK. You get a client ID (public) and, for the SDK, a client secret (keep it on your server).
- Allow your sites. Under Where it works, either allow any website or add your site tag, domains or server IPs. See Site access.
- Add it to your site by following the guide for your type.
Signed in as a partner: code samples on these pages use your client
ID, .
How it works
Your guild is the source
Channels, roles, permissions, bans, slowmode and the profanity filter all come from your partner guild. When someone signs in on your site for the first time they join your guild with its default role. Banning someone in your guild blocks them on your site as well.
People sign in with Vortex
Your site never sees passwords. People approve your guild in a Vortex window that shows your guild's name, logo and the site they're on. They can disconnect any time from Settings → Connected Apps, which signs them out everywhere your integration is used.
Scopes
| Scope | Lets you | Used by |
|---|---|---|
identify |
See the person's username, avatar, rank and name color | All types |
chat.read |
Read messages in your guild's channels | All types |
chat.write |
Send, edit, delete and report messages as that person, and use any moderator permissions their guild roles give them | All types |
guild.read |
Read your channels and messages as your app | SDK app tokens |
guild.announce |
Post announcements as your app | SDK app tokens |
guild.moderate |
Timeout, ban and unban members, and manage their roles, as your app | SDK app tokens |
Tokens
-
Access tokens last 1 hour and are sent as
Authorization: Bearer .... - Refresh tokens last 30 days and change every time you use one. Reusing an old refresh token signs that session out, so always save the newest one.
- Sign-in codes last 2 minutes and work once.
The CDN script and SDK refresh tokens for you.
Safety built in
- Every sign-in window shows which website is asking, and people can report a guild from it.
- Embeds and the CDN script use PKCE, so a stolen sign-in code is useless.
- Only sites you allow can use your integration. You can block any site at any time.
- Messages from your site go through the same moderation as Vortex itself.
Limits and rules
- One integration per partner guild.
- Messages are up to 2000 characters. Slowmode and per-user rate limits apply.
- App announcements are limited to 10 per minute.
- Up to 100 domains and 25 server IPs per integration.
- Your site must not pretend to be Vortex or collect Vortex passwords. Partners must follow the Partner Policy, the Terms of Service and the Community Guidelines, including actively moderating their guild.
Getting help
Check the troubleshooting section at the end of each guide first. For anything else, reach the team on Discord.