API Reference
All endpoints require the X-API-KEY header, with the exception of the health check. See Authentication.
GET /api/v1/treatmentGroup
Returns treatment group data.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
sinceVersion |
long |
No | If provided, returns only items changed since this version. If omitted, returns all active items. |
Response
{
"currentVersion": 5,
"items": [
{
"data": { ... },
"version": 5,
"lastChanged": "2025-04-10T08:30:00Z",
"isDeleted": false
}
]
}
Without sinceVersion: Returns all non-deleted items. isDeleted is always false.
With sinceVersion: Returns items with version > N, including deleted items. isDeleted may be true for items that were removed from the source system.
Example
# Get all
curl -H "X-API-KEY: key" \
https://api.example.com/api/v1/treatmentGroup
# Get changes since version 3
curl -H "X-API-KEY: key" \
https://api.example.com/api/v1/treatmentGroup?sinceVersion=3
GET /api/v1/treatmentGroup/
Returns a treatment group.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string |
Yes | Returns an active reimbursement group with matching id. |
history |
bool |
No | Default false. If set to true it returns all versions of a treatment group, including isDeleted = true. |
Response
{
"data": {
"id": "...",
"name": "...",
"description": "...",
"diseaseGroup": "...",
"jurisdictions": [ { "system": "...", "code": "100022", "display": "Helse Nord RHF" } ],
"validityPeriod": { "start": "...", "end": "..." },
"reviewDate": "...",
"indications": [ { "coding": [ {"system": "...", "code": "C500","display": "..."}], "text": null } ],
"treatmentAlternatives": [
{
"rank": 1,
"treatmentId": "...",
"name": "Atezolizumab (Tecentriq)",
"description": "...",
"products": [
{
"reference": null,
"type": "FEST/LegemiddelPakning",
"identifier": {
"system": "FEST/Varenummer",
"value": "448992"
},
"display": null
}
]
}
]
},
"version": 1,
"lastChanged": "2026-06-23T09:17:13.113Z",
"isDeleted": false
}
GET /api/v1/treatmentGroup/filter
Returns treatment groups.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string |
Yes | Returns active treatment group that name. |
diseaseGroup |
string |
Yes | Returns active treatment groups that contains the disease group. |
jurisdiction |
string |
Yes | Returns active treatment groups that contains the jurisdiction code. |
indication |
string |
Yes | Returns active treatment groups that contains the indication code. |
vareNr |
string |
Yes | Returns active treatment groups that contains the FEST/Varenummer. |
effectiveDate |
string YYYY-MM-DD |
Yes | Returns treatment groups that is active on the given date. |
Response
{
"currentVersion": 5,
"items": [
{
"data": { ... },
"version": 5,
"lastChanged": "2025-04-10T08:30:00Z",
"isDeleted": false
}
]
}
Example
# Filter on indication code
curl -H "X-API-KEY: key" \
https://api.example.com/api/v1/treatmentGroup/filter?indication=G35
GET /api/v1/reimbursementGroup
Returns reimbursement group data (legal basis, indications, covered products).
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
sinceVersion |
long |
No | If provided, returns only items changed since this version. If omitted, returns all active items. |
Response
{
"currentVersion": 5,
"items": [
{
"data": {
"id": "...",
"legalBasis": { "coding": [ { "system": "...", "code": "950", "display": "H-resept" } ] },
"indications": [ { "coding": [ { "system": "...", "code": "G35", "display": "Multiple sclerosis" } ] } ],
"products": [
{
"reference": null,
"type": "FEST/LegemiddelPakning",
"identifier": { "system": "FEST/Varenummer", "value": "166028" },
"display": null
}
]
},
"version": 5,
"lastChanged": "2025-04-10T08:30:00Z",
"isDeleted": false
}
]
}
Behavior is identical to the treatmentGroup endpoint. The products array is empty if upstream provides no article number for the authorization.
Example
# Get all
curl -H "X-API-KEY: key" \
https://api.example.com/api/v1/reimbursementGroup
# Get changes since version 3
curl -H "X-API-KEY: key" \
https://api.example.com/api/v1/reimbursementGroup?sinceVersion=3
GET /api/v1/reimbursementGroup/
Returns a reimbursement group (legal basis, indications, covered products).
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string |
Yes | Returns an active reimbursement group with matching id. |
Response
{
"data": {
"id": "...",
"legalBasis": { "coding": [ { "system": "...", "code": "950", "display": "H-resept" } ] },
"indications": [ { "coding": [ { "system": "...", "code": "G35", "display": "Multiple sclerosis" } ] } ],
"products": [
{
"reference": null,
"type": "FEST/LegemiddelPakning",
"identifier": { "system": "FEST/Varenummer", "value": "166028" },
"display": null
}
]
},
"version": 5,
"lastChanged": "2025-04-10T08:30:00Z",
"isDeleted": false
}
GET /api/v1/reimbursementGroup/filter
Returns reimbursement groups (legal basis, indications, covered products).
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
indication |
string |
Yes | Returns active reimbursement groups that contains the indication code. |
Response
{
"currentVersion": 5,
"items": [
{
"data": {
"id": "...",
"legalBasis": { "coding": [ { "system": "...", "code": "950", "display": "H-resept" } ] },
"indications": [ { "coding": [ { "system": "...", "code": "G35", "display": "Multiple sclerosis" } ] } ],
"products": [
{
"reference": null,
"type": "FEST/LegemiddelPakning",
"identifier": { "system": "FEST/Varenummer", "value": "166028" },
"display": null
}
]
},
"version": 5,
"lastChanged": "2025-04-10T08:30:00Z",
"isDeleted": false
}
]
}
Example
# Filter on indication code
curl -H "X-API-KEY: key" \
https://api.example.com/api/v1/reimbursementGroup/filter?indication=G35
Response Envelope
All endpoints return data in the same envelope:
{
currentVersion: number; // The server's current data version
items: Array<{
data: T; // The actual data object
version: number; // Version when this item last changed
lastChanged: string; // ISO-8601 timestamp of last change
isDeleted: boolean; // Whether this item has been removed
}>;
}
GET /api/internal/health
Returns the health status of the API and its dependencies. This endpoint does not require authentication and is intended for load balancer and Kubernetes liveness/readiness probes.
Response
{
"status": "healthy",
"timestamp": "2025-04-10T08:30:00Z",
"components": {
"mongodb": "healthy"
}
}
When a dependency is unhealthy:
{
"status": "unhealthy",
"timestamp": "2025-04-10T08:30:00Z",
"components": {
"mongodb": {
"status": "unhealthy",
"error": "No suitable servers found"
}
}
}
Status Codes
| Code | Meaning |
|---|---|
200 OK |
All dependencies are healthy |
503 ServiceUnavailable |
One or more dependencies are unhealthy |
Example
curl http://localhost:5069/api/internal/health
HTTP Status Codes
| Code | Meaning |
|---|---|
200 OK |
Success |
400 Bad Request |
Missing or invalid parameter |
401 Unauthorized |
Missing or invalid API key |
404 Not found |
Data not found in DB |
500 Internal Server Error |
Server error |
503 ServiceUnavailable |
Health check detected unhealthy dependency |
Rate Limiting
There are currently no rate limits enforced. Please be reasonable with request frequency — the data only changes once per day (after the nightly sync).