2026.18 Public API / SDK Changes
3 min read
Heads Up – New API Version Coming Soon
We want to inform you that a new version of the Public API is currently in development. No action is required on your end at this time - we will provide full documentation and a clear adoption timeline ahead of any changes.
What's changing?
Enforced role-based access control (RBAC)
Stricter request validation
Public API
New Endpoints
Manage modules - Manage space modules directly from the Public API with full CRUD support. Use this to list, create, update, retrieve, and delete modules.
tech List modules - return modules for the company; optionally filter by assistant (space).
Query
skip(number, optional, default0) - pagination offsettake(number, optional, default50, max1000) - page sizeassistantId(string, optional) - only modules for this assistant
Example
curl --location 'https://api.uat1.unique.app/public/chat/modules?skip=0&take=50' \
--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'tech Get module - fetch one module by id.
Example
curl --location 'https://api.uat1.unique.app/public/chat/modules/module_rn2o3kojc2lnmnau0qnumi3r' \
--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'tech Create module - create a module for an assistant (space).
Body
assistantId(string, required) - assistant (space) idname(string, required) - module namedescription(string, optional)weight(number, optional) - priority (higher runs first)isExternal(boolean, optional)isCustomInstructionEnabled(boolean, optional)configuration(object, optional)toolDefinition(object, optional)moduleTemplateId(string, optional)
Example
curl --location 'https://api.uat1.unique.app/public/chat/modules' \
--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 '{
"assistantId": "<assistant-id>",
"name": "UniqueAi"
}'tech Update module - patch fields on an existing module.
Body (all optional; send only what changes)
name(string, optional)description(string, optional)weight(number, optional)isExternal(boolean, optional)isCustomInstructionEnabled(boolean, optional)configuration(object, optional)toolDefinition(object, optional)
Example
curl --location --request PATCH 'https://api.uat1.unique.app/public/chat/modules/module_rn2o3kojc2lnmnau0qnumi3r' \
--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 '{
"description": "Updated description for this module.",
"weight": 10000
}'tech Delete module - delete a module by id.
Example
curl --location --request DELETE 'https://api.uat1.unique.app/public/chat/modules/module_rn2o3kojc2lnmnau0qnumi3r' \
--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'tech List Spaces - return spaces the user can access for the company. Use optional name for a case-insensitive partial match when you need to narrow the list (e.g. before picking one space).
Query
name(string, optional) - filter by space name (partial, case-insensitive)skip(number, optional, default0)take(number, optional, default50, max1000)
Example
curl --location 'https://api.uat1.unique.app/public/chat/space?name=Quarterly&skip=0&take=50' \
--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'SDK
Module Management - Manage space modules directly from the SDK with full CRUD support. Use this to list, create, update, retrieve, and delete modules.
tech Create Module - Create a module for an assistants.
Example
module = unique_sdk.Module.create(
user_id=user_id,
company_id=company_id,
assistantId=assistant_id,
name="AgenticSearch",
weight=300,
isExternal=False,
isCustomInstructionEnabled=True,
configuration={"languageModel": "AZURE_GPT_4o_2024_0806"},
toolDefinition={}, #add here your tools
)tech List Modules - Retrieve all the modules that you have access to and, optionally, retrieve only the modules of a space by specifying the assistantId.
Example
modules = unique_sdk.Module.list(
user_id=user_id,
company_id=company_id,
assistantId=assistant_id,
)tech Update Module - Update an already existing module.
Example
updated_module = unique_sdk.Module.modify(
user_id=user_id,
company_id=company_id,
id=module_id,
weight=500,
configuration={
"languageModel": "AZURE_GPT_41_2025_0414",
}
}tech Delete Module - Delete an already existent module that you have access to.
Example
unique_sdk.Module.delete(
user_id=user_id,
company_id=company_id,
id=<module-id>,
)Spaces
tech List Spaces - List accessible spaces with optional name filtering and pagination. Use this when you need to resolve an assistant by name before opening chats or sending messages.
Example
spaces = unique_sdk.Space.get_spaces(
user_id=user_id,
company_id=company_id,
name="My Assistant",
take=1,
)