# 2026.14 Public API / SDK Changes

4 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**

tech **Create Chat –** clients can now create a chat for an assistant. Use this when you need a `chatId` up front (e.g. benchmarking)

**Body**
- `title` (string, required) — chat title
- `assistantId` (string, required) — assistant (space) id

**Example**
```
curl --location 'https://api.uat1.unique.app/public/chat/space/chat' \
  --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 '{
    "title": "Quarterly review",
    "assistantId": "<assistant-id>"
  }'
```

* * *

#### Benchmarking

**Kong Plugin Upgrade Required**
The benchmarking endpoints are only available for clients who have upgraded to the latest Kong plugin ( >1.3.0). This is already the case for Single-Tenant (ST) and Multi-Tenant (MT) deployments. For Cluster-Multi-Tenant (CMT) deployments this must be verified — and it will only work if the CMT avoids hair-pinning. CMTs that use hair-pinning will not be able to use these endpoints, because the endpoints are now protected by roles retrieved from Zitadel.

tech **Benchmarking – Process Data** — upload an xlsx file to start a benchmarking run  
**Required Role**`CHAT_FEEDBACK_READ`

**Body** (multipart/form-data)
- `file` (file, required) — xlsx spreadsheet, max 10 MB
- `force` (query param, boolean, optional) — force re-processing even if a run is already in progress

**Response**
- `benchmarkStatus.done` (number) — completed items
- `benchmarkStatus.error` (number) — errored items
- `benchmarkStatus.total` (number) — total items

**Example**
```
curl --location 'https://api.uat1.unique.app/public/chat/benchmarking?force=true' \
  --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' \
  --form 'file=@
