Identity & Access Management

The Identity & Access Management API provides comprehensive role-based access control functionality for managing users, teams, roles, and API keys in Firefly.

Users

List Users

List users

get

List and filter users for the specified account

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

Query parameters
searchstring · max: 255Optional

Search users by name or email using full-text search

Example: [email protected]
emailstring · email · max: 255Optional

Filter by exact email address match (returns single user or empty array)

Example: [email protected]
typestring · enumOptional

Filter by user type - either regular USER or Service Account (SA)

Example: USERPossible values:
role_idsstring · uuid[] · max: 50Optional

Filter by role IDs - users must have at least one of these roles

Example: ["550e8400-e29b-41d4-a716-446655440000"]
team_idsstring · uuid[] · max: 50Optional

Filter by team IDs - users must be members of at least one of these teams

Example: ["660f9511-f3ac-52e5-b827-557766551111"]
limitinteger · min: 1 · max: 100Optional

Maximum number of users to return

Default: 25Example: 25
offsetintegerOptional

Number of users to skip

Default: 0Example: 0
Responses
chevron-right
200

Array of users matching the search criteria

application/json
get
/user-service/users

Create User

Create a user

post

Create a new user in the system

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

Body
namestringRequired

User's name

typestring · enumRequired

User type - either regular USER or Service Account (SA)

Possible values:
emailstring · emailOptional

User's email address (required for type 'user', optional for type 'SA')

descriptionstring | nullableOptional

User's description or bio (optional, commonly used for SA)

role_idsstring · uuid[]Optional

List of role IDs to assign to the user

team_idsstring · uuid[]Optional

List of team IDs to add the user to

profile_photostring · uri | nullableOptional

URL to user's profile photo

created_bystring · email | nullableOptional

Email address of the person creating this user (will be looked up in the database)

onboarding_userbooleanOptional

If true, automatically assigns the 'Admin' role (from account_id=null) to the user

Default: false
is_ssobooleanOptional

If true, skips Auth0 user creation and password reset email. Use this flag for SSO users managed externally.

Default: false
Responses
post
/user-service/users

Get User

Get a user

get

Retrieve details of a specific user

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

userIdstring · uuidRequired

User ID

Responses
chevron-right
200

User object

application/json
get
/user-service/users/{userId}

Update User

Delete User

Delete a user

delete

Delete a user from the system

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

userIdstring · uuidRequired

User ID

Responses
delete
/user-service/users/{userId}

No content

Teams

Get Current User's Team

List Teams

List teams

get

Retrieve a list of teams for the specified account

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

Query parameters
limitinteger · min: 1 · max: 100Optional

Maximum number of teams to return

Default: 25
offsetintegerOptional

Number of teams to skip

Default: 0
searchstring · max: 255Optional

Search teams by name (partial match)

role_idsstring · uuid[]Optional

Filter teams by role IDs (comma-separated)

Responses
chevron-right
200

Array of teams

application/json
get
/user-service/teams

Create Team

Get Team

Get a team

get

Retrieve details of a specific team

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

teamIdstring · uuidRequired

Team ID

Responses
chevron-right
200

Team object

application/json
get
/user-service/teams/{teamId}

Update Team

Delete Team

Delete a team

delete

Delete a team from the system

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

teamIdstring · uuidRequired

Team ID

Responses
delete
/user-service/teams/{teamId}

No content

List Team Members

Update Team Members

Bulk Update Team Members

Add multiple users to team

post

Add multiple users to the specified team in a single operation

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

teamIdstring · uuidRequired

Team ID

Body
user_idsstring · uuid[] · min: 1 · max: 100Required

Array of user IDs to add to the team

skip_existingbooleanOptional

Skip users that are already in the team instead of returning error

Default: true
Responses
post
/user-service/teams/{teamId}/members/bulk

API Keys

List API Keys

List API keys

get

Retrieve a list of API keys for the specified account

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

Query parameters
searchstring · max: 255Optional

Search API keys by alias, description, user name, or team name using full-text search

typestring · enumOptional

Filter by API key type

Possible values:
emailstring · emailOptional

Filter by user email (only returns USER type API keys with matching email)

user_idstring · uuidOptional

Filter by user ID (returns API keys associated with this user)

team_idstring · uuidOptional

Filter by team ID (returns API keys associated with this team)

limitinteger · min: 1 · max: 100Optional

Maximum number of API keys to return

Default: 25
offsetintegerOptional

Number of API keys to skip

Default: 0
Responses
chevron-right
200

Array of API keys

application/json
get
/user-service/api-keys

Create API Key

Create an API key

post

Generate a new API key

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

Body
typestring · enumRequired

Type of API key (scope)

Possible values:
user_idstring · uuid | nullableOptional

User ID (required when type is USER)

team_idstring · uuid | nullableOptional

Team ID (required when type is TEAM)

aliasstring | nullableOptional

Human-readable alias for the API key

descriptionstring | nullableOptional

Description of the API key's purpose

expires_atstring · date-time | nullableOptional

When the API key should expire (must be in the future, RFC3339 format)

created_bystring · email | nullableOptional

Email address of the person creating this API key (will be looked up in the database)

system_generatedboolean | nullableOptional

If true, creates an SA type user with admin role and attaches the API key to it (similar to migration logic)

Default: false
Responses
post
/user-service/api-keys

Get API Key

Get an API key

get

Retrieve details of a specific API key

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

keyIdstring · uuidRequired

API Key ID

Responses
chevron-right
200

API Key object

application/json
get
/user-service/api-keys/{keyId}

Update API Key

Delete API Key

Revoke an API key

delete

Revoke/delete an API key

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

keyIdstring · uuidRequired

API Key ID

Responses
delete
/user-service/api-keys/{keyId}

No content

Rotate API Key

Rotate an API key

post

Generate a new secret for an existing API key, invalidating the old secret. Optionally update alias, description, and expiration date.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

keyIdstring · uuidRequired

API Key ID

Body
aliasstring | nullableOptional

Human-readable alias for the API key

descriptionstring | nullableOptional

Description of the API key's purpose

expires_atstring · date-time | nullableOptional

When the API key should expire (must be in the future, RFC3339 format)

Responses
chevron-right
200

API key rotated successfully

application/json
post
/user-service/api-keys/{keyId}/rotate

Get API Key by Key Value

Roles

List Roles

List roles

get

Retrieve a list of roles for the specified account, including both account-specific roles and Firefly-managed (system-wide) roles. Firefly-managed roles have account_id as empty and are marked with fireflyManaged=true. For Firefly-managed roles, attached_users and team_names are filtered to show only those from the requesting account.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

Query parameters
limitinteger · min: 1 · max: 100Optional

Maximum number of roles to return

Default: 25
offsetintegerOptional

Number of roles to skip

Default: 0
searchstring · max: 255Optional

Search term to filter roles by name or description

Responses
chevron-right
200

Array of roles

application/json
get
/user-service/roles

Create Role

Create a role

post

Create a new role with specified permissions

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

Body
namestringRequired

Role name

descriptionstring | nullableOptional

Role description

integrationIdsstring[]Optional

Optional list of integration IDs to restrict role's access to specific integrations

Example: ["integration-123","integration-456"]
providersstring[]Optional

Optional list of provider types to restrict role's access to specific providers

Example: ["aws","azure","gcp"]
Responses
post
/user-service/roles

Update Role

Delete Role

Delete a role

delete

Delete a role from the system

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
accountIdstringRequired

Account ID

roleIdstring · uuidRequired

Role ID

Responses
delete
/user-service/roles/{roleId}

No content

Last updated

Was this helpful?