GET
/api/v1/categoriesFull category tree.
curl https://ipmerc.com/api/v1/categories \ -H "Authorization: Bearer ipmerc_..."
REST · base path /api/v1 · all requests require an API key.
Every request must include an Authorization: Bearer ipmerc_… header. API keys are issued from the admin console. The raw value is shown once at creation and only the hash is stored; revoked keys return 401.
/api/v1/categoriesFull category tree.
curl https://ipmerc.com/api/v1/categories \ -H "Authorization: Bearer ipmerc_..."
/api/v1/entriesPaginated list of entries. Query params: category, type, lang, limit, offset.
curl "https://ipmerc.com/api/v1/entries?category=ipmerc&limit=10" \ -H "Authorization: Bearer ipmerc_..."
/api/v1/entries/:idOne entry by id.
curl https://ipmerc.com/api/v1/entries/<uuid> \ -H "Authorization: Bearer ipmerc_..."
/api/v1/searchKeyword search across title, questions, keywords, body. Query params: q (required), lang, limit.
curl "https://ipmerc.com/api/v1/search?q=cold+call" \ -H "Authorization: Bearer ipmerc_..."
{
"data": [
{
"id": "uuid",
"type": "answer" | "drill",
"title": "string",
"questions": ["..."],
"keywords": ["..."],
"body": "markdown (answer) | JSON-encoded { dialog, quiz } (drill)",
"language": "nl" | "en",
"source": "academy" | "partnerbook" | "external" | "ipmerc",
"category": { "id": "uuid", "slug": "...", "nameNl": "...", "nameEn": "..." },
"version": 1,
"createdAt": "ISO-8601",
"updatedAt": "ISO-8601"
}
],
"meta": { "total": 170, "limit": 50, "offset": 0, "returned": 50 }
}401 · missing or revoked API key400 · invalid query parameters (Zod details under detail)404 · unknown id or category slug500 · internal error (logged on server)