Accounts and permissions

A key or an AI app never does more than its account. Here is what that means, and which account to use.

Every request to the API is made as an account. A key or an AI app is not a separate user with its own rights: it borrows the rights of the account that made it, and only part of them if you choose.

What a key or an AI app can reach

Three things decide it, and the narrowest one wins:

  1. The account's role. The panel's owner sees everything. A staff member sees what their group's permissions allow. A reseller sees only their own customers and sub-resellers, as in the dashboard.
  2. The account's permissions. If the account cannot delete streams in the dashboard, its keys cannot either. Change the account's group, and every key and app of that account changes with it at once.
  3. The scopes you gave the key or the app: read, write or manage.

So a reseller's key with every scope still cannot see another reseller's lines, and an owner's key with only read cannot change anything.

Some things are never reachable

Whatever the account and the scopes, a key or an AI app can never:

  • sign in, change the account's password, two-step sign-in, passkeys or single sign-on;
  • make, see or revoke API keys, or connect or disconnect AI apps;
  • set another account's password, two-step sign-in or passkeys;
  • change the email of a staff or reseller account (single sign-on finds people by their email);
  • make other kinds of credentials (playlist editor API tokens, the remote database login, a move of the panel);
  • open the panel's back office (/admin/).

These stay in the dashboard, behind a real sign-in. A key that leaks can never make itself a new key or lock you out, and it stops working the moment you revoke it. An account a manage key created is a separate account, though, and stays until you delete it. The full list is on Scopes.

Accounts that cannot use the API at all: lines (a customer's subscription never signs in to the panel), streaming servers' own accounts, and accounts bound to single sign-on.

Which account to use

A script for your own business

Use your own account if you are the only person who runs it. If it runs on a server or someone else maintains it, make a staff account just for it (Users & Groups → Add User), give it a group with only the permissions the script needs, and make the key on that account. When the script is retired, disable the account and every key goes with it.

A reseller automating their own customers

The reseller makes the key on their own account. It reaches their lines and their sub-resellers, spends their credits, and nothing else. You do not need to do anything as the panel's owner.

An AI app

Connect it while signed in as the account it should act for. Choose the smallest scopes that do the job: read to ask questions, write to let it make changes. Give manage only if you want it to delete things or move credits.

An integration someone else built

Give it a separate account with only the permissions it needs, never the owner's account. You can then see its calls apart from yours in the call log, and switch it off without touching anyone else.

When an account changes

  • Its permissions change: its keys and apps follow at once, at the next request.
  • It is disabled or deleted: its keys and apps stop working at once.
  • Its password changes: keys and AI apps keep working (they are not the password). Revoke them, or disconnect the apps, if you think they leaked.