← Back

API

REST · base path /api/v1 · all requests require an API key.

Authentication

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.

Endpoints

GET/api/v1/categories

Full category tree.

curl https://ipmerc.com/api/v1/categories \
  -H "Authorization: Bearer ipmerc_..."
GET/api/v1/entries

Paginated 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_..."
GET/api/v1/entries/:id

One entry by id.

curl https://ipmerc.com/api/v1/entries/<uuid> \
  -H "Authorization: Bearer ipmerc_..."
GET/api/v1/search

Keyword 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_..."

Response shape

{
  "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 }
}

Errors