2025.52 Public API / SDK Changes
4 min read
Public API
New Endpoints
tech POST Create Space - API to create a new space (assistant).
Body
name(required) - The name of the space
fallbackModule(required) - The fallback module name (must match one of the module names)
modules(required) - List of modules to create for the space
name(required) - The name of the module
description(optional) - The description of the module
weight(optional) - The weight/priority of the module
isExternal(optional) - Whether the module is external
isCustomInstructionEnabled(optional) - Whether custom instruction is enabled
configuration(optional) - Configuration for the module
toolDefinition(optional) - Tool definition for the module
explanation(optional) - Description of the space
alert(optional) - Alert message for the space
chatUpload(optional) - Chat upload setting (ENABLED|DISABLED)
languageModel(optional) - Language model to use
isExternal(optional) - Whether the space is external
isPinned(optional) - Whether the space is pinned
uiType(optional) - UI type (MAGIC_TABLE|UNIQUE_CUSTOM|TRANSLATION|UNIQUE_AI)
settings(optional) - Space settings
Example
curl --location --request POST 'https://api.uat1.unique.app/v1/space' \
--header 'x-user-id: <user-id>' \
--header 'x-company-id: <company-id>' \
--header 'Authorization: Bearer <api-key>' \
--header 'x-app-id: <app-id>' \
--header 'x-api-version: 2023-12-06' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Customer Support Assistant",
"fallbackModule": "UniqueAi",
"modules": [
{
"name": "UniqueAi",
"weight": 10000
}
]
}'tech GET Get Space Access - API to retrieve access entries for a space. Requires manage access to the space.
Path Params
spaceId(required) - The ID of the space
Example
curl --location --request GET 'https://api.uat1.unique.app/v1/space/<space-id>/access' \
--header 'x-user-id: <user-id>' \
--header 'x-company-id: <company-id>' \
--header 'Authorization: Bearer <api-key>' \
--header 'x-app-id: <app-id>' \
--header 'x-api-version: 2023-12-06' \
--header 'Content-Type: application/json'tech POST Add Space Access - API to add access entries to a space. Requires manage access to the space.
Path Params
spaceId(required) - The ID of the space
Request Body
accessIds(required) - List of access entries to add
entityId(required) - The ID of the entity (user or group)
entityType(required) - The type of entity (USER|GROUP)
type(required) - The type of access (USE|MANAGE|UPLOAD)
Example
curl --location --request POST 'https://api.uat1.unique.app/v1/space/<space-id>/access' \
--header 'x-user-id: <user-id>' \
--header 'x-company-id: <company-id>' \
--header 'Authorization: Bearer <api-key>' \
--header 'x-app-id: <app-id>' \
--header 'x-api-version: 2023-12-06' \
--header 'Content-Type: application/json' \
--data-raw '{
"accessIds": [
{
"entityId": "228959553377538182",
"entityType": "USER",
"type": "USE"
}
]
}'tech DELETE Delete Space Access - API to remove access entries from a space. Requires manage access to the space.
Path Params
spaceId(required) - The ID of the space
Request Body
accessIds(required) - List of access entry IDs to delete
Example
curl --location --request DELETE 'https://api.uat1.unique.app/v1/space/<space-id>/access' \
--header 'x-user-id: <user-id>' \
--header 'x-company-id: <company-id>' \
--header 'Authorization: Bearer <api-key>' \
--header 'x-app-id: <app-id>' \
--header 'x-api-version: 2023-12-06' \
--header 'Content-Type: application/json' \
--data-raw '{
"accessIds": ["access_yptvsdq8sqjfsxe1ih0mnug7"]
}'tech GET Get User Groups - API to retrieve groups that a specific user belongs to.
Path Params
userId(required) - The ID of the user
Example
curl --location --request GET 'https://api.uat1.unique.app/v1/users/<user-id>/groups' \
--header 'x-user-id: <user-id>' \
--header 'x-company-id: <company-id>' \
--header 'Authorization: Bearer <api-key>' \
--header 'x-app-id: <app-id>' \
--header 'x-api-version: 2023-12-06' \
--header 'Content-Type: application/json'Updated Endpoints
tech GET Get Users - Added support for filtering users by userName.
Query Params
skip(optional) - Number of records to skip for pagination (minimum: 0)
take(optional) - Number of records to retrieve (minimum: 1, maximum: 1000)
email(optional) - Filter users by email address
displayName(optional) - Filter users by display name
userName(optional) - Filter users by user name (new)
Example
curl --location --request GET 'https://api.uat1.unique.app/v1/users?skip=0&take=100&userName=john.doe' \
--header 'x-user-id: <user-id>' \
--header 'x-company-id: <company-id>' \
--header 'Authorization: Bearer <api-key>' \
--header 'x-app-id: <app-id>' \
--header 'x-api-version: 2023-12-06' \
--header 'Content-Type: application/json'tech POST Content Upsert - Added support for hideInChat in ingestionConfig to control content visibility in chat.
Request Body
input.ingestionConfig.hideInChat(optional) - Boolean flag to hide content from chat view. When set totrue, the content will be filtered out when retrieving content for a chat. Defaults tofalse.
Example
curl --location --request POST 'https://api.uat1.unique.app/v1/content/upsert' \
--header 'x-user-id: <user-id>' \
--header 'x-company-id: <company-id>' \
--header 'Authorization: Bearer <api-key>' \
--header 'x-app-id: <app-id>' \
--header 'x-api-version: 2023-12-06' \
--header 'Content-Type: application/json' \
--data-raw '{
"input": {
"key": "document-key",
"title": "My Document",
"mimeType": "application/pdf",
"ingestionConfig": {
"hideInChat": true
}
},
"chatId": "<chat-id>"
}'SDK
New Functions
tech Create Space - Create a new space (assistant) with specified configuration including modules, name, and settings.
Example
space = unique_sdk.Space.create_space(
user_id=user_id,
company_id=company_id,
name="Customer Support Assistant",
fallbackModule="UniqueAi",
modules=[
{
"name": "UniqueAi",
"weight": 10000,
"description": "Main AI module for customer support",
"isExternal": False,
"isCustomInstructionEnabled": True,
"configuration": {},
"toolDefinition": None,
}
],
explanation="AI assistant for handling customer inquiries",
alert="Please note: This assistant may not have access to real-time data",
chatUpload="ENABLED",
languageModel="GPT-4o",
isExternal=False,
isPinned=True,
uiType="UNIQUE_AI",
)tech Get Space Access - Retrieve access entries for a space. Requires manage access to the space.
Example
access = unique_sdk.Space.get_space_access(
user_id=user_id,
company_id=company_id,
space_id="assistant_hjcdga64bkcjnhu4",
)tech Add Space Access - Add access entries (users or groups) to a space with USE, MANAGE, or UPLOAD permissions.
Example
result = unique_sdk.Space.add_space_access(
user_id=user_id,
company_id=company_id,
space_id="assistant_hjcdga64bkcjnhu4",
accessIds=[{"entityId": "228959553377538182", "entityType": "USER", "type": "USE"}]
)tech Delete Space Access - Remove access entries from a space by access entry IDs.
Example
result = unique_sdk.Space.delete_space_access(
user_id=user_id,
company_id=company_id,
space_id="assistant_hjcdga64bkcjnhu4",
accessIds=["access_yptvsdq8sqjfsxe1ih0mnug7"]
)tech Get User Groups - Retrieve all groups that a specific user belongs to.
Example
user_groups = unique_sdk.User.get_user_groups(
user_id=user_id,
company_id=company_id,
target_user_id="351283829975023795",
)Updated Functions
tech Get Users - Added userName filter to search users by username.
Example
users = unique_sdk.User.get_users(
user_id=user_id,
company_id=company_id,
userName="john.doe",
)tech Content Upsert - Added hideInChat parameter in ingestionConfig to control content visibility in chat.
Example
content = unique_sdk.Content.upsert(
user_id=user_id,
company_id=company_id,
input={
"key": "document-key",
"title": "My Document",
"mimeType": "application/pdf",
"ingestionConfig": {
"hideInChat": True
}
},
chatId="<chat-id>",
)Author |
|
|---|