For AI agents: markdown of this page — /docs-content-en/feedback/get.md documentation index — /llms.txt
Get a ticket
GET /v1/feedback/:id
Returns a single ticket by ID with all the list fields plus context, attachments, and comments.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
Parameterid (path) |
Typestring | Requiredyes | DescriptionTicket UUID. Get it from the ticket list or the create response |
Examples
curl — personal key
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://vibecode.bitrix24.com/v1/feedback/a1b2c3d4-1111-2222-3333-444455556666"
curl — OAuth application
curl -H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
"https://vibecode.bitrix24.com/v1/feedback/a1b2c3d4-1111-2222-3333-444455556666"
JavaScript — personal key
const res = await fetch(
'https://vibecode.bitrix24.com/v1/feedback/a1b2c3d4-1111-2222-3333-444455556666',
{ headers: { 'X-Api-Key': 'YOUR_API_KEY' } },
)
const { data } = await res.json()
JavaScript — OAuth application
const res = await fetch(
'https://vibecode.bitrix24.com/v1/feedback/a1b2c3d4-1111-2222-3333-444455556666',
{ headers: { 'X-Api-Key': 'YOUR_APP_KEY', 'Authorization': 'Bearer USER_SESSION_TOKEN' } },
)
const { data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata.id |
Typestring | DescriptionTicket UUID |
Fielddata.category |
Typestring | DescriptionCategory |
Fielddata.title |
Typestring | DescriptionTitle |
Fielddata.body |
Typestring | DescriptionDescription |
Fielddata.status |
Typestring | DescriptionCurrent status |
Fielddata.source |
Typestring | Descriptionapi or ui |
Fielddata.resolution |
Typestring · null | DescriptionThe verdict recorded at the last closure. Empty on a ticket that was never closed. Reopening the ticket keeps the verdict, so the field can be non-empty on an active ticket — for the team's latest answer, read the comment thread |
Fielddata.context |
Typeobject · null | DescriptionThe original JSON passed at creation |
Fielddata.attachments |
Typearray | DescriptionTicket attachments |
Fielddata.attachments[].id |
Typestring | DescriptionAttachment UUID |
Fielddata.attachments[].kind |
Typestring | DescriptionAttachment class: IMAGE or DOCUMENT |
Fielddata.attachments[].mime |
Typestring | DescriptionFile type. For an image — image/webp or image/gif. For a document — the type by extension, for example text/plain or application/zip |
Fielddata.attachments[].sizeBytes |
Typenumber | DescriptionSize in bytes |
Fielddata.attachments[].width |
Typenumber | DescriptionWidth in pixels. 0 for a document |
Fielddata.attachments[].height |
Typenumber | DescriptionHeight in pixels. 0 for a document |
Fielddata.attachments[].originalName |
Typestring · null | DescriptionOriginal file name. null if the image was uploaded without a file name. A document without a name gets attachment.<extension> |
Fielddata.attachments[].createdAt |
Typestring | DescriptionDate the file was uploaded (ISO 8601). Attaching the file to a ticket or a comment does not change this date, so it can be earlier than the ticket's or the comment's creation date |
Fielddata.comments |
Typearray | DescriptionTicket comments |
Fielddata.comments[].id |
Typestring | DescriptionComment UUID |
Fielddata.comments[].authorType |
Typestring | DescriptionUSER or PLATFORM |
Fielddata.comments[].authorName |
Typestring · null | DescriptionName of the comment author. Filled in for a key with the vibe:feedback scope and for a management key; others receive null |
Fielddata.comments[].body |
Typestring | DescriptionComment text |
Fielddata.comments[].createdAt |
Typestring | DescriptionCreation date (ISO 8601) |
Fielddata.comments[].attachments |
Typearray | DescriptionComment attachments, same structure as data.attachments[] |
Fielddata.createdAt |
Typestring | DescriptionCreation date (ISO 8601) |
Fielddata.resolvedAt |
Typestring · null | DescriptionClosing date, if any |
Fielddata.portalId |
Typestring | DescriptionUUID of the Bitrix24 account the ticket was sent from |
Fielddata.portalDomain |
Typestring | DescriptionDomain of that Bitrix24 account |
Fielddata.userId |
Typestring | DescriptionUUID of the user who sent the ticket. Absent for a ticket without an author, for example when the author was deleted |
Fielddata.userName |
Typestring | DescriptionName of that user. Comes together with userId |
Fielddata.securityFlags |
Typeobject · null | DescriptionInternal moderation marks. null when there are none |
Fielddata.gitlabIssueIid |
Typenumber · null | DescriptionIssue number in the team's tracker if the ticket was handed over to developers. Otherwise null |
Fielddata.exportedAt |
Typestring · null | DescriptionWhen the ticket was handed over to developers (ISO 8601). Otherwise null |
The fields from portalId to exportedAt are returned only to a key with the vibe:feedback scope and to a management key.
Response example
{
"success": true,
"data": {
"id": "a1b2c3d4-1111-2222-3333-444455556666",
"category": "BUG",
"title": "POST /v1/deals/search returns 500 on empty filter",
"body": "Calling POST /v1/deals/search with body {\"filter\":{}} gives a 500.",
"status": "NEW",
"source": "api",
"resolution": null,
"context": { "endpoint": "/v1/deals/search", "httpStatus": 500 },
"attachments": [],
"comments": [],
"createdAt": "2026-04-19T10:30:00.000Z",
"resolvedAt": null
}
}
Error response example
404 — ticket not found or not accessible to the key:
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Feedback not found"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP404 | CodeNOT_FOUND |
DescriptionThe ticket does not exist or is not accessible to the key |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header was not passed |
For the full list of common API errors, see Errors.
Known specifics
Which tickets a key sees. A key without the vibe:feedback scope receives only the tickets it sent itself. A key with the scope sees every ticket of its Bitrix24 account, and a management key sees all tickets.
A single response for "missing" and "someone else's". A non-existent ticket and a ticket not accessible to the key return the same 404 NOT_FOUND. The response code does not distinguish "does not exist" from "exists but belongs to someone else" — this protects against probing other people's tickets.
Attachments and comments come as arrays. Unlike the list, get returns attachments and comments inside the ticket object. For a new ticket both arrays are empty.