Soda Users API
The Users surface of the Soda Cloud v4 API — 8 operation(s) across 4 path(s).
The Users surface of the Soda Cloud v4 API — 8 operation(s) across 4 path(s).
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/soda-data-users-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
# generated: '2026-08-29'
# method: searched
# source: https://docs.soda.io/reference/soda-apis/rest-api/ — assembled from the OpenAPI 3.1.0
# documents Soda publishes inline on each REST API reference page (16 pages, 103 operations,
# zero conflicting definitions). Ownership: info.title 'Soda Cloud API v4', servers
# https://cloud.soda.io + https://cloud.us.soda.io — Soda's own hosts.
openapi: 3.1.0
info:
title: Soda Cloud API v4 — Users
version: v1
description: The Users surface of the Soda Cloud v4 public REST API — 8 operation(s). Harvested verbatim
from the OpenAPI documents Soda publishes at https://docs.soda.io/reference/soda-apis/rest-api/.
contact:
name: Soda
url: https://www.soda.io
servers:
- description: Cloud EU
url: https://cloud.soda.io
- description: Cloud US
url: https://cloud.us.soda.io
security:
- basicAuthApiKey: []
- cookieToken: []
tags:
- name: Users
description: Soda Cloud API Users Endpoints
paths:
/api/v1/userGroups:
get:
description: "This endpoint enables you to gather information about the user groups in your organization's\
\ Soda Cloud account, including lists of members.\n\nThis GET is a paginated API that uses the\
\ following parameters to request specific details:\n\n- `size`: Supply an integer value between\
\ 10 and 1000, inclusive. The default value is 1000.\n\n- `page`: Supply an integer value. The\
\ default value is 0.\n\n- `search`: Optionally, use this parameter to perform a fuzzy search\
\ on the user group name. \n\nIf not specified, the query gathers information for all user groups\
\ in the account and sorts the results by user group name in ascending order.\n\n## Authentication\n\
\nUser authentication required: `true`\n\nThis endpoint accepts authentication via API keys in\
\ the `Basic` authentication header, or a pre-authenticated token in HTTP cookie `token`. Cookie\
\ sessions extend automatically on each request.\n\n## Authorization\n\nAny Soda Cloud user in\
\ your organization may execute this query.\n\n## Tags\n\n`Users`\n\n## Rate limiting\n\n60 requests/60\
\ seconds"
operationId: GET/api/v1/userGroups
parameters:
- in: query
name: page
schema:
type: integer
format: int32
- in: query
name: search
schema:
type: string
- in: query
name: size
schema:
type: integer
format: int32
responses:
'200':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/PublicApiUserGroupsResponse'
description: Successful response
'400':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'401':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Forbidden
'404':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Not found
'429':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Too many requests
'500':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Internal server error
summary: Get user groups
tags:
- Users
post:
description: 'This endpoint enables you to create a new user group in your organization''s Soda
Cloud account.
The Response of this call, when successful, is `201` and contains headers `Location` which is
a reference to the newly created User Group.
## Authorization
Only users with **Manage organization settings** permission can update user groups.**See [Manage
global roles](https://go.soda.io/roles-global) for more information.**
## Authentication
User authentication required: `true`
This endpoint accepts authentication via API keys in the `Basic` authentication header, or a pre-authenticated
token in HTTP cookie `token`. Cookie sessions extend automatically on each request.
## Authorization
Users must have global role permission MANAGE_ORGANISATION_SETTINGS to execute this call.
## Tags
`Users`
## Rate limiting
60 requests/60 seconds'
operationId: POST/api/v1/userGroups
requestBody:
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/PublicApiCreateUserGroupRequestDTO'
required: true
responses:
'200':
description: Successful response
headers:
Location:
schema:
type: string
'400':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'401':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Forbidden
'404':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Not found
'429':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Too many requests
'500':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Internal server error
summary: Create user group
tags:
- Users
/api/v1/userGroups/{userGroupId}:
get:
description: 'This endpoint enables you to gather information about a single user group in your
organization''s Soda Cloud account, including lists of members.
This GET is a non-paginated API that returns a single organization based on its ID.
## Authentication
User authentication required: `true`
This endpoint accepts authentication via API keys in the `Basic` authentication header, or a pre-authenticated
token in HTTP cookie `token`. Cookie sessions extend automatically on each request.
## Authorization
Any Soda Cloud user in your organization may execute this query.
## Tags
`Users`
## Rate limiting
60 requests/60 seconds'
operationId: GET/api/v1/userGroups/{userGroupId}
parameters:
- in: path
name: userGroupId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/UserGroupContentDTO'
description: Successful response
'400':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'401':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Forbidden
'404':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Not found
'429':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Too many requests
'500':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Internal server error
summary: Get user group
tags:
- Users
post:
description: 'This endpoint enables you to update an existing user group in your organization''s
Soda Cloud account.
The Response of this call, when successful, is `200` and contains updated User Group details.
## Authorization
Only users with **Manage organization settings** permission can update user groups.**See [Manage
global roles](https://go.soda.io/roles-global) for more information.**
## Authentication
User authentication required: `true`
This endpoint accepts authentication via API keys in the `Basic` authentication header, or a pre-authenticated
token in HTTP cookie `token`. Cookie sessions extend automatically on each request.
## Authorization
Users must have global role permission MANAGE_ORGANISATION_SETTINGS to execute this call.
## Tags
`Users`
## Rate limiting
60 requests/60 seconds'
operationId: POST/api/v1/userGroups/{userGroupId}
parameters:
- in: path
name: userGroupId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/PublicApiUpdateUserGroupRequestDTO'
required: true
responses:
'200':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/UserGroupContentDTO'
description: Successful response
'400':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'401':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Forbidden
'404':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Not found
'429':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Too many requests
'500':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Internal server error
summary: Update user group
tags:
- Users
delete:
description: 'This endpoint enables you to delete an existing user group from your organization''s
Soda Cloud account.
In case of success, the response returns a `200` (OK) response.
In case user group is not found, the response returns a `404` (Not found) response.
## Authorization
Only users with **Manage organization settings** permission can update user groups.**See [Manage
global roles](https://go.soda.io/roles-global) for more information.**
## Authentication
User authentication required: `true`
This endpoint accepts authentication via API keys in the `Basic` authentication header, or a pre-authenticated
token in HTTP cookie `token`. Cookie sessions extend automatically on each request.
## Authorization
Users must have global role permission MANAGE_ORGANISATION_SETTINGS to execute this call.
## Tags
`Users`
## Rate limiting
60 requests/60 seconds'
operationId: DELETE/api/v1/userGroups/{userGroupId}
parameters:
- in: path
name: userGroupId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/PublicApiDeleteUserGroupResponse'
description: Successful response
'400':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'401':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Forbidden
'404':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Not found
'429':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Too many requests
'500':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Internal server error
summary: Delete user group
tags:
- Users
/api/v1/users:
get:
description: "This endpoint enables you to gather information about the users in your organization's\
\ Soda Cloud account.\n\nThis GET is a paginated API that uses the following parameters to request\
\ specific details:\n\n- `size`: Supply an integer value between 1 and 1000, inclusive. The default\
\ value is 1000.\n\n- `page`: Supply an integer value. The default value is 0.\n\n- `search`:\
\ Optionally, use this parameter to perform a fuzzy search on the user first name, last name,\
\ or email address. \n\nIf not specified, the query gathers information for all users in the account\
\ and sorts the results by user name in ascending order.\n\n## Authentication\n\nUser authentication\
\ required: `true`\n\nThis endpoint accepts authentication via API keys in the `Basic` authentication\
\ header, or a pre-authenticated token in HTTP cookie `token`. Cookie sessions extend automatically\
\ on each request.\n\n## Authorization\n\nAny Soda Cloud user in your organization may execute\
\ this query.\n\n## Tags\n\n`Users`\n\n## Rate limiting\n\n60 requests/60 seconds"
operationId: GET/api/v1/users
parameters:
- in: query
name: page
schema:
type: integer
format: int32
- in: query
name: search
schema:
type: string
- in: query
name: size
schema:
type: integer
format: int32
responses:
'200':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/PublicApiUsersResponse'
description: Successful response
'400':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'401':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Forbidden
'404':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Not found
'429':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Too many requests
'500':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Internal server error
summary: Get users
tags:
- Users
post:
description: 'This endpoint enables you to invite users to your organization''s Soda Cloud account.
Invited users will receive an email with a link to set their password and join your organization
in Soda Cloud. Once they complete the setup, they will have access to Soda Cloud based on the
roles and permissions you assign.
If your organization is using SSO, invited users will receive an invitation email with a link
to Soda Cloud. When they log in using SSO, they are immediately added to the Soda Cloud organization.
You can invite up to 10 users per request. The response contains lists of successful and failed
invitations.
## Authentication
User authentication required: `true`
This endpoint accepts authentication via API keys in the `Basic` authentication header, or a pre-authenticated
token in HTTP cookie `token`. Cookie sessions extend automatically on each request.
## Authorization
Users must have global role permission MANAGE_ORGANISATION_SETTINGS to execute this call.
## Tags
`Users`
## Rate limiting
10 requests/60 seconds'
operationId: POST/api/v1/users
requestBody:
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/PublicApiInviteUserRequestDTO'
required: true
responses:
'200':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/PublicApiInviteUserResponse'
description: Successful response
'400':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'401':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Forbidden
'429':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Too many requests
'500':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Internal server error
summary: Invite users
tags:
- Users
/api/v1/users/{userId}/disable:
post:
description: 'This endpoint disables a user in your organization''s Soda Cloud account.
Disabling a user deactivates their membership in the organization. The user is not deleted and
can be reactivated later.
Users in SSO-enabled organizations cannot be disabled via this endpoint, as they are managed by
the identity provider.
## Authentication
User authentication required: `true`
This endpoint accepts authentication via API keys in the `Basic` authentication header, or a pre-authenticated
token in HTTP cookie `token`. Cookie sessions extend automatically on each request.
## Authorization
Users must have global role permission MANAGE_ORGANISATION_SETTINGS to execute this call.
## Tags
`Users`
## Rate limiting
60 requests/60 seconds'
operationId: POST/api/v1/users/{userId}/disable
parameters:
- in: path
name: userId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/PublicApiDisableUserResponse'
description: Successful response
'400':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'401':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Forbidden
'404':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Not found
'429':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Too many requests
'500':
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ErrorResponse'
description: Internal server error
summary: Disable user
tags:
- Users
components:
securitySchemes:
basicAuthApiKey:
scheme: basic
type: http
cookieToken:
in: cookie
name: token
type: apiKey
schemas:
ErrorResponse:
type: object
properties:
code:
type: string
message:
type: string
FailedInvitationDTO:
type: object
properties:
email:
type: string
error:
type: string
PublicApiCreateUserGroupRequestDTO:
type: object
properties:
name:
type: string
userIds:
type: array
items:
type: string
required:
- name
PublicApiDeleteUserGroupResponse:
type: object
PublicApiDisableUserResponse:
type: object
PublicApiInviteUserRequestDTO:
type: object
properties:
emails:
type: array
items:
type: string
required:
- emails
PublicApiInviteUserResponse:
type: object
properties:
failedInvitations:
type: array
items:
type: object
$ref: '#/components/schemas/FailedInvitationDTO'
validInvitations:
type: array
items:
type: string
PublicApiUpdateUserGroupRequestDTO:
type: object
properties:
userIds:
type: array
items:
type: string
PublicApiUserGroupsResponse:
type: object
properties:
content:
type: array
items:
type: object
$ref: '#/components/schemas/UserGroupContentDTO'
first:
type: boolean
last:
type: boolean
number:
type: integer
format: int32
size:
type: integer
format: int32
totalElements:
type: integer
format: int32
totalPages:
type: integer
format: int32
required:
- content
- first
- last
- number
- size
- totalElements
- totalPages
PublicApiUsersResponse:
type: object
properties:
content:
type: array
items:
type: object
$ref: '#/components/schemas/UserContentDTO'
first:
type: boolean
last:
type: boolean
number:
type: integer
format: int32
size:
type: integer
format: int32
totalElements:
type: integer
format: int32
totalPages:
type: integer
format: int32
required:
- content
- first
- last
- number
- size
- totalElements
- totalPages
UserContentDTO:
type: object
properties:
email:
type: string
firstName:
type: string
fullName:
type: string
lastName:
type: string
userId:
type: string
required:
- email
- userId
UserGroupContentDTO:
type: object
properties:
name:
type: string
userGroupId:
type: string
users:
type: array
items:
type: object
$ref: '#/components/schemas/UserContentDTO'
required:
- name
- userGroupId
- users