Kenso

Bug reports

The Bug reports endpoints of the Kenso API.

Workspace and credits1 endpointKen-Version: 2026-11-02AuthenticationWorkspacesErrors

File a bug report

POST/v1/bug-reportsbug-reports.create

Needs the bug_reports feature on your workspace. Until it is on, calls answer 404.

Try it on developer.ken.so

multipart/form-data. description (required, 1-10000 characters) is the user's own words, filed verbatim. source (required) is app_form, support_chat, ken_agent or mcp. Optional: title (120; else the first line of the description, cut to 80), summary (10000, an agent-written summary with steps to reproduce), clientName (100, the MCP client), pageUrl (2000), userAgent (500), diagnostics (20000, JSON text), transcript (60000, plain text), supportAttachmentIds (repeated, at most 5 of the caller's own support chat attachments) and files (repeated, at most 10 files of 25 MB each; programs and scripts are refused, such as .exe, .js, .sh, .py, .html, .svg, disk images like .iso and macro Office files like .xlsm). Each report is a new issue in Kenso's Linear Alerts project with every file uploaded into it; the reporter never sees a Linear id or URL. Answers 202{ status: received }. A bad field is 400 naming it, a file or request that is too large 413. Each report takes one unit of the caller's daily limit (20) and the workspace's (50): past either, 429quota_exceeded with Retry-After and quotaResetAt. 503 when Linear is not configured or refused a file or the issue; nothing is filed then. Any workspace member, Client seats included.

Parameters

Name
In
Type
Required
Description
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Request body

multipart/form-data, optional.

Field
Type
Required
Description
Description
string
optional
Required, 1-10000 characters. The user's own words, filed verbatim.
Title
string
optional
At most 120 characters. Absent: the first line of description, cut to 80 characters.
Summary
string
optional
At most 10000 characters. An agent-written summary: steps to reproduce, expected and actual.
Source
string
optional
Required: app_form, support_chat, ken_agent or mcp.
ClientName
string
optional
At most 100 characters. The MCP client's name (Claude, ChatGPT, Cursor...).
PageUrl
string
optional
At most 2000 characters. The page the user was on.
UserAgent
string
optional
At most 500 characters. The browser's user agent.
Diagnostics
string
optional
At most 20000 characters of JSON text, pretty-printed in the issue when it parses.
Transcript
string
optional
At most 60000 characters of plain text, one turn per paragraph (User: ... / Assistant: ...).
SupportAttachmentIds
array of string
optional
Repeated, at most 5: 32-hex support chat attachment ids the caller uploaded.
Files
array of string (binary)
optional
Repeated, at most 10 files of at most 25 MB (26,214,400 bytes) each. Programs and scripts are refused by extension; a file with no extension is accepted.

Response 202

data is a BugReportReceiptModel.

Field
Type
Description
status
string
Always received.
Request
curl -X POST "https://api.ken.so/v1/bug-reports" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID" \
  -F 'Description=string' \
  -F 'Title=string' \
  -F 'Summary=string' \
  -F 'Source=string' \
  -F 'ClientName=string' \
  -F 'PageUrl=https://example.com' \
  -F 'UserAgent=string' \
  -F 'Diagnostics=string' \
  -F 'Transcript=string' \
  -F 'SupportAttachmentIds=["string"]' \
  -F 'Files=["<binary>"]'
Response 202
{
  "success": true,
  "data": {
    "status": "string"
  }
}