> For the complete documentation index, see [llms.txt](https://docs.imerit.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.imerit.net/api/docs/issues.md).

# Issues

Issue tracking and reporting

## Get Issues

> Retrieves issues of a project. Results are always restricted to the caller's organization. Any Issue field can be used as a filter, not only the ones listed below; a value written as a JSON array, for example \`status=\["Open","Closed"]\`, matches any of its entries.

```json
{"openapi":"3.0.3","info":{"title":"Ango Hub API v2","version":"2.0.0"},"tags":[{"name":"Issues","description":"Issue tracking and reporting"}],"servers":[{"url":"https://imeritapi.ango.ai/v2","description":"EU Production Server"},{"url":"https://us-api.ango.ai/v2","description":"US Production Server"},{"url":"https://in-api.ango.ai/v2","description":"India Production Server"},{"url":"https://testapi.ango.ai/v2","description":"Test Server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"API key for authentication. Format - apikey YOUR_API_KEY"}},"schemas":{"IssueListResponse":{"type":"object","properties":{"status":{"type":"string"},"data":{"type":"object","properties":{"issue":{"type":"array","items":{"$ref":"#/components/schemas/Issue"}},"total":{"type":"integer","description":"Number of issues matching the filter, ignoring pagination"}}}}},"Issue":{"type":"object","properties":{"_id":{"type":"string"},"id":{"type":"string","description":"Same value as `_id`"},"content":{"type":"string"},"project":{"type":"string"},"organization":{"type":"string"},"asset":{"type":"string"},"labelTask":{"type":"string"},"status":{"type":"string","enum":["Open","Resolved","Closed"]},"createdBy":{"type":"string"},"assignee":{"type":"string"},"labeler":{"type":"string","description":"Assignee of the task at the time the issue was created"},"stage":{"type":"string","description":"Stage the task was in when the issue was created"},"batches":{"type":"array","items":{"type":"string"},"description":"Batch IDs inherited from the task"},"createdFromApi":{"type":"boolean","description":"True when the issue was created through this API"},"hasBeenSeen":{"type":"boolean"},"errorType":{"type":"string"},"errorCode":{"type":"string"},"severity":{"type":"string","enum":["High","Medium","Low"]},"severityLevel":{"type":"integer","description":"1 to 5. Values written through this API are validated, issues created elsewhere may carry other values."},"page":{"type":"integer","description":"Page index, sent for PDF and multi-document assets"},"pageEnd":{"type":"integer","description":"Last page or frame the issue spans"},"dataIndex":{"type":"integer","description":"Index into the asset `dataset` the issue points at"},"plane":{"type":"string"},"objectId":{"type":"string","description":"Annotation object the issue is attached to"},"schemaId":{"type":"string","description":"Category schema entry the issue is attached to"},"linkedObjectId":{"type":"string"},"position":{"type":"string"},"points":{"type":"array","items":{"type":"object"}},"contentMentions":{"type":"array","items":{"type":"object","properties":{"userEmail":{"type":"string"},"userName":{"type":"string"}}}},"comments":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string"},"id":{"type":"string","description":"Same value as `_id`"},"content":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"contentMentions":{"type":"array","items":{"type":"object","properties":{"userEmail":{"type":"string"},"userName":{"type":"string"}}}}}}},"errorCodes":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"name":{"type":"string"},"key":{"type":"string"}}}},"pctDetails":{"type":"object","description":"PCT-specific issue details containing positional metadata, severity,\nreference source, and optional marker information for navigating to\na point inside a 3D/2D scene.\n","properties":{"attribute":{"type":"string","nullable":true,"description":"Attribute ID from configuration."},"class":{"type":"string","nullable":true,"description":"Class ID from configuration."},"frame":{"type":"integer","description":"Starting frame number of the issue."},"endInputFrame":{"type":"integer","description":"Last frame where the issue persists."},"instance":{"type":"integer","description":"Class instance index."},"severity":{"type":"integer","enum":[2,3,4],"description":"Issue severity: 2=High, 3=Medium, 4=Low"},"referenceIndex":{"type":"integer","description":"-1 for 3D sensor, 0+ for 2D camera sensor index"},"marker":{"type":"object","description":"Marker for navigating to the issue location.","properties":{"type":{"type":"string","enum":["Marker 3D","Marker 2D"]},"value":{"type":"object","properties":{"geometry":{"type":"object","properties":{"position":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"rotation":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"boxSize":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}}}}}}}}}},"resolvedBy":{"type":"string"},"resolvedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"ErrorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["fail","error"]},"message":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Bad request - validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/issues":{"get":{"tags":["Issues"],"summary":"Get Issues","description":"Retrieves issues of a project. Results are always restricted to the caller's organization. Any Issue field can be used as a filter, not only the ones listed below; a value written as a JSON array, for example `status=[\"Open\",\"Closed\"]`, matches any of its entries.","operationId":"getIssues","parameters":[{"name":"project","in":"query","required":true,"schema":{"type":"string"},"description":"Project ID. Required; the request is authorized against this project and results are limited to it."},{"name":"page","in":"query","schema":{"type":"integer","minimum":1},"description":"Page number (1-indexed). Sets the page size to 10 when `limit` is absent."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1},"description":"Items per page. Not capped; without it and without `page` no limit is applied."},{"name":"status","in":"query","schema":{"type":"string","enum":["Open","Resolved","Closed"]},"description":"Filter by issue status"},{"name":"assignee","in":"query","schema":{"type":"string"},"description":"Filter by assignee email"},{"name":"createdBy","in":"query","schema":{"type":"string"},"description":"Filter by creator email"},{"name":"labelTask","in":"query","schema":{"type":"string"},"description":"Filter by task ID"},{"name":"filter","in":"query","schema":{"type":"string"},"description":"JSON object for operator based filtering, for example `{\"createdAt\":{\"$gt\":\"2026-01-01\"}}`. The plain query parameters above match on equality or, with a JSON array value, on any of its entries."},{"name":"sort","in":"query","schema":{"type":"string"},"description":"Comma separated field list, prefix a field with `-` for descending, for example `-createdAt`."},{"name":"populate","in":"query","schema":{"type":"string"},"description":"Relation to populate, for example `asset` or `labelTask`"},{"name":"fields","in":"query","schema":{"type":"string"},"description":"Comma separated field list. Prefix a field with `-` to exclude it."}],"responses":{"201":{"description":"Issues retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueListResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"}}}}}}
```

## Create Issue

> Creates a new issue for a task

```json
{"openapi":"3.0.3","info":{"title":"Ango Hub API v2","version":"2.0.0"},"tags":[{"name":"Issues","description":"Issue tracking and reporting"}],"servers":[{"url":"https://imeritapi.ango.ai/v2","description":"EU Production Server"},{"url":"https://us-api.ango.ai/v2","description":"US Production Server"},{"url":"https://in-api.ango.ai/v2","description":"India Production Server"},{"url":"https://testapi.ango.ai/v2","description":"Test Server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"API key for authentication. Format - apikey YOUR_API_KEY"}},"schemas":{"IssueCreateRequest":{"type":"object","description":"The issue inherits `project`, `asset`, `labeler`, `stage` and `batches` from the task, and the server sets `createdBy`, `organization` and `createdFromApi`; sending those in the body has no effect. Creating an issue notifies the task assignee and, when set, the issue assignee, skipping whichever of them is the caller.","required":["labelTask"],"properties":{"labelTask":{"type":"string","description":"Task ID to create issue for"},"content":{"type":"string"},"contentMentions":{"type":"array","items":{"type":"object","properties":{"userEmail":{"type":"string"},"userName":{"type":"string"}}}},"assignee":{"type":"string","description":"Email of the user the issue is assigned to. An unknown email returns 404."},"position":{"type":"string"},"points":{"type":"array","items":{"type":"object"}},"errorType":{"type":"string"},"errorCode":{"type":"string"},"errorCodes":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"name":{"type":"string"},"key":{"type":"string"}}}},"severity":{"type":"string","enum":["High","Medium","Low"]},"severityLevel":{"type":"integer","minimum":1,"maximum":5,"description":"A value outside 1 to 5, or a non-numeric one, returns 400."},"page":{"type":"integer","description":"Page index, sent for PDF and multi-document assets"},"pageEnd":{"type":"integer","description":"Last page or frame the issue spans"},"dataIndex":{"type":"integer","description":"Index into the asset `dataset` the issue points at"},"plane":{"type":"string"},"objectId":{"type":"string","description":"Annotation object the issue is attached to"},"schemaId":{"type":"string","description":"Category schema entry the issue is attached to"},"linkedObjectId":{"type":"string"},"pctDetails":{"type":"object","description":"PCT-specific issue details containing positional metadata, severity,\nreference source, and optional marker information for navigating to\na point inside a 3D/2D scene.\n","properties":{"attribute":{"type":"string","nullable":true,"description":"Attribute ID from configuration. Can be null or omitted if not assigned."},"class":{"type":"string","nullable":true,"description":"Class ID from configuration. Can be null or omitted if not available."},"frame":{"type":"integer","default":1,"description":"Starting frame number of the issue. Defaults to 1."},"endInputFrame":{"type":"integer","default":1,"description":"Last frame where the issue persists. Defaults to 1."},"instance":{"type":"integer","default":-1,"description":"Class instance index. Defaults to -1."},"severity":{"type":"integer","enum":[2,3,4],"description":"Issue severity: 2=High, 3=Medium, 4=Low"},"referenceIndex":{"type":"integer","default":-1,"description":"-1 for 3D sensor, 0+ for 2D camera sensor index"},"marker":{"type":"object","description":"Optional marker for navigating to the issue location.","properties":{"type":{"type":"string","enum":["Marker 3D","Marker 2D"]},"value":{"type":"object","properties":{"geometry":{"type":"object","properties":{"position":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"rotation":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"boxSize":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}}}}}}}}}}}},"IssueResponse":{"type":"object","properties":{"status":{"type":"string"},"data":{"type":"object","properties":{"issue":{"$ref":"#/components/schemas/Issue"}}}}},"Issue":{"type":"object","properties":{"_id":{"type":"string"},"id":{"type":"string","description":"Same value as `_id`"},"content":{"type":"string"},"project":{"type":"string"},"organization":{"type":"string"},"asset":{"type":"string"},"labelTask":{"type":"string"},"status":{"type":"string","enum":["Open","Resolved","Closed"]},"createdBy":{"type":"string"},"assignee":{"type":"string"},"labeler":{"type":"string","description":"Assignee of the task at the time the issue was created"},"stage":{"type":"string","description":"Stage the task was in when the issue was created"},"batches":{"type":"array","items":{"type":"string"},"description":"Batch IDs inherited from the task"},"createdFromApi":{"type":"boolean","description":"True when the issue was created through this API"},"hasBeenSeen":{"type":"boolean"},"errorType":{"type":"string"},"errorCode":{"type":"string"},"severity":{"type":"string","enum":["High","Medium","Low"]},"severityLevel":{"type":"integer","description":"1 to 5. Values written through this API are validated, issues created elsewhere may carry other values."},"page":{"type":"integer","description":"Page index, sent for PDF and multi-document assets"},"pageEnd":{"type":"integer","description":"Last page or frame the issue spans"},"dataIndex":{"type":"integer","description":"Index into the asset `dataset` the issue points at"},"plane":{"type":"string"},"objectId":{"type":"string","description":"Annotation object the issue is attached to"},"schemaId":{"type":"string","description":"Category schema entry the issue is attached to"},"linkedObjectId":{"type":"string"},"position":{"type":"string"},"points":{"type":"array","items":{"type":"object"}},"contentMentions":{"type":"array","items":{"type":"object","properties":{"userEmail":{"type":"string"},"userName":{"type":"string"}}}},"comments":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string"},"id":{"type":"string","description":"Same value as `_id`"},"content":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"contentMentions":{"type":"array","items":{"type":"object","properties":{"userEmail":{"type":"string"},"userName":{"type":"string"}}}}}}},"errorCodes":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"name":{"type":"string"},"key":{"type":"string"}}}},"pctDetails":{"type":"object","description":"PCT-specific issue details containing positional metadata, severity,\nreference source, and optional marker information for navigating to\na point inside a 3D/2D scene.\n","properties":{"attribute":{"type":"string","nullable":true,"description":"Attribute ID from configuration."},"class":{"type":"string","nullable":true,"description":"Class ID from configuration."},"frame":{"type":"integer","description":"Starting frame number of the issue."},"endInputFrame":{"type":"integer","description":"Last frame where the issue persists."},"instance":{"type":"integer","description":"Class instance index."},"severity":{"type":"integer","enum":[2,3,4],"description":"Issue severity: 2=High, 3=Medium, 4=Low"},"referenceIndex":{"type":"integer","description":"-1 for 3D sensor, 0+ for 2D camera sensor index"},"marker":{"type":"object","description":"Marker for navigating to the issue location.","properties":{"type":{"type":"string","enum":["Marker 3D","Marker 2D"]},"value":{"type":"object","properties":{"geometry":{"type":"object","properties":{"position":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"rotation":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"boxSize":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}}}}}}}}}},"resolvedBy":{"type":"string"},"resolvedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"ErrorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["fail","error"]},"message":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Bad request - validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"NotFoundError":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/issues":{"post":{"tags":["Issues"],"summary":"Create Issue","description":"Creates a new issue for a task","operationId":"createIssue","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueCreateRequest"}}}},"responses":{"201":{"description":"Issue created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}}}}
```

## Update Issue

> Updates an existing issue. All fields are optional - only provided fields will be updated.\
> \
> \*\*Updatable fields:\*\*\
> \- \`content\`: Update the issue description/content\
> \- \`status\`: Change status to "Open" or "Resolved"\
> \- \`pctDetails\`: Update PCT-specific details (for PCT issues)\
> \- \`errorCodes\`: Update error codes associated with the issue<br>

```json
{"openapi":"3.0.3","info":{"title":"Ango Hub API v2","version":"2.0.0"},"tags":[{"name":"Issues","description":"Issue tracking and reporting"}],"servers":[{"url":"https://imeritapi.ango.ai/v2","description":"EU Production Server"},{"url":"https://us-api.ango.ai/v2","description":"US Production Server"},{"url":"https://in-api.ango.ai/v2","description":"India Production Server"},{"url":"https://testapi.ango.ai/v2","description":"Test Server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"API key for authentication. Format - apikey YOUR_API_KEY"}},"schemas":{"IssueUpdateRequest":{"type":"object","description":"All fields are optional. Only `content`, `contentMentions`, `status`, `pctDetails` and `errorCodes` are applied, any other field in the body is ignored, and `updatedBy` and `updatedAt` are stamped by the server.","properties":{"content":{"type":"string","description":"Updated issue content/description"},"contentMentions":{"type":"array","description":"Users mentioned in the content. Applied only when `content` is sent in the same request, and it replaces the existing list, so send the full list with every content update.","items":{"type":"object","properties":{"userEmail":{"type":"string"},"userName":{"type":"string"}}}},"status":{"type":"string","enum":["Open","Resolved"],"description":"Only these two values are accepted, anything else returns 400. `Closed` can be filtered on but not set here. Moving to `Resolved` stamps `resolvedBy` and `resolvedAt`."},"pctDetails":{"type":"object","description":"PCT-specific issue details containing positional metadata, severity,\nreference source, and optional marker information for navigating to\na point inside a 3D/2D scene.\n","properties":{"attribute":{"type":"string","nullable":true,"description":"Attribute ID from configuration. Can be null or omitted if not assigned."},"class":{"type":"string","nullable":true,"description":"Class ID from configuration. Can be null or omitted if not available."},"frame":{"type":"integer","default":1,"description":"Starting frame number of the issue. Defaults to 1."},"endInputFrame":{"type":"integer","default":1,"description":"Last frame where the issue persists. Defaults to 1."},"instance":{"type":"integer","default":-1,"description":"Class instance index. Defaults to -1."},"severity":{"type":"integer","enum":[2,3,4],"description":"Issue severity: 2=High, 3=Medium, 4=Low"},"referenceIndex":{"type":"integer","default":-1,"description":"-1 for 3D sensor, 0+ for 2D camera sensor index"},"marker":{"type":"object","description":"Optional marker for navigating to the issue location.","properties":{"type":{"type":"string","enum":["Marker 3D","Marker 2D"]},"value":{"type":"object","properties":{"geometry":{"type":"object","properties":{"position":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"rotation":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"boxSize":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}}}}}}}}}},"errorCodes":{"type":"array","description":"Error codes associated with the issue","items":{"type":"object","properties":{"category":{"type":"string"},"name":{"type":"string"},"key":{"type":"string"}}}}}},"IssueResponse":{"type":"object","properties":{"status":{"type":"string"},"data":{"type":"object","properties":{"issue":{"$ref":"#/components/schemas/Issue"}}}}},"Issue":{"type":"object","properties":{"_id":{"type":"string"},"id":{"type":"string","description":"Same value as `_id`"},"content":{"type":"string"},"project":{"type":"string"},"organization":{"type":"string"},"asset":{"type":"string"},"labelTask":{"type":"string"},"status":{"type":"string","enum":["Open","Resolved","Closed"]},"createdBy":{"type":"string"},"assignee":{"type":"string"},"labeler":{"type":"string","description":"Assignee of the task at the time the issue was created"},"stage":{"type":"string","description":"Stage the task was in when the issue was created"},"batches":{"type":"array","items":{"type":"string"},"description":"Batch IDs inherited from the task"},"createdFromApi":{"type":"boolean","description":"True when the issue was created through this API"},"hasBeenSeen":{"type":"boolean"},"errorType":{"type":"string"},"errorCode":{"type":"string"},"severity":{"type":"string","enum":["High","Medium","Low"]},"severityLevel":{"type":"integer","description":"1 to 5. Values written through this API are validated, issues created elsewhere may carry other values."},"page":{"type":"integer","description":"Page index, sent for PDF and multi-document assets"},"pageEnd":{"type":"integer","description":"Last page or frame the issue spans"},"dataIndex":{"type":"integer","description":"Index into the asset `dataset` the issue points at"},"plane":{"type":"string"},"objectId":{"type":"string","description":"Annotation object the issue is attached to"},"schemaId":{"type":"string","description":"Category schema entry the issue is attached to"},"linkedObjectId":{"type":"string"},"position":{"type":"string"},"points":{"type":"array","items":{"type":"object"}},"contentMentions":{"type":"array","items":{"type":"object","properties":{"userEmail":{"type":"string"},"userName":{"type":"string"}}}},"comments":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string"},"id":{"type":"string","description":"Same value as `_id`"},"content":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"contentMentions":{"type":"array","items":{"type":"object","properties":{"userEmail":{"type":"string"},"userName":{"type":"string"}}}}}}},"errorCodes":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"name":{"type":"string"},"key":{"type":"string"}}}},"pctDetails":{"type":"object","description":"PCT-specific issue details containing positional metadata, severity,\nreference source, and optional marker information for navigating to\na point inside a 3D/2D scene.\n","properties":{"attribute":{"type":"string","nullable":true,"description":"Attribute ID from configuration."},"class":{"type":"string","nullable":true,"description":"Class ID from configuration."},"frame":{"type":"integer","description":"Starting frame number of the issue."},"endInputFrame":{"type":"integer","description":"Last frame where the issue persists."},"instance":{"type":"integer","description":"Class instance index."},"severity":{"type":"integer","enum":[2,3,4],"description":"Issue severity: 2=High, 3=Medium, 4=Low"},"referenceIndex":{"type":"integer","description":"-1 for 3D sensor, 0+ for 2D camera sensor index"},"marker":{"type":"object","description":"Marker for navigating to the issue location.","properties":{"type":{"type":"string","enum":["Marker 3D","Marker 2D"]},"value":{"type":"object","properties":{"geometry":{"type":"object","properties":{"position":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"rotation":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"boxSize":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}}}}}}}}}},"resolvedBy":{"type":"string"},"resolvedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"ErrorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["fail","error"]},"message":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Bad request - validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"NotFoundError":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/issues/{issueId}":{"post":{"tags":["Issues"],"summary":"Update Issue","description":"Updates an existing issue. All fields are optional - only provided fields will be updated.\n\n**Updatable fields:**\n- `content`: Update the issue description/content\n- `status`: Change status to \"Open\" or \"Resolved\"\n- `pctDetails`: Update PCT-specific details (for PCT issues)\n- `errorCodes`: Update error codes associated with the issue\n","operationId":"updateIssue","parameters":[{"name":"issueId","in":"path","required":true,"schema":{"type":"string"},"description":"Issue ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueUpdateRequest"}}}},"responses":{"201":{"description":"Issue updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}}}}
```

## Delete Issue

> Soft deletes the issue. It stops appearing in \`GET /issues\`, and the task's open issue count drops by one when the issue was still \`Open\`. The response payload is the fixed string \`Done\`, not an issue object.

```json
{"openapi":"3.0.3","info":{"title":"Ango Hub API v2","version":"2.0.0"},"tags":[{"name":"Issues","description":"Issue tracking and reporting"}],"servers":[{"url":"https://imeritapi.ango.ai/v2","description":"EU Production Server"},{"url":"https://us-api.ango.ai/v2","description":"US Production Server"},{"url":"https://in-api.ango.ai/v2","description":"India Production Server"},{"url":"https://testapi.ango.ai/v2","description":"Test Server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"API key for authentication. Format - apikey YOUR_API_KEY"}},"schemas":{"IssueDeleteResponse":{"type":"object","properties":{"status":{"type":"string"},"data":{"type":"object","properties":{"issue":{"type":"string","description":"Fixed confirmation string, not an issue object"}}}}},"ErrorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["fail","error"]},"message":{"type":"string"}}}},"responses":{"NotFoundError":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/issues/{issueId}":{"delete":{"tags":["Issues"],"summary":"Delete Issue","description":"Soft deletes the issue. It stops appearing in `GET /issues`, and the task's open issue count drops by one when the issue was still `Open`. The response payload is the fixed string `Done`, not an issue object.","operationId":"deleteIssue","parameters":[{"name":"issueId","in":"path","required":true,"schema":{"type":"string"},"description":"Issue ID"}],"responses":{"201":{"description":"Issue deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueDeleteResponse"}}}},"404":{"$ref":"#/components/responses/NotFoundError"}}}}}}
```

## Add Comment to Issue

> Adds a new comment to an existing issue.\
> \
> Comments are used for discussion and collaboration on issues.\
> Each comment records the author and timestamp automatically.<br>

```json
{"openapi":"3.0.3","info":{"title":"Ango Hub API v2","version":"2.0.0"},"tags":[{"name":"Issues","description":"Issue tracking and reporting"}],"servers":[{"url":"https://imeritapi.ango.ai/v2","description":"EU Production Server"},{"url":"https://us-api.ango.ai/v2","description":"US Production Server"},{"url":"https://in-api.ango.ai/v2","description":"India Production Server"},{"url":"https://testapi.ango.ai/v2","description":"Test Server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","description":"API key for authentication. Format - apikey YOUR_API_KEY"}},"schemas":{"IssueCommentRequest":{"type":"object","required":["content"],"properties":{"content":{"type":"string","description":"The comment text content. This route runs no server-side validation, so the requirement is a client contract only."},"contentMentions":{"type":"array","description":"Users mentioned in the comment","items":{"type":"object","properties":{"userEmail":{"type":"string"},"userName":{"type":"string"}}}}}},"IssueResponse":{"type":"object","properties":{"status":{"type":"string"},"data":{"type":"object","properties":{"issue":{"$ref":"#/components/schemas/Issue"}}}}},"Issue":{"type":"object","properties":{"_id":{"type":"string"},"id":{"type":"string","description":"Same value as `_id`"},"content":{"type":"string"},"project":{"type":"string"},"organization":{"type":"string"},"asset":{"type":"string"},"labelTask":{"type":"string"},"status":{"type":"string","enum":["Open","Resolved","Closed"]},"createdBy":{"type":"string"},"assignee":{"type":"string"},"labeler":{"type":"string","description":"Assignee of the task at the time the issue was created"},"stage":{"type":"string","description":"Stage the task was in when the issue was created"},"batches":{"type":"array","items":{"type":"string"},"description":"Batch IDs inherited from the task"},"createdFromApi":{"type":"boolean","description":"True when the issue was created through this API"},"hasBeenSeen":{"type":"boolean"},"errorType":{"type":"string"},"errorCode":{"type":"string"},"severity":{"type":"string","enum":["High","Medium","Low"]},"severityLevel":{"type":"integer","description":"1 to 5. Values written through this API are validated, issues created elsewhere may carry other values."},"page":{"type":"integer","description":"Page index, sent for PDF and multi-document assets"},"pageEnd":{"type":"integer","description":"Last page or frame the issue spans"},"dataIndex":{"type":"integer","description":"Index into the asset `dataset` the issue points at"},"plane":{"type":"string"},"objectId":{"type":"string","description":"Annotation object the issue is attached to"},"schemaId":{"type":"string","description":"Category schema entry the issue is attached to"},"linkedObjectId":{"type":"string"},"position":{"type":"string"},"points":{"type":"array","items":{"type":"object"}},"contentMentions":{"type":"array","items":{"type":"object","properties":{"userEmail":{"type":"string"},"userName":{"type":"string"}}}},"comments":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string"},"id":{"type":"string","description":"Same value as `_id`"},"content":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"contentMentions":{"type":"array","items":{"type":"object","properties":{"userEmail":{"type":"string"},"userName":{"type":"string"}}}}}}},"errorCodes":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"name":{"type":"string"},"key":{"type":"string"}}}},"pctDetails":{"type":"object","description":"PCT-specific issue details containing positional metadata, severity,\nreference source, and optional marker information for navigating to\na point inside a 3D/2D scene.\n","properties":{"attribute":{"type":"string","nullable":true,"description":"Attribute ID from configuration."},"class":{"type":"string","nullable":true,"description":"Class ID from configuration."},"frame":{"type":"integer","description":"Starting frame number of the issue."},"endInputFrame":{"type":"integer","description":"Last frame where the issue persists."},"instance":{"type":"integer","description":"Class instance index."},"severity":{"type":"integer","enum":[2,3,4],"description":"Issue severity: 2=High, 3=Medium, 4=Low"},"referenceIndex":{"type":"integer","description":"-1 for 3D sensor, 0+ for 2D camera sensor index"},"marker":{"type":"object","description":"Marker for navigating to the issue location.","properties":{"type":{"type":"string","enum":["Marker 3D","Marker 2D"]},"value":{"type":"object","properties":{"geometry":{"type":"object","properties":{"position":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"rotation":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}},"boxSize":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}}}}}}}}}}},"resolvedBy":{"type":"string"},"resolvedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"ErrorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["fail","error"]},"message":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Bad request - validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"NotFoundError":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/issues/{issueId}/comment":{"post":{"tags":["Issues"],"summary":"Add Comment to Issue","description":"Adds a new comment to an existing issue.\n\nComments are used for discussion and collaboration on issues.\nEach comment records the author and timestamp automatically.\n","operationId":"addCommentToIssue","parameters":[{"name":"issueId","in":"path","required":true,"schema":{"type":"string"},"description":"Issue ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueCommentRequest"}}}},"responses":{"201":{"description":"Comment added successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.imerit.net/api/docs/issues.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
