Creating a Team
1
Open the team menu
Click your account name in the top-left of the
Dashboard and select Create Team.
2
Name your team
Enter a team name. This will be visible to all members.
3
Start using it
You’ll be switched to the new team automatically. Create API keys and invite
members from here.
Inviting Members
1
Go to Members
Navigate to Dashboard > Members
2
Click Invite
Enter the member’s email address and select their role.
3
They accept
The invited user receives an email with a link to join your team.
role column accepts admin, billing, developer, creator, and viewer, in any letter case. It also accepts two older names. member is the same as developer, and manager is the same as billing.
Up to 50 invites can be sent per batch.
Roles
Each team member is assigned one of five roles that control what they can do in the dashboard. Roles govern dashboard and management access. All team members, regardless of role, can use the team’s API keys to call models, deploy apps, and run workloads.API Keys and Request Attribution
Roles and key presets draw on one permission model. A role grants permissions to a person in the dashboard. A preset grants permissions to a key. The two callers are different, so their permissions can differ. A Developer-role member cannot create keys in the dashboard. The same member can use a team key on theSERVERLESS preset to run fal deploy.
API keys belong to the team, not to individual members. Any team member can use a team API key, and only Admins can create or delete one. When you create a key, select the correct team in the top-left of the dashboard. See Key permissions for the available presets.
How you authenticate affects how requests are attributed and what you see in the dashboard. When you use fal auth login and select a team, each request carries your individual identity within the team. This means the dashboard shows which team member made each request, unless your organization has restricted request view enabled. With restricted request view, members can see metadata for all team requests, request payloads are visible only to the member whose identity authenticated the request, logs are visible to that member and to the endpoint owner, and member attribution is hidden. When you use a team API key directly, requests are attributed to the team as a whole rather than to a specific member. Both methods access the same team resources and billing, but login-based authentication provides better per-user visibility in the dashboard and request history.
The fal client SDKs (fal_client in Python, @fal-ai/client in JavaScript) support both methods automatically. The SDK checks for credentials in this order:
FAL_KEYenvironment variable (sendsAuthorization: Key ...)- Tokens saved by
fal auth login(sendsAuthorization: Bearer ...)
~/.fal/auth0_token, so they persist across terminal sessions and reboots. You run fal auth login once, and any Python script on the same machine picks up the credentials automatically, even from a completely different process or terminal. This works the same way as gcloud auth login or aws sso login.
FAL_KEY is set, it takes priority over login tokens. To force login-based auth even when FAL_KEY is present, set FAL_FORCE_AUTH_BY_USER=1.
For production apps and CI pipelines, API keys are recommended because they don’t expire and don’t require interactive login. For development, testing, and any workflow where per-user attribution matters, fal auth login is preferred.