MDMbox Docs

API reference

The full OpenAPI specification is available at /api/openapi.json. The interactive Swagger UI is at /api/docs.

Infrastructure

MethodPathDescription
GET/healthzLiveness check
GET/readyzReadiness check (database and FHIR engine)
GET/api/docsSwagger UI
GET/api/openapi.jsonOpenAPI specification

Matching models

MethodPathDescription
GET/api/modelsList all models (optional ?resource=Patient)
POST/api/modelsCreate a model
GET/api/models/:idGet model by ID
PUT/api/models/:idUpdate model
DELETE/api/models/:idDelete model

Both MatchingModel and BulkMatchingModel are managed through this endpoint. The resourceType field in the request body determines the type.

FHIR operations

$match

MethodPathDescription
POST/api/fhir/:resource/$matchMatch a resource (FHIR Parameters body)
POST/api/fhir/:resource/:id/$matchMatch existing resource by ID

See Find duplicates: $match.

$merge

MethodPathDescription
POST/api/$mergeExecute or preview a merge

See Merge operation.

$referencing

MethodPathDescription
POST/api/fhir/:resource/:id/$referencingFind resources referencing a given resource

See Referencing operation.

Bulk matching

All bulk match endpoints are scoped to a BulkMatchingModel by ID.

MethodPathDescription
POST/api/bulk-match/:model-id/preparePrepare flat table (?force=true to recreate)
GET/api/bulk-match/:model-id/statusGet flat table preparation status
POST/api/bulk-match/:model-id/startStart bulk match job (body: {batchSize, workersCount})
POST/api/bulk-match/:model-id/stopStop job (?force=true for immediate cancellation)
POST/api/bulk-match/:model-id/continueResume a stopped job
POST/api/bulk-match/:model-id/archiveArchive a completed or stopped job
GET/api/bulk-match/:model-id/download/:job-idDownload results as CSV

See Bulk matching.

Admin UI

The admin interface is available at /admin. It provides:

  • /admin — model management (create, edit, delete MatchingModel and BulkMatchingModel)
  • /admin/bulk-match — bulk match pipeline (prepare, start, monitor, download, stop)

The Admin UI uses server-sent events for real-time updates. No separate frontend deployment is required.

Last updated: