Issues
As your knowledge base grows, Mereon flags issues: conflicts, duplicates, gaps, and stale or misclassified knowledge. This endpoint exposes them so a tool or dashboard can surface what needs attention.
List issues
Section titled “List issues”GET /v1/issues
Most recent first, cursor-paginated, scoped to issues whose targets you can see.
Query parameters
Section titled “Query parameters”| Parameter | Type | Notes |
|---|---|---|
status |
string | OPEN, IN_PROGRESS, RESOLVED, or DISMISSED. |
type |
string | CONFLICT, DUPLICATE, MISCLASSIFICATION, STALE, CONTENT_GAP, STRUCTURE_GAP, or OTHER. |
severity |
string | CRITICAL, HIGH, MEDIUM, or LOW. |
assignedToMe |
boolean | Only issues assigned to the connected user, either directly or through a role they currently hold. |
cursor |
string | Pagination cursor from a previous response. |
limit |
number | 1–100. Default 50. |
Request
Section titled “Request”curl "https://api.mereon.ai/v1/issues?status=OPEN&severity=HIGH" \ -H "Authorization: Bearer $MEREON_TOKEN"Response
Section titled “Response”{ "data": [ { "id": "iss_4f9c...", "type": "CONFLICT", "severity": "HIGH", "status": "OPEN", "title": "Two documents disagree on the expense approval threshold", "description": "The Finance Handbook says $500; the Travel Policy says $750.", "assignedToName": "Alex Doe", "assignedToRoleName": null, "raisedByName": null, "targets": [ { "targetType": "TOPIC", "targetId": "top_9f2a...", "title": "Expense approval" } ], "createdAt": "2026-06-01T09:00:00.000Z", "resolvedAt": null } ], "nextCursor": null}Fields
Section titled “Fields”| Field | Type | Notes |
|---|---|---|
type |
string | The kind of issue (see the parameter table). |
severity |
string | CRITICAL, HIGH, MEDIUM, or LOW. |
status |
string | OPEN, IN_PROGRESS, RESOLVED, or DISMISSED. |
title |
string | Short summary of the issue. |
description |
string | null | Longer explanation, when present. |
assignedToName |
string | null | Assigned user’s display name, when assigned to a person. |
assignedToRoleName |
string | null | Assigned role’s name, when assigned to a role. |
raisedByName |
string | null | Who raised it (manual issues only). |
targets |
object[] | The entities the issue concerns, each with targetType, targetId, and title. |
resolvedAt |
string | null | When it was resolved, or null if still open. |
Get an issue
Section titled “Get an issue”GET /v1/issues/{id}
One issue in full: the list fields, plus each target’s affected content and how the issue was resolved. That extra detail is what lets a conflict or duplicate be explained rather than only named.
Request
Section titled “Request”curl "https://api.mereon.ai/v1/issues/iss_3d81" \ -H "Authorization: Bearer $MEREON_TOKEN"Response
Section titled “Response”{ "id": "iss_3d81...", "type": "CONFLICT", "severity": "HIGH", "status": "RESOLVED", "title": "Two different torque values for the same fastener", "description": "One manual says 50 Nm, a later bulletin says 65 Nm.", "assignedToName": null, "assignedToRoleName": "Maintenance Lead", "raisedByName": null, "targets": [ { "targetType": "ITEM", "targetId": "itm_5c02...", "title": "Torque the wheel fasteners to 50 Nm", "blockType": "SOP_STEP", "body": "Torque the wheel fasteners to 50 Nm in a star pattern.", "handled": true } ], "resolution": { "strategy": "supersede" }, "resolvedAt": "2026-07-30T14:05:00.000Z"}Each target carries the list fields (targetType, targetId, title) plus:
| Field | Type | Notes |
|---|---|---|
body |
string | null | The item’s own text, for an ITEM target. This is the wording the conflict or duplicate is about, which is what makes the issue explainable rather than merely named. null for other target types. |
blockType |
string | null | The kind of item, for an ITEM target — for example SOP_STEP or DEFINITION. An open set: new kinds can appear without a new API version. null otherwise. |
handled |
boolean | Whether this particular target has been dealt with. An issue can be resolved for one target and still open against another. |
resolution |
object | null | How it was resolved, as a strategy name. null while the issue is still open; resolvedAt carries when. |