Multi-Chapter Membership Service
API Contract
REST
/api/v1/contact-chapters
7 endpoints
GET
/api/v1/contact-chapters/api/v1/contact-chapters
List all contact-chapter memberships
Public
Response Example
{
"data": [
{
"id": "ccm-001",
"contact_id": "contact-8821",
"chapter_id": "chapter-oslo",
"joined_at": "2025-11-14T09:00:00Z",
"status": "active"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 47
}
}
GET
/api/v1/contact-chapters/api/v1/contact-chapters/:id
Get a single contact-chapter membership by ID
Public
Response Example
{
"id": "ccm-001",
"contact_id": "contact-8821",
"chapter_id": "chapter-oslo",
"joined_at": "2025-11-14T09:00:00Z",
"status": "active"
}
POST
/api/v1/contact-chapters/api/v1/contact-chapters
Add a contact to a chapter
Public
Request Example
{
"contact_id": "contact-8821",
"chapter_id": "chapter-bergen"
}
Response Example
{
"id": "ccm-048",
"contact_id": "contact-8821",
"chapter_id": "chapter-bergen",
"joined_at": "2026-03-26T12:34:00Z",
"status": "active",
"created_at": "2026-03-26T12:34:00Z"
}
PUT
/api/v1/contact-chapters/api/v1/contact-chapters/:id
Update a contact-chapter membership (e.g. change status)
Public
Request Example
{
"status": "inactive"
}
Response Example
{
"id": "ccm-048",
"contact_id": "contact-8821",
"chapter_id": "chapter-bergen",
"joined_at": "2026-03-26T12:34:00Z",
"status": "inactive",
"updated_at": "2026-03-26T14:00:00Z"
}
DELETE
/api/v1/contact-chapters/api/v1/contact-chapters/:id
Remove a contact from a chapter
Public
Response Example
{
"deleted": true,
"id": "ccm-048"
}
GET
/api/v1/contact-chapters/api/v1/contact-chapters/by-contact/:contactId
Get all chapters a contact belongs to
Public
Response Example
{
"data": [
{
"id": "ccm-001",
"contact_id": "contact-8821",
"chapter_id": "chapter-oslo",
"chapter_name": "Oslo Chapter",
"joined_at": "2025-11-14T09:00:00Z",
"status": "active"
},
{
"id": "ccm-002",
"contact_id": "contact-8821",
"chapter_id": "chapter-stavanger",
"chapter_name": "Stavanger Chapter",
"joined_at": "2025-12-01T08:00:00Z",
"status": "active"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 2
}
}
GET
/api/v1/contact-chapters/api/v1/contact-chapters/by-chapter/:chapterId
Get all contacts belonging to a chapter
Public
Response Example
{
"data": [
{
"id": "ccm-001",
"contact_id": "contact-8821",
"contact_name": "Marta Lindqvist",
"chapter_id": "chapter-oslo",
"joined_at": "2025-11-14T09:00:00Z",
"status": "active"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 134
}
}