Console & adminOrganizations & roles

Organizations & roles

On the Syntic platform, the organization is the unit that owns things. API keys, plan allowance, usage-credit wallet, spend limits, agents and the audit log all belong to one organization, and every API request is billed to the organization that issued its key.

People join an organization as members, and each member holds a role that decides what they may change. This page covers how that works and how membership changes reach your API traffic.

Organizations

  • A person can belong to several organizations and switches between them in the Console. Whatever page you are on acts on the organization currently selected.
  • A key always bills its home organization, whichever organization its creator has selected at the time a request is made.
  • Usage, credits and limits are never pooled across paid organizations. Each one has its own plan allowance and wallet.

Want separate budgets for, say, production and experiments? Use separate organizations, or set spend limits per member or group inside one organization.

Roles

RoleTypical holderCan do, as far as the API is concerned
Primary ownerThe person who holds the organizationEverything an owner can, and is the one ownership is transferred from
OwnerFounders, account holdersEverything, including cancelling the subscription and ownership changes
AdministratorEngineering leads, finance adminsInvite, suspend and remove members; change most roles; see and revoke every API key; change billing, spend limits and auto-reload; buy credits; read the audit log
DeveloperEngineers building on the APICreate keys and see or revoke only their own; build agents and content; see their own usage if member analytics is on
CustomAnyone needing a tailored setWhatever the organization’s permission grid grants. See Custom roles.

What each role can do in the Console

ActionOwner / Primary ownerAdministratorDeveloper
Create a private API keyYesYesYes
See every key in the organizationYesYesOwn keys only
Revoke any keyYesYesOwn keys only
Turn usage credits on or off, change the spend limit or auto-reloadYesYesNo
Buy usage creditsYesYesNo
Set per-member and per-group spend limitsYesYesNo
View the Usage pageYesYesYes
Invite membersYesYesNo
Change a developer’s roleYesYesNo
Change another administrator’s or an owner’s roleYesNoNo
Suspend, restore or remove membersYesYesNo
Read and export audit logsYesYesNo
Cancel the subscription, transfer ownershipYesNoNo

Custom roles

A member with the custom role gets permissions from the groups they belong to. Each group can carry a grid of administrative areas, each set to none, view or manage. The areas that matter for API work are:

AreaLevelGrants
AnalyticsView or manageRead the audit log
User managementManageInvite and remove members, change roles
Identity & accessManageOrganization settings
PrivacyManageCompliance settings

Billing changes and organization-wide key management are reserved for owners and administrators. A custom-role member creates and revokes keys like a developer: only their own.

Members

Invite someone

Open Members

As an owner or administrator, go to Settings → Members.

Enter an email and a role

Invitations can be sent as Administrator or Developer. Owners are never created by invitation; ownership is set when the organization is created or moved by an explicit transfer.

The invitee accepts

The person receives an email link. Until they accept, they are not an active member and cannot create keys.

Change a role

Administrators can move a member between administrator and developer. Changing the role of another administrator or of an owner requires an owner. The owner role itself cannot be granted through a role change.

Role changes are recorded in the audit log as member.change_role.

Suspend, restore or remove

ActionEffect on the memberEffect on their API keys
SuspendLoses access to the organization until restoredStop working at once
Restore (from suspended or removed)Regains access with their previous roleWork again, with no further action
RemoveLoses access to the organizationStop working at once

“Stop working” means requests with those keys fail with 403 org_membership_required. The keys are not revoked, so restoring the member brings them back. Owners cannot be suspended or removed this way.

⚠️

Every key depends on its creator staying an active member. Before someone leaves, find the keys they made, create replacements under an account that will remain, deploy them, and only then remove the person. Otherwise production traffic using their keys starts failing the moment they are removed.

Handle membership errors in code

When a membership or organization problem blocks a key, the API answers with a 403 and a code your code can branch on. None of these will succeed on retry until someone changes the organization in the Console.

import os
import requests
 
ORG_PROBLEMS = {"org_membership_required", "account_disabled", "org_unavailable"}
 
resp = requests.post(
    "https://app.syntic.ai/v1/chat/completions",
    headers={"Authorization": f"Bearer {os.environ['SYNTIC_API_KEY']}"},
    json={
        "model": "Amara Quick",
        "stream": False,
        "messages": [{"role": "user", "content": "Summarise yesterday's deploy log."}],
    },
    timeout=60,
)
 
if resp.status_code == 403 and resp.json()["error"]["code"] in ORG_PROBLEMS:
    # Not transient: page a human instead of retrying.
    raise RuntimeError(f"Syntic key blocked: {resp.json()}")
resp.raise_for_status()
print(resp.json()["choices"][0]["message"]["content"])
errorCauseFix
org_membership_requiredThe key’s creator was suspended, removed or never accepted the invitationRestore the member, or switch to a key from a current member
account_disabledThe account that owns the key is disabledRestore the account, or use another member’s key
org_unavailableThe organization is archived or being deletedRestore the organization

A related 503 authorization_unavailable means the API could not check the credential at that moment. That one is transient; retry after a short wait.

Was this page helpful?