Driftsstatus: Normal drift.

Delivery of metadata from DBK

This API is intended for retrieving product metadata in bulk.

In this version, the API is not designed for high volumes of requests for individual products, for example through direct calls when product pages are displayed on a webshop. Misuse of the API may result in account suspension.

1. Overview

Purpose: Access product metadata from Bogportalen for integration with your systems.

Base URL (Production): TBA

Base URL (Sandbox): TBA

Formats: xml in onix format; charset=utf-8 (requests & responses). See Onix data format here

2) Authentication & Authorization

Auth method: User name + password

mTLS (optional/high-security clients): Supported

Headers

  • Idempotency-Key: <uuid> (required on POST/GET with side-effects)

3) Versioning & Lifecycle

Onix version: Onix 3.X

API URI versioning: /v1/…

Deprecation policy: 6 months minimum notice before removing fields/endpoints.

Change types:

  • Non-breaking: new fields (nullable), new endpoints.
  • Breaking: contract changes; only in new major version.

4) Environments & Data

Sandbox: Synthetic data; standalone auth, same functionality as production.

Production: Live data; standalone auth, same functionality as sandbox.

5) Pagination, Filtering, Sorting, Field Selection

Pagination: n/a.=>Use filters

Filtering: Query params

  • ean: 13 digit EAN numbers (eg.: 9788702152098)
  • publisher: DBK customer number (eg.: xxx). Please notice that publishers and expeditions can only see their own data!
  • updated-after: ISO 8601-date/timestring (eg.: 20250204T0930-0400)
  • thema-code: 2 digits or more (eg.: WB or WBHS. See theme codes here)
  • expedition: the expedition that handles the book. (Allowed values: DBK|DAF|Egen). Please notice that expeditions can only see their own data
  • bookstore-qualification: id from the bookstore qualification list. (See allowed values here)
  • publishing-date: Format YYYYMMDD eg: 20250901
  • product-availability: (Onix codelist 65 values)
  • market-publishing-status: (Onix codelist 68 values)
  • stock: (0|1) 0=no stock available, 1=stock available
  • cover-image-modified-time:  (basic ISO 8601 date-time-format: YYYYMMDD’T’HHMMSS eg.: 20250917T141530)

Sorting: n/a. Results will be sorted by TBA

6) Rate Limits & Quotas

Policy: e.g., 600 requests/minute per client in prod; 120/min in sandbox.

Headers:

  • X-RateLimit-Limit
  • X-RateLimit-Remaining
  • X-RateLimit-Reset

429 handling: Backoff with jitter; retry after X-RateLimit-Reset.

7) Status codes and errors

Status codes:

  • 2xx success
  • 4xx client error
  • 5xx server error

 

The list of error codes will be further extended when the sandbox version of the API is ready. 

 

Error body:

{

"error": {

"code": "invalid_parameter",

"message": "Unknown filter 'foo'.",

"details": [{"field": "foo", "issue": "unsupported"}]

},

"correlation_id": "b9c3e7c0-…"

8) Caching & Performance

Compression: gzip & br supported via Accept-Encoding.

9) Security

Transport: HTTPS only (TLS 1.2+).

Auditing: We log auth, rate-limit, and error events with correlation IDs.

10) SLs & Status

Uptime target: 99.9% monthly.

Maintenance windows: Announced 7 days ahead (non-critical).

Status page: Public status + historical incidents. · Support: FAQ/Support page on dbk.dk. Email + ticketing portal, business hours CET/CEST.

Spørgsmål til denne side?

Indsend dit spørgsmål i nedenstående formular, så vender vi tilbage hurtigst muligt.

Søg på dbk.dk: