Download OpenAPI specification:Download
Your user, the workspaces you belong to, team members and invitations.
Returns the profile of the currently authenticated user.
{- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "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,
- "language_subtag": "string",
- "pulse_params": {
- "property1": null,
- "property2": null
}, - "flags": [
- {
- "name": "string"
}
]
}, - "auth_group": {
- "id": 0,
- "name": "string",
- "permissions": [
- {
- "codename": "string"
}
]
}
}Workspaces (companies) you belong to. A workspace-scoped API key always stays pinned to its own workspace, so switching does not affect it; for a user-scoped key, switching changes your active workspace everywhere, including the Coolset app.
Base URL: https://developers.coolset.com/api
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"
}
]
}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"
}Members of the current workspace: list them, change a member's role, or remove one.
Base URL: https://developers.coolset.com/api
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": "user@example.com"
}, - "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"
}
]
}Changes the role (auth_group) of a member of the authenticated user's company. The role is the only field that can be changed, and it cannot be cleared. Owners can change any member's role; Admins can change non-Owner members to any role except Owner; Editors and Viewers cannot change roles. Handing over the Owner role demotes the current Owner to Admin.
| 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": "user@example.com"
}, - "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"
}Removes a member from the authenticated user's company. Owners can remove any member and Admins any member except the Owner; Editors and Viewers cannot remove others. Any member except the Owner can remove themselves to leave the workspace — the Owner must hand over ownership first.
| id required | integer A unique integer value identifying this user company. |
Invite people to the current workspace, singly or in bulk, resend and revoke invitations, and look one up anonymously from its emailed link.
Base URL: https://developers.coolset.com/api
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",
- "email": "user@example.com",
- "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": "user@example.com"
}, - "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 |
{- "email": "user@example.com",
- "auth_group": 0
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "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": "user@example.com"
}, - "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",
- "email": "user@example.com",
- "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": "user@example.com"
}, - "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
| |||||
{- "operations": [
- {
- "email": "user@example.com",
- "auth_group": 0
}
]
}{- "results": [
- {
- "index": 0,
- "status": "accepted",
- "invitation": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "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": "user@example.com"
}, - "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",
- "email": "user@example.com",
- "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": "user@example.com"
}, - "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",
- "email": "user@example.com",
- "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": "user@example.com"
}, - "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",
- "email": "user@example.com",
- "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
}