Bufdir Format Serializer
API Contract
REST
/api/v1/bufdir-serializer
3 endpoints
POST
/api/v1/bufdir-serializer/api/v1/bufdir-serializer/serialize
Serialize aggregated data + mappings into Bufdir-compliant payload
Public
Request Example
{
"aggregated_data": {
"org_id": "org_482",
"scope_id": "scope_region_07",
"date_range": {
"from": "2025-01-01",
"to": "2025-12-31"
},
"activity_type_breakdown": [
{
"type_id": "act_type_01",
"count": 842,
"hours": 6740
},
{
"type_id": "act_type_02",
"count": 405,
"hours": 3092.5
}
]
},
"mappings": [
{
"internal_type_id": "act_type_01",
"bufdir_category": "individual_mentoring"
},
{
"internal_type_id": "act_type_02",
"bufdir_category": "group_activity"
}
]
}
Response Example
{
"payload_version": "bufdir_2025_v2",
"is_valid": true,
"payload": {
"organisasjonsnummer": "912345678",
"rapporteringsperiode": "2025",
"aktiviteter": [
{
"kategori": "individual_mentoring",
"antall": 842,
"timer": 6740
},
{
"kategori": "group_activity",
"antall": 405,
"timer": 3092.5
}
]
},
"serialized_at": "2026-03-26T10:14:00Z"
}
POST
/api/v1/bufdir-serializer/api/v1/bufdir-serializer/validate
Validate a serialized payload against the Bufdir schema
Public
Request Example
{
"payload_version": "bufdir_2025_v2",
"payload": {
"organisasjonsnummer": "912345678",
"rapporteringsperiode": "2025",
"aktiviteter": [
{
"kategori": "individual_mentoring",
"antall": 842,
"timer": 6740
}
]
}
}
Response Example
{
"is_valid": true,
"payload_version": "bufdir_2025_v2",
"errors": [],
"warnings": [
"Field 'kontaktperson' is recommended but not present."
]
}
GET
/api/v1/bufdir-serializer/api/v1/bufdir-serializer/schema
Get the payload schema for a given Bufdir format version
Public
Request Example
{}
Response Example
{
"payload_version": "bufdir_2025_v2",
"required_fields": [
"organisasjonsnummer",
"rapporteringsperiode",
"aktiviteter"
],
"optional_fields": [
"kontaktperson",
"kommentarer"
],
"activity_categories": [
"individual_mentoring",
"group_activity",
"outdoor_recreation",
"skills_course"
],
"schema_updated_at": "2025-01-01T00:00:00Z"
}