Skip to main content

Team API keys

Public API routes accept a team API key as a Bearer token:
Create and revoke keys from Settings → API Keys for the selected Felan team. A new key is displayed once; copy it to your secret manager before closing the dialog. Each key can access only its team’s API resources. Use the team slug shown in the dashboard URL or under Team Settings → General Settings. A request for another team slug returns 404 Not Found so the other team’s existence is not disclosed.
Felan team keys retain the bzy_team_ compatibility prefix. Other prefixes are rejected by the current public API.

Team members and invitations

Both endpoints require the team’s API key. The member list returns data.members with userId, role, joinedAt, name, and email, plus data.pendingInvitations with id, email, role, expiresAt, and createdAt.
Invitations default to role: "member" and expire after seven days. Team keys cannot invite admins or owners: those roles return 403 with invite admins from the Felan web app. Other role values return 400. Use the web app to invite admins. Team seat limits still apply. A successful 201 response contains data.id, email, role, expiresAt, createdAt, inviteUrl, and emailSent. If email delivery fails, the invitation remains valid and emailSent is false, with emailError when available. An existing member or unexpired pending invitation returns 409.

Rate limiting

Each team API key is limited to 60 requests per minute. Authenticated responses include:
  • X-RateLimit-Limit
  • X-RateLimit-Remaining
  • X-RateLimit-Reset as a Unix timestamp in seconds
Requests beyond the limit return 429 Too Many Requests.

Error responses

API errors use a consistent envelope: