Download OpenAPI specification:Download
User account management, workspace configuration, and country data.
IMPORTANT: Only call this endpoint if the user specifically asks to switch workspace. For all other requests, assume you are already in the correct workspace and do not prompt them to switch workspace. Returns all workspaces (companies) the authenticated user belongs to. Each workspace includes the company name, industry, and configuration. Use the search parameter to filter by workspace name.
| country | string |
| country__icontains | string |
| country__iendswith | string |
| country__in | Array of strings Multiple values may be separated by commas. |
| country__istartswith | string |
| limit | integer Number of results to return per page. |
| name | string |
| name__icontains | string |
| name__iendswith | string |
| name__istartswith | string |
| offset | integer The initial index from which to return the results. |
| ordering | string Which field to use when ordering the results. |
| search | string A search term. |
| type | string Enum: "active" "demo" "inactive" "stakeholder" "test" "trial"
|
| type__exclude | Array of strings Items Enum: "active" "demo" "inactive" "stakeholder" "test" "trial" Multiple values may be separated by commas. |
| type__in | Array of strings Multiple values may be separated by commas. |
{- "count": 123,
- "results": [
- {
- "workspace_id": 0,
- "workspace_name": "string",
- "id": 0,
- "name": "string",
- "type": "active",
- "country": "string",
- "member_count": 0,
- "is_mfa_enabled": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Returns the profile of the currently authenticated user.
{- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "firebase_uid": "string",
- "job_title": "string",
- "is_mfa_enrolled": true,
- "is_mfa_required": true,
- "is_staff": true,
- "active_user_company_id": 0,
- "data_room_consumer_id": "string",
- "pylon_email_hash": "string",
- "user_company": {
- "id": 0,
- "user_id": 0,
- "company_id": 0,
- "auth_group_id": 0,
- "data_room_consumer_id": "string",
- "config": null
}, - "company": {
- "id": 0,
- "name": "string",
- "type": "active",
- "country": "st",
- "credits_used": "string",
- "nr_of_employees": 0.1,
- "nr_of_locations": 0.1,
- "nr_of_transactions": 0,
- "minimum_date_filter": "2019-08-24",
- "results_limit_earliest_year": "2019-08-24",
- "results_limit_latest_year": "2019-08-24",
- "min_transaction_date": "string",
- "max_transaction_date": "string",
- "chift_consumer_id": "string",
- "default_currency": "string",
- "default_locale": "nl-NL",
- "data_room_consumer_id": "string",
- "information": null,
- "pulse_params": {
- "property1": null,
- "property2": null
}, - "flags": [
- {
- "name": "string"
}
]
}, - "auth_group": {
- "id": 0,
- "name": "string",
- "permissions": [
- {
- "codename": "string"
}
]
}
}Returns the members of the authenticated user's company, paginated. Filter by role (auth_group, auth_group__name, auth_group__isnull), by user name, email or job title (exact, icontains, istartswith), and by created_at or updated_at ranges. Use search to match across first name, last name, email, job title and role name, and ordering to sort on any of created_at, updated_at, user__first_name, user__last_name, user__email, user__job_title or auth_group__name (prefix with - to reverse). Results are ordered by name by default.
| auth_group | integer |
| auth_group__in | Array of integers Multiple values may be separated by commas. |
| auth_group__isnull | boolean |
| auth_group__name | string |
| auth_group__name__icontains | string |
| auth_group__name__in | Array of strings Multiple values may be separated by commas. |
| created_at__date | string <date> |
| created_at__date__gte | string <date> |
| created_at__date__lte | string <date> |
| created_at__gte | string <date-time> |
| created_at__lte | string <date-time> |
| limit | integer Number of results to return per page. |
| offset | integer The initial index from which to return the results. |
| ordering | string Which field to use when ordering the results. |
| search | string A search term. |
| updated_at__date | string <date> |
| updated_at__date__gte | string <date> |
| updated_at__date__lte | string <date> |
| updated_at__gte | string <date-time> |
| updated_at__lte | string <date-time> |
| user__email | string |
| user__email__icontains | string |
| user__email__istartswith | string |
| user__first_name | string |
| user__first_name__icontains | string |
| user__first_name__istartswith | string |
| user__job_title | string |
| user__job_title__icontains | string |
| user__last_name | string |
| user__last_name__icontains | string |
| user__last_name__istartswith | string |
{- "count": 123,
- "results": [
- {
- "id": 0,
- "user": 0,
- "user_detail": {
- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "job_title": "string",
- "email": "[email protected]"
}, - "auth_group": 0,
- "auth_group_detail": {
- "id": 0,
- "name": "string"
}, - "data_room_consumer_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Members of the authenticated user's company.
| id required | integer A unique integer value identifying this user company. |
| auth_group | integer |
{- "auth_group": 0
}{- "id": 0,
- "user": 0,
- "user_detail": {
- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "job_title": "string",
- "email": "[email protected]"
}, - "auth_group": 0,
- "auth_group_detail": {
- "id": 0,
- "name": "string"
}, - "data_room_consumer_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Lists user invitations for the authenticated user's current workspace. status reports the effective lifecycle state: pending, accepted, revoked, or the derived expired (a pending invitation past its expires_at). Filterable by status (repeat status to match several, e.g. ?status=pending&status=expired), email, and role — by group id (auth_group, auth_group__in) or by name (auth_group__name, auth_group__name__in), and by created_at or expires_at ranges (__gte, __lte, __date, __date__gte, __date__lte). Orderable by status (the effective one), created_at, email, expires_at and auth_group_name (the role, alphabetically); newest first by default. Use search for a partial match on the invited email.
| auth_group | integer |
| auth_group__in | Array of integers Multiple values may be separated by commas. |
| auth_group__name | string |
| auth_group__name__in | Array of strings Multiple values may be separated by commas. |
| created_at__date | string <date> |
| created_at__date__gte | string <date> |
| created_at__date__lte | string <date> |
| created_at__gte | string <date-time> |
| created_at__lte | string <date-time> |
string | |
| email__icontains | string |
| expires_at__date | string <date> |
| expires_at__date__gte | string <date> |
| expires_at__date__lte | string <date> |
| expires_at__gte | string <date-time> |
| expires_at__lte | string <date-time> |
| id | string <uuid> |
| id__exclude_in | Array of strings <uuid> [ items <uuid > ] Exclude invitations with any of the given ids (CSV) |
| id__in | Array of strings <uuid> [ items <uuid > ] Multiple values may be separated by commas. |
| invited_by | integer |
| limit | integer Number of results to return per page. |
| offset | integer The initial index from which to return the results. |
| ordering | Array of strings Items Enum: "-auth_group_name" "-created_at" "-email" "-expires_at" "-status" "auth_group_name" "created_at" "email" "expires_at" "status" Ordering
|
| search | string Free-text search across email |
| status | Array of strings Items Enum: "accepted" "expired" "pending" "revoked"
|
{- "count": 123,
- "results": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "auth_group": 0,
- "auth_group_detail": {
- "id": 0,
- "name": "string"
}, - "invited_by": 0,
- "invited_by_detail": {
- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "job_title": "string",
- "email": "[email protected]"
}, - "created_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z"
}
]
}Sends an email invitation to join the authenticated user's current workspace. Only OWNER and ADMIN users can invite users with the ADMIN role; owners cannot be invited. At most one pending invitation can exist per email.
| email required | string <email> [ 1 .. 1024 ] characters |
| auth_group required | integer |
{- "auth_group": 0
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "auth_group": 0,
- "auth_group_detail": {
- "id": 0,
- "name": "string"
}, - "invited_by": 0,
- "invited_by_detail": {
- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "job_title": "string",
- "email": "[email protected]"
}, - "created_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z"
}Workspace-scoped user invitation management.
Successor of gc_api's UserInvitationMultiCompanyViewSet (deprecated), which
keeps the anonymous emailed-link retrieve. Renewing lives on
UserInvitationRenewalViewSet.
| id required | string^[0-9a-fA-F-]{36}$ |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "auth_group": 0,
- "auth_group_detail": {
- "id": 0,
- "name": "string"
}, - "invited_by": 0,
- "invited_by_detail": {
- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "job_title": "string",
- "email": "[email protected]"
}, - "created_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z"
}Invites a list of {email, auth_group} operations, at most 100 per request. Each operation is validated on its own — a rejected invitation (existing member, already-pending invitation, role not allowed) is reported in results against its request index and never blocks the rest of the batch.
required | Array of objects (UserInvitationBulkCreateOperationRequest) | ||||
Array
| |||||
{
}{- "results": [
- {
- "index": 0,
- "status": "accepted",
- "invitation": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "auth_group": 0,
- "auth_group_detail": {
- "id": 0,
- "name": "string"
}, - "invited_by": 0,
- "invited_by_detail": {
- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "job_title": "string",
- "email": "[email protected]"
}, - "created_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z"
}, - "error": {
- "property1": null,
- "property2": null
}
}
]
}Soft-revokes every pending invitation matching each operation's filter set. An operation carries only its target set — the action is implied. Its required invitation_filters object is the typed filter set of the list endpoint, resolved server-side and scoped to the authenticated workspace; an empty object matches every pending invitation in it. Send explicit selections as id__in and select-all exclusions as id__exclude_in (CSV strings, no size cap). Invitations already accepted or revoked fall outside the match rather than being reported as errors, so each operation's result is the count and ids of what it revoked.
required | Array of objects (UserInvitationBulkRevokeOperationRequest) | ||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||
{- "operations": [
- {
- "invitation_filters": {
- "id": "string",
- "id__in": "string",
- "email": "string",
- "email__icontains": "string",
- "invited_by": "string",
- "auth_group": "string",
- "auth_group__in": "string",
- "auth_group__name": "string",
- "auth_group__name__in": "string",
- "created_at__gte": "2019-08-24T14:15:22Z",
- "created_at__lte": "2019-08-24T14:15:22Z",
- "created_at__date": "2019-08-24",
- "created_at__date__gte": "2019-08-24",
- "created_at__date__lte": "2019-08-24",
- "expires_at__gte": "2019-08-24T14:15:22Z",
- "expires_at__lte": "2019-08-24T14:15:22Z",
- "expires_at__date": "2019-08-24",
- "expires_at__date__gte": "2019-08-24",
- "expires_at__date__lte": "2019-08-24",
- "search": "string",
- "status": [
- "string"
], - "id__exclude_in": "string"
}
}
]
}{- "results": [
- {
- "index": 0,
- "status": "accepted",
- "revoked_count": 0,
- "revoked_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}
]
}Renews the given invitation: it is revoked and a fresh one is issued to the same email with the same role, resending the invitation email. The old emailed link stops working; the response contains the new invitation. Only pending invitations can be renewed.
| invitation required | string <uuid> |
{- "invitation": "27ae89cb-37f9-4363-87d4-06983a4ba04d"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "auth_group": 0,
- "auth_group_detail": {
- "id": 0,
- "name": "string"
}, - "invited_by": 0,
- "invited_by_detail": {
- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "job_title": "string",
- "email": "[email protected]"
}, - "created_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z"
}Renews every pending invitation matching each operation's filter set, each one revoked and reissued to the same email as on the single endpoint. An operation carries only its target set — the action is implied. Its required invitation_filters object is the typed filter set of the invitation list endpoint, resolved server-side and scoped to the authenticated workspace; an empty object matches every pending invitation in it. Send explicit selections as id__in and select-all exclusions as id__exclude_in (CSV strings). Invitations already accepted or revoked fall outside the match rather than being reported as errors. Because every renewal resends its invitation email, an operation matching more than 100 invitations is rejected — narrow the filters.
required | Array of objects (UserInvitationBulkRenewalOperationRequest) | ||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||
{- "operations": [
- {
- "invitation_filters": {
- "id": "string",
- "id__in": "string",
- "email": "string",
- "email__icontains": "string",
- "invited_by": "string",
- "auth_group": "string",
- "auth_group__in": "string",
- "auth_group__name": "string",
- "auth_group__name__in": "string",
- "created_at__gte": "2019-08-24T14:15:22Z",
- "created_at__lte": "2019-08-24T14:15:22Z",
- "created_at__date": "2019-08-24",
- "created_at__date__gte": "2019-08-24",
- "created_at__date__lte": "2019-08-24",
- "expires_at__gte": "2019-08-24T14:15:22Z",
- "expires_at__lte": "2019-08-24T14:15:22Z",
- "expires_at__date": "2019-08-24",
- "expires_at__date__gte": "2019-08-24",
- "expires_at__date__lte": "2019-08-24",
- "search": "string",
- "status": [
- "string"
], - "id__exclude_in": "string"
}
}
]
}{- "results": [
- {
- "index": 0,
- "status": "accepted",
- "renewed_count": 0,
- "invitations": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "auth_group": 0,
- "auth_group_detail": {
- "id": 0,
- "name": "string"
}, - "invited_by": 0,
- "invited_by_detail": {
- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "job_title": "string",
- "email": "[email protected]"
}, - "created_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z"
}
]
}
]
}Returns the invitation behind an emailed invitation link. The invitee has no account in the workspace yet, so the UUID is the only credential.
| id required | string^[0-9a-fA-F-]{36}$ |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "company": {
- "id": 0,
- "name": "string",
- "slug": "string",
- "type": "active",
- "country": "string",
- "default_currency": "AUD",
- "default_locale": "nl-NL",
- "results_limit_earliest_year": "2019-08-24",
- "results_limit_latest_year": "2019-08-24",
- "information": null,
- "chift_consumer_id": "string",
- "data_room_consumer_id": "string",
- "pulse_params": {
- "identifier": "string",
- "model_identifier": "string"
}, - "flags": [
- {
- "name": "string"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "auth_group_id": 0,
- "is_existing_user": true,
- "is_active": true,
- "is_mfa_enabled": true
}DEPRECATED — use GET /accounts/user-invitations/public/{id}/ instead, which is anonymous and returns the same fields. This endpoint stays functional only because emailed invitation links already in flight resolve through it, and is removed once the frontend is repointed. Returns the status of a user invitation by its UUID. Use this to check whether the invitee has accepted the invitation and whether they are an existing Coolset user.
| id required | string <uuid> A UUID string identifying this user invitation. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "company": {
- "id": 0,
- "name": "string",
- "type": "active",
- "country": "st",
- "credits_used": "string",
- "nr_of_employees": 0.1,
- "nr_of_locations": 0.1,
- "nr_of_transactions": 0,
- "minimum_date_filter": "2019-08-24",
- "results_limit_earliest_year": "2019-08-24",
- "results_limit_latest_year": "2019-08-24",
- "min_transaction_date": "string",
- "max_transaction_date": "string",
- "chift_consumer_id": "string",
- "default_currency": "string",
- "default_locale": "nl-NL",
- "data_room_consumer_id": "string",
- "information": null,
- "pulse_params": {
- "property1": null,
- "property2": null
}, - "flags": [
- {
- "name": "string"
}
]
}, - "auth_group_id": 0,
- "is_existing_user": true,
- "is_active": true,
- "is_mfa_enabled": true
}Returns all users belonging to the authenticated user's company. Requires the view_user permission.
| limit | integer Number of results to return per page. |
| offset | integer The initial index from which to return the results. |
| search | string A search term. |
{- "count": 123,
- "results": [
- {
- "id": 0,
- "username": "string",
- "first_name": "string",
- "last_name": "string",
- "account": 0,
- "user_group": 0,
- "auth_group": 0
}
]
}IMPORTANT: Only call this endpoint if the user specifically asks to switch workspace. For all other requests, assume you are already in the correct workspace and do not prompt them to switch workspace. Returns all workspaces (companies) the authenticated user is a member of. Each workspace includes its name, ID, logo, member count, and MFA status. Use the workspace ID with the switch workspace endpoint to change the active workspace.
| limit | integer Number of results to return per page. |
| offset | integer The initial index from which to return the results. |
{- "count": 123,
- "results": [
- {
- "workspaces": [
- {
- "workspace_name": "string",
- "workspace_id": 0,
- "member_count": 0,
- "is_mfa_enabled": true
}
]
}
]
}IMPORTANT: Only call this endpoint if the user specifically asks to switch workspace. For all other requests, assume you are already in the correct workspace and do not prompt them to switch workspace. Switches the authenticated user's active workspace to the given company. Use the List workspaces endpoint to retrieve available workspace IDs, then pass the desired workspace_id as company_id in the request body.
| company_id required | integer ID of the workspace to switch to (use List workspaces to get IDs) |
{- "company_id": 0
}{- "message": "string"
}