REST /api/v1/activities 7 endpoints
GET /api/v1/activities/api/v1/activities

List all activities across chapters

Public

Response Example

{
  "data": [
    {
      "activity_id": "act-4411",
      "contact_id": "contact-8821",
      "chapter_id": "chapter-oslo",
      "activity_type": "volunteer_hours",
      "submitted_at": "2026-03-25T10:00:00Z",
      "hours": 4,
      "description": "Community garden cleanup"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 312
  }
}
GET /api/v1/activities/api/v1/activities/:id

Get a specific activity by ID

Public

Response Example

{
  "activity_id": "act-4411",
  "contact_id": "contact-8821",
  "chapter_id": "chapter-oslo",
  "activity_type": "volunteer_hours",
  "submitted_at": "2026-03-25T10:00:00Z",
  "hours": 4,
  "description": "Community garden cleanup"
}
POST /api/v1/activities/api/v1/activities

Create a new activity record

Public

Request Example

{
  "contact_id": "contact-8821",
  "chapter_id": "chapter-bergen",
  "activity_type": "volunteer_hours",
  "submitted_at": "2026-03-26T11:15:00Z",
  "hours": 3,
  "description": "Library book sorting"
}

Response Example

{
  "activity_id": "act-4500",
  "contact_id": "contact-8821",
  "chapter_id": "chapter-bergen",
  "activity_type": "volunteer_hours",
  "submitted_at": "2026-03-26T11:15:00Z",
  "hours": 3,
  "description": "Library book sorting",
  "created_at": "2026-03-26T11:15:00Z"
}
PUT /api/v1/activities/api/v1/activities/:id

Update an activity record

Public

Request Example

{
  "hours": 5,
  "description": "Library book sorting and cataloguing"
}

Response Example

{
  "activity_id": "act-4500",
  "contact_id": "contact-8821",
  "chapter_id": "chapter-bergen",
  "activity_type": "volunteer_hours",
  "hours": 5,
  "description": "Library book sorting and cataloguing",
  "updated_at": "2026-03-26T14:00:00Z"
}
DELETE /api/v1/activities/api/v1/activities/:id

Delete an activity record

Public

Response Example

{
  "deleted": true,
  "activity_id": "act-4500"
}
GET /api/v1/activities/api/v1/activities/contact/:contactId/across-chapters

Fetch all activities for a contact across all chapters, with optional date range

Public

Response Example

{
  "data": [
    {
      "activity_id": "act-4411",
      "contact_id": "contact-8821",
      "chapter_id": "chapter-oslo",
      "activity_type": "volunteer_hours",
      "submitted_at": "2026-03-25T10:00:00Z",
      "hours": 4
    },
    {
      "activity_id": "act-4298",
      "contact_id": "contact-8821",
      "chapter_id": "chapter-stavanger",
      "activity_type": "training_session",
      "submitted_at": "2026-03-20T14:00:00Z",
      "hours": 2
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 18
  }
}
GET /api/v1/activities/api/v1/activities/contact/:contactId/by-type

Fetch activities for a contact filtered by type and date (duplicate detection query)

Public

Response Example

{
  "data": [
    {
      "activity_id": "act-4411",
      "contact_id": "contact-8821",
      "chapter_id": "chapter-oslo",
      "activity_type": "volunteer_hours",
      "submitted_at": "2026-03-25T10:00:00Z",
      "hours": 4,
      "description": "Community garden cleanup"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 1
  }
}

Additional Metadata

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