2026.18 Public API / SDK Changes

3 min read

note

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, default 0) - pagination offset

  • take (number, optional, default 50, max 1000) - page size

  • assistantId (string, optional) - only modules for this assistant

Example

bash
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

bash
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) id

  • name (string, required) - module name

  • description (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

bash
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

bash
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

bash
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, default 0)

  • take (number, optional, default 50, max 1000)

Example

bash
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

py
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

py
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

py
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

py
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

py
spaces = unique_sdk.Space.get_spaces(
    user_id=user_id,
    company_id=company_id,
    name="My Assistant",
    take=1,
)
Last updated