openapi: 3.1.0
info:
title: Fordefi Address Book User Groups API
version: 0.2.0
description: These endpoints allow you to list the contacts in your address book.
To add/remove contacts, visit the Fordefi web console. See the user guide for more info.
servers:
- url: https://api.fordefi.com/
description: Production
security:
- bearerAuth: []
tags:
- name: User Groups
description: "These endpoints allow you to view your user groups.\n
\n User Groups are used to collectively manage policies and view permissions for a group of users.\n
\n The API is read-only. To manage user groups, visit the Fordefi web console. See more info in the\n user guide."
paths:
/api/v1/user-groups:
get:
tags:
- User Groups
summary: List User Groups
description: Get a list of user groups
operationId: list_user_groups_api_v1_user_groups_get
parameters:
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page number to fetch.
default: 1
title: Page
description: The page number to fetch.
- name: size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 0
description: The number of items per page.
default: 50
title: Size
description: The number of items per page.
- name: skip_count
in: query
required: false
schema:
type: boolean
description: Whether to skip counting the total number of items.
default: false
title: Skip Count
description: Whether to skip counting the total number of items.
- name: states
in: query
required: false
schema:
title: States
type: array
items:
$ref: '#/components/schemas/UserGroupState'
- name: user_group_ids
in: query
required: false
schema:
title: User Group Ids
type: array
items:
type: string
format: uuid
- name: user_ids
in: query
required: false
schema:
title: User Ids
type: array
items:
type: string
format: uuid
- name: modified_by
in: query
required: false
schema:
title: Modified By
type: array
items:
type: string
format: uuid
- name: name
in: query
required: false
schema:
title: Name
type: string
minLength: 1
- name: search
in: query
required: false
schema:
title: Search
type: string
minLength: 1
- name: exclude_user_group_ids
in: query
required: false
schema:
description: The group IDs to exclude.
title: Exclude User Group Ids
type: array
items:
type: string
format: uuid
description: The group IDs to exclude.
- name: sort_by
in: query
required: false
schema:
title: Sort By
type: array
items:
$ref: '#/components/schemas/UserGroupSortableFields'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ListUserGroupsResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/user-groups/{id}:
get:
tags:
- User Groups
summary: Get User Group
description: Retrieve user group details
operationId: get_user_group_api_v1_user_groups__id__get
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the user group to retrieve.
title: Id
description: ID of the user group to retrieve.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GetUserGroupResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
components:
schemas:
PreconditionFailedError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
system_error_code:
title: System Error Code
description: An additional system error code in Fordefi.
type: string
type: object
required:
- title
- detail
title: PreconditionFailedError
ResourceError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
resource:
description: The type of resource.
$ref: '#/components/schemas/Resource'
type: object
required:
- title
- detail
title: ResourceError
ValidationError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
items:
$ref: '#/components/schemas/ValidationErrorDetail'
type: array
title: Detail
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
type: object
required:
- title
- detail
title: ValidationError
EndUserRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: end_user
title: User Type
description: The type of the user.
external_id:
type: string
title: External Id
description: External id of the user.
example: user|1234
state:
type: string
enum:
- active
- deleted
title: State
description: The state of the user.
type: object
required:
- id
- user_type
- external_id
- state
title: EndUserRef
UserRef:
oneOf:
- $ref: '#/components/schemas/PersonRef'
- $ref: '#/components/schemas/ApiUserRef'
- $ref: '#/components/schemas/ApiSignerRef'
- $ref: '#/components/schemas/EndUserRef'
- $ref: '#/components/schemas/SystemUserRef'
description: Represents a reference to a user in the Fordefi platform
discriminator:
propertyName: user_type
mapping:
api_signer: '#/components/schemas/ApiSignerRef'
api_user: '#/components/schemas/ApiUserRef'
end_user: '#/components/schemas/EndUserRef'
person: '#/components/schemas/PersonRef'
system: '#/components/schemas/SystemUserRef'
ApiUserRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: api_user
title: User Type
description: The type of the user.
name:
type: string
title: Name
description: The name of the user.
state:
type: string
enum:
- active
- deleted
title: State
description: The state of the user.
role:
$ref: '#/components/schemas/UserRole'
description: The role of the user.
type: object
required:
- id
- user_type
- name
- state
- role
title: ApiUserRef
GetUserGroupResponse:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
name:
type: string
minLength: 1
title: Name
description: The name of the user group.
users_count:
type: integer
minimum: 0.0
title: Users Count
description: The number of users in the group.
admins_count:
type: integer
minimum: 0.0
title: Admins Count
description: The number of admins in the group.
state:
$ref: '#/components/schemas/UserGroupState'
description: The state of the user group.
modified_by:
$ref: '#/components/schemas/UserRef'
description: Group last modifier.
proposed_change:
description: The change proposal for the group.
$ref: '#/components/schemas/UserGroupChangeRequest'
type: object
required:
- id
- created_at
- modified_at
- name
- users_count
- admins_count
- state
- modified_by
title: GetUserGroupResponse
UserGroupSortableFields:
type: string
enum:
- created_at_asc
- created_at_desc
- modified_at_asc
- modified_at_desc
- name_asc
- name_desc
- users_count_asc
- users_count_desc
title: UserGroupSortableFields
UserState:
type: string
enum:
- active
- onboarding_pending_code_generation
- onboarding_pending_activation
- reset_device_pending_code_generation
- reset_device_pending_activation
- pending_approval
- deleted
title: UserState
ApiSignerRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: api_signer
title: User Type
description: The type of the user.
name:
type: string
title: Name
description: The name of the user.
state:
type: string
enum:
- active
- onboarding_pending_code_generation
- onboarding_pending_activation
- deleted
title: State
description: The state of the user.
type: object
required:
- id
- user_type
- name
- state
title: ApiSignerRef
UserGroupState:
type: string
enum:
- active
- deleted
title: UserGroupState
description: Represents a user group state in the Fordefi platform
UserGroupChangeRequest:
properties:
id:
type: string
format: uuid
title: Id
description: The ID of the change proposal.
created_at:
type: string
format: date-time
title: Created At
description: The time the change proposal was created.
created_by:
$ref: '#/components/schemas/UserRef'
description: The user who created the change proposal.
new_name:
title: New Name
description: The new name of the group if it is changed.
type: string
added_users:
title: Added Users
description: The users added to the group.
items:
$ref: '#/components/schemas/GroupUserRef'
type: array
removed_users:
title: Removed Users
description: The users removed from the group.
items:
$ref: '#/components/schemas/GroupUserRef'
type: array
type: object
required:
- id
- created_at
- created_by
title: UserGroupChangeRequest
description: Represents a user group change proposal in the Fordefi platform
SystemUserRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: system
title: User Type
description: The type of the user.
name:
type: string
title: Name
description: The name is Fordefi CARE
type: object
required:
- id
- user_type
- name
title: SystemUserRef
ListUserGroupsResponse:
properties:
total:
type: integer
title: Total
page:
type: integer
title: Page
size:
type: integer
title: Size
user_groups:
items:
$ref: '#/components/schemas/UserGroup'
type: array
title: User Groups
type: object
required:
- total
- page
- size
- user_groups
title: ListUserGroupsResponse
GroupUserRef:
oneOf:
- $ref: '#/components/schemas/PersonRef'
- $ref: '#/components/schemas/ApiUserRef'
description: Represents a reference to a group user in the Fordefi platform
discriminator:
propertyName: user_type
mapping:
api_user: '#/components/schemas/ApiUserRef'
person: '#/components/schemas/PersonRef'
UserRole:
type: string
enum:
- admin
- trader
- viewer
title: UserRole
Resource:
type: string
enum:
- user
- user_change_proposals
- user_group
- user_group_change_proposal
- vault
- vault_address
- vault_group
- address_group
- transaction
- batch_transaction
- path
- keyset
- auth_token
- access_token
- asset
- asset_info
- vault_derivation_path
- blockchain
- export
- quote
- import_keys_request
- vault_address_account
- exchange_asset_mapping
- dapp_group
- safe_address
- audit_log
title: Resource
UserGroup:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
name:
type: string
minLength: 1
title: Name
description: The name of the user group.
users_count:
type: integer
minimum: 0.0
title: Users Count
description: The number of users in the group.
admins_count:
type: integer
minimum: 0.0
title: Admins Count
description: The number of admins in the group.
state:
$ref: '#/components/schemas/UserGroupState'
description: The state of the user group.
modified_by:
$ref: '#/components/schemas/UserRef'
description: Group last modifier.
proposed_change:
description: The change proposal for the group.
$ref: '#/components/schemas/UserGroupChangeRequest'
type: object
required:
- id
- created_at
- modified_at
- name
- users_count
- admins_count
- state
- modified_by
title: UserGroup
description: Represents a user group in the Fordefi platform
PersonRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: person
title: User Type
description: The type of user. Can be a person, or (in programmatic scenarios) an API user or API Signer.
name:
title: Name
description: The name of the user.
example: John Doe
type: string
email:
type: string
title: Email
description: The email of the user.
state:
$ref: '#/components/schemas/UserState'
description: The state of the user in the organization.
role:
$ref: '#/components/schemas/UserRole'
description: The role of the user.
type: object
required:
- id
- user_type
- email
- state
- role
title: PersonRef
RateLimitError:
properties: {}
type: object
title: RateLimitError
BaseError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
type: object
required:
- title
- detail
title: BaseError
ValidationErrorDetail:
properties:
loc:
items:
anyOf:
- type: integer
- type: string
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationErrorDetail
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT