Skip to content

Topics

A topic is a subject your organization knows about. See How Mereon is organized for the model.

Reading topics and the items under them needs the topic.read permission, which every role has except external. An external account gets 403, as it does in the app.

GET /v1/topics

Cursor-paginated, optionally filtered by category. Returns the latest state by default.

Parameter Type Notes
categorySlug string Restrict to one category.
cursor string Pagination cursor from a previous response.
limit number 1–100. Default 50.
includeHistory boolean Include archived and superseded topics. See Lifecycle.
filter string A stewardship worklist: no-owner, no-verification-interval, or verification-overdue. See below. Cannot be combined with includeHistory.
Terminal window
curl "https://api.mereon.ai/v1/topics?limit=50" \
-H "Authorization: Bearer $MEREON_TOKEN"
{
"data": [
{
"id": "top_9f2a...",
"name": "Expense approval",
"slug": "expense-approval",
"description": "How expenses are reviewed and approved.",
"categorySlug": "finance",
"status": "ACTIVE",
"supersededById": null,
"verification": {
"intervalDays": 90,
"lastVerifiedAt": "2026-07-01T00:00:00.000Z",
"nextVerificationAt": "2026-09-29T00:00:00.000Z"
},
"url": "https://mereon.ai/topics/expense-approval",
"createdAt": "2026-01-12T09:00:00.000Z",
"updatedAt": "2026-05-30T16:20:00.000Z"
}
],
"nextCursor": "eyJpZCI6Im..."
}

verification says how fresh the organization has said a topic is: the interval it is verified on, when it was last confirmed, and when it is next due. Each field is null until it has been set, so a topic nobody has put on a schedule carries null in all three. It does not say who confirmed it.

filter returns the topics that need a steward’s attention, using the same definitions as the topic list in the app.

Value Returns
no-owner Topics that no one is Responsible for. Only an assignment on the topic itself counts. An owner inherited from its space or category does not, and neither does a topic whose only owner is Accountable.
no-verification-interval Topics with no review cadence set.
verification-overdue Topics with a cadence whose next review date has passed.

Because no-owner looks only at Responsible owners, it can list more topics than the “no owner” count in maturity, which also accepts an Accountable owner. A worklist covers the latest state only, so filter with includeHistory=true answers 400.

GET /v1/topics/{id}

Topic detail: description, category, item summaries, and related topics.

Parameter Type Notes
includeHistory boolean Include archived and superseded records.
{
"id": "top_9f2a...",
"name": "Expense approval",
"slug": "expense-approval",
"description": "How expenses are reviewed and approved.",
"categorySlug": "finance",
"status": "ACTIVE",
"supersededById": null,
"verification": {
"intervalDays": 90,
"lastVerifiedAt": "2026-07-01T00:00:00.000Z",
"nextVerificationAt": "2026-09-29T00:00:00.000Z"
},
"url": "https://mereon.ai/topics/expense-approval",
"createdAt": "2026-01-12T09:00:00.000Z",
"updatedAt": "2026-05-30T16:20:00.000Z",
"category": { "slug": "finance", "title": "Finance" },
"items": [
{
"id": "itm_2c8b...",
"topicId": "top_9f2a...",
"type": "process",
"title": "Approve an expense over $500",
"status": "ACTIVE",
"supersededById": null,
"url": "https://mereon.ai/items/itm_2c8b"
}
],
"relatedTopics": [
{
"id": "top_5d1e...",
"name": "Corporate cards",
"slug": "corporate-cards",
"relationship": "related",
"direction": "outgoing",
"url": "https://mereon.ai/topics/corporate-cards"
}
]
}

GET /v1/topics/{id}/items

The processes, policies, and facts under a topic, returned as a nested tree (an item’s sub-steps appear in its children). See Items for the full item shape and evidence.

Parameter Type Notes
includeHistory boolean Include archived and superseded items.
Terminal window
curl "https://api.mereon.ai/v1/topics/top_9f2a/items" \
-H "Authorization: Bearer $MEREON_TOKEN"

Retiring a topic withdraws a subject the organization no longer follows. The videos and documents stay in the library. Lessons that were only about that topic close. Lessons that still teach something else stay open and cover one subject less. Required training aimed at the topic is cancelled.

These routes need topic:retire and permission to retire topics, which owners and admins have. Reading a topic stays on read. Retiring one item, while the topic continues, is item:retire. A topic you cannot read is 404.

GET /v1/topics/{id}/retirement/preview

What retiring this topic would withdraw. Writes nothing. learnersInProgressCount is how many people are part-way through a lesson this would close. Ask them whether they finish or stop before you retire it.

Terminal window
curl "https://api.mereon.ai/v1/topics/top_9f2a/retirement/preview" \
-H "Authorization: Bearer $MEREON_TOKEN"

GET /v1/topics/{id}/retirement

Retirements of this topic, newest first. A restored row has restoredAt set. cancelledObligationCount is required training the retirement cancelled and did not put back.

Terminal window
curl "https://api.mereon.ai/v1/topics/top_9f2a/retirement" \
-H "Authorization: Bearer $MEREON_TOKEN"

POST /v1/topics/{id}/retirement

Withdraws the topic. Leave inFlightAccess out and people part-way through a lesson this closes finish it. revoke stops those enrollments. Completed enrollments stay either way. reason is optional, up to 2,000 characters. Returns the retirement, 201.

Terminal window
curl -X POST "https://api.mereon.ai/v1/topics/top_9f2a/retirement" \
-H "Authorization: Bearer $MEREON_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "reason": "We no longer do this", "inFlightAccess": "keep" }'

DELETE /v1/topics/{id}/retirement

Brings a retired topic back, and the items that retirement archived, each to the status it held. Required training the retirement cancelled is not brought back. Returns the retirement that was restored, 200.

Terminal window
curl -X DELETE "https://api.mereon.ai/v1/topics/top_9f2a/retirement" \
-H "Authorization: Bearer $MEREON_TOKEN"
Status When
403 The token lacks topic:retire, or the caller may not retire topics.
404 The topic is missing, in another organization, unreadable, or not currently retired on a restore.
409 The topic is already retired, is not active, or cannot be restored because the resources that evidenced it have been deleted.
429 More than 10 calls a minute or 60 an hour on that route.