REST /api/v1/csv-generation 2 endpoints
POST /api/v1/csv-generation/api/v1/csv-generation/generate

Generate a CSV export from aggregated data

Public

Request Example

{
  "payload": {
    "org_id": "org_482",
    "scope_id": "scope_region_07",
    "scope_level": "region",
    "date_range": {
      "from": "2025-01-01",
      "to": "2025-12-31"
    },
    "activity_rows": [
      {
        "bufdir_category": "individual_mentoring",
        "count": 842,
        "hours": 6740
      },
      {
        "bufdir_category": "group_activity",
        "count": 405,
        "hours": 3092.5
      }
    ]
  },
  "metadata": {
    "org_name": "Rogaland Røde Kors",
    "period_label": "Årsrapport 2025"
  }
}

Response Example

{
  "report_id": "rpt_csv_20260326_001",
  "filename": "bufdir_export_rogaland_2025.csv",
  "size_bytes": 4096,
  "mime_type": "text/csv",
  "download_url": "https://storage.example.no/exports/org_482/rpt_csv_20260326_001.csv?token=abc456",
  "row_count": 14,
  "headers": [
    "kategori",
    "antall_aktiviteter",
    "antall_timer"
  ],
  "generated_at": "2026-03-26T10:23:00Z"
}
GET /api/v1/csv-generation/api/v1/csv-generation/headers

Get expected CSV column headers for Bufdir export format

Public

Request Example

{}

Response Example

{
  "headers": [
    "kategori",
    "underkategori",
    "antall_aktiviteter",
    "antall_timer",
    "antall_mentorer",
    "antall_deltakere"
  ],
  "format_version": "bufdir_2025_v2"
}

Additional Metadata

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