---
title: "Returns the Copilot configuration for the given account. Returns platform defaults (enabled=false, …) for accounts with no row. accountId is required; the endpoint never falls back to the calling principal because the caller is a service identity with no tenant scope of its own."
method: GET
path: "/api/copilot/config"
tags: ["CopilotConfig"]
---

# Returns the Copilot configuration for the given account. Returns platform defaults (enabled=false, …) for accounts with no row. accountId is required; the endpoint never falls back to the calling principal because the caller is a service identity with no tenant scope of its own.

`GET /api/copilot/config`

## Query parameters

- `accountId` integer
- `departmentId` integer

## Response `200`

OK

- CopilotConfigDto — Read-side DTO for the AI Copilot tenant configuration (IDT-788). Returned by both the admin UI endpoint (`/v1/admin/copilot/config`) and the internal sidecar endpoint (`/api/copilot/config`). If no row exists for the tenant, the service returns this DTO populated with platform defaults rather than inserting a row eagerly — the row is created on first PUT. Multi-department (brand) support: config is keyed by (AccountId, DepartmentId). Infoset.Types.Models.Admin.CopilotConfigDto.DepartmentId = 0 is the account-level default row; department-scoped rows carry the actual brand id. A department read with no row falls back to the account-level (dept 0) row as a whole, and the returned Infoset.Types.Models.Admin.CopilotConfigDto.DepartmentId reflects the ACTUAL row served (0 after a fallback), not the requested department. Infoset.Types.Models.Admin.CopilotConfigDto.SelectedDeskIds is the set of help-center desk ids this config applies to. The distinction between null and empty is meaningful and preserved end-to-end: <list type="bullet"><item>`null` — DB column is NULL — "all desks" (no restriction).</item><item>empty array — DB column is the empty string — "no desks".</item><item>non-empty — DB column is a comma-separated list of desk ids.</item></list>
  - `accountId` integer
  - `enabled` boolean
  - `modelTemperature` number, double
  - `maxResponseTokens` integer
  - `customSystemPrompt` string, nullable
  - `departmentId` integer
  - `selectedDeskIds` string[], nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized

---

[API](https://skmtc.dev/infoset/apis/infoset-rest-api.md) · [All operations](https://skmtc.dev/infoset/apis/infoset-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/infoset/infoset-rest-api/revisions/f5bc39a1ac15/schema)
