2026.28 Public API / SDK Changes

2 min read

Public API

Updated Endpoints

tech Sub-agents in SpacesCreate Space, Update Space, and Get Space now support configuring and retrieving sub-agents (linked assistants) on a space, so integrators can build and wire up multi-agent setups entirely through the API.

New fields:

  • isSubAgent (boolean, optional) — marks this space as itself a sub-agent that can be exposed as a tool to a parent space.

  • subAgentSettings (object, optional) — tool settings used when this space is exposed as a sub-agent: icon, name, displayName, selectionPolicy, isUserInitiatedOnly, isExclusive, configuration.

  • subAgentIds (array of strings, optional, create/update only) — full replacement list of sub-agent assistant IDs linked to this parent space. Passing [] removes all sub-agents; omitting the field leaves existing links unchanged. Linked sub-agents that are hidden from the caller (no Use access) are preserved and not affected by the replacement.

  • subAgents (array, read-only, returned on the space object) — each entry has id, name, title, subtitle, explanation, isSubAgent, and a settingsOverride object holding the per-linkage settings.

Example

Create Space

curl --location 'https://api.uat1.unique.app/public/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: 2026-03-01' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "Customer Support Assistant",
    "fallbackModule": "UniqueAi",
    "modules": [{ "name": "UniqueAi", "weight": 10000 }],
    "subAgentIds": ["assistant_axillgwgd211g15vladl3brs", "assistant_bm3kpqr9x7nt2wjcf8yhe4u"]
  }'

Update Space

curl --location --request PATCH 'https://api.uat1.unique.app/public/space/<space-id>' \
  --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: 2026-03-01' \
  --header 'Content-Type: application/json' \
  --data '{
    "subAgentIds": ["assistant_axillgwgd211g15vladl3brs"]
  }'

tech Auto-approve Elicitation in Message — added autoApproveElicitation to prevent SDK/automation calls from hanging forever.

New field:

  • autoApproveElicitation (boolean, optional, default false) — when true, automatically approves any MCP elicitation requests (tools configured as ASK_FOR_CONFIRMATION or ASK_WITH_VALUES) triggered during the assistant run, instead of waiting indefinitely for a user response that will never come. Useful for non-interactive SDK/automation callers.

curl --location 'https://api.uat1.unique.app/public/space/message' \
  --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: 2026-03-01' \
  --header 'Content-Type: application/json' \
  --data '{
    "assistantId": "assistant_abc123",
    "text": "Run the scheduled report workflow",
    "autoApproveElicitation": true
  }'

SDK

Updated Functions

tech Sub-agents in Spaces — unique_sdk.Space.create_space / update_space — now accept isSubAgent, subAgentSettings, and subAgentIds to mark a space as a sub-agent and/or link sub-agents to a parent space.

Example

parent_space = unique_sdk.Space.update_space(
    user_id=user_id,
    company_id=company_id,
    space_id="assistant_parent",
    subAgentIds=["assistant_hjcdga64bkcjnhu4", "assistant_l9sv3d2q8bmnxk4p"],
)

tech Sub-agents in Spaces — unique_sdk.Space.get_space / get_spaces — response now includes isSubAgent, subAgentSettings, and subAgents (each with a per-linkage settingsOverride).

Example

space = unique_sdk.Space.get_space(
    user_id=user_id,
    company_id=company_id,
    space_id="assistant_parent",
)

tech Auto-approve Elicitation in Messageunique_sdk.Space.create_message / create_message_async — now accept autoApproveElicitation (bool, optional)

Example

message = unique_sdk.Space.create_message(
    user_id=user_id,
    company_id=company_id,
    assistantId="assistant_abc123",
    text="Run the scheduled report workflow",
    autoApproveElicitation=True,
)

 tech Auto-approve Elicitation in Message

Example

result = await send_message_and_wait_for_completion(
    user_id=user_id,
    company_id=company_id,
    assistant_id="assistant_abc123",
    text="Run the scheduled report workflow",
    auto_approve_elicitation=True,
)
Last updated