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

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}