REST /api/v1/contacts 8 endpoints
GET /api/v1/contacts/api/v1/contacts

List all contacts

Public

Response Example

{
  "data": [
    {
      "contact_id": "c-00123",
      "first_name": "Ingrid",
      "last_name": "Solberg",
      "email": "ingrid.solberg@example.no",
      "phone": "+47 912 34 567",
      "assignment_status": "assigned",
      "chapter_count": 2,
      "created_at": "2025-09-14T10:22:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 154
  }
}
GET /api/v1/contacts/api/v1/contacts/:id

Get contact by ID

Public

Response Example

{
  "contact_id": "c-00123",
  "first_name": "Ingrid",
  "last_name": "Solberg",
  "email": "ingrid.solberg@example.no",
  "phone": "+47 912 34 567",
  "address": "Storgata 12, 0155 Oslo",
  "date_of_birth": "1988-04-21",
  "assignment_status": "assigned",
  "chapter_affiliations": [
    "ch-01",
    "ch-07"
  ],
  "created_at": "2025-09-14T10:22:00Z",
  "updated_at": "2026-01-05T08:44:00Z"
}
POST /api/v1/contacts/api/v1/contacts

Create a new contact

Public

Request Example

{
  "first_name": "Erik",
  "last_name": "Haugen",
  "email": "erik.haugen@example.no",
  "phone": "+47 934 56 789",
  "address": "Bjørnegata 4, 5003 Bergen",
  "date_of_birth": "1993-11-03",
  "chapter_affiliations": [
    "ch-03"
  ]
}

Response Example

{
  "contact_id": "c-00187",
  "first_name": "Erik",
  "last_name": "Haugen",
  "email": "erik.haugen@example.no",
  "phone": "+47 934 56 789",
  "address": "Bjørnegata 4, 5003 Bergen",
  "date_of_birth": "1993-11-03",
  "chapter_affiliations": [
    "ch-03"
  ],
  "assignment_status": "unassigned",
  "created_at": "2026-03-26T11:00:00Z",
  "updated_at": "2026-03-26T11:00:00Z"
}
PUT /api/v1/contacts/api/v1/contacts/:id

Update contact fields

Public

Request Example

{
  "first_name": "Ingrid",
  "last_name": "Solberg",
  "email": "ingrid.s@newemail.no",
  "phone": "+47 912 34 567",
  "address": "Storgata 12, 0155 Oslo"
}

Response Example

{
  "contact_id": "c-00123",
  "first_name": "Ingrid",
  "last_name": "Solberg",
  "email": "ingrid.s@newemail.no",
  "phone": "+47 912 34 567",
  "address": "Storgata 12, 0155 Oslo",
  "updated_at": "2026-03-26T12:15:00Z"
}
DELETE /api/v1/contacts/api/v1/contacts/:id

Delete a contact

Public

Response Example

{
  "contact_id": "c-00123",
  "deleted": true,
  "deleted_at": "2026-03-26T12:30:00Z"
}
GET /api/v1/contacts/api/v1/contacts/:id/activities

Get activity history for a contact

Public

Response Example

{
  "data": [
    {
      "activity_id": "act-0441",
      "contact_id": "c-00123",
      "activity_type": "call",
      "description": "Follow-up call re: chapter onboarding",
      "performed_by": "user-077",
      "performed_at": "2026-02-14T09:30:00Z"
    },
    {
      "activity_id": "act-0398",
      "contact_id": "c-00123",
      "activity_type": "email",
      "description": "Welcome email sent",
      "performed_by": "user-012",
      "performed_at": "2026-01-20T15:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 11
  }
}
GET /api/v1/contacts/api/v1/contacts/:id/assignment-status

Get current assignment status for a contact

Public

Response Example

{
  "contact_id": "c-00123",
  "assignment_status": "assigned",
  "assignment_id": "asgn-0055",
  "assigned_to": "user-034",
  "assigned_at": "2025-10-01T08:00:00Z"
}
GET /api/v1/contacts/api/v1/contacts/:id/chapter-affiliations

Get chapter affiliations for a contact

Public

Response Example

{
  "data": [
    {
      "chapter_id": "ch-01",
      "chapter_name": "Oslo Sentrum",
      "joined_at": "2025-09-14T10:22:00Z"
    },
    {
      "chapter_id": "ch-07",
      "chapter_name": "Grünerløkka",
      "joined_at": "2026-01-03T09:10:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 2
  }
}

Additional Metadata

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