Skip to content

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.

GET /v1/issues

Most recent first, cursor-paginated, scoped to issues whose targets you can see.

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.
Terminal window
curl "https://api.mereon.ai/v1/issues?status=OPEN&severity=HIGH" \
-H "Authorization: Bearer $MEREON_TOKEN"
{
"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
}
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 /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.

Terminal window
curl "https://api.mereon.ai/v1/issues/iss_3d81" \
-H "Authorization: Bearer $MEREON_TOKEN"
{
"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.