Unit Assignment Service
API Contract
REST
/api/v1/unit-assignments
6 endpoints
GET
/api/v1/unit-assignments/api/v1/unit-assignments
List assignments filtered by user or unit
Public
Response Example
{
"data": [
{
"assignment_id": "asgn-101",
"user_id": "usr-77",
"unit_id": "unit-002",
"unit_name": "Oslo Chapter",
"is_primary": true,
"assigned_at": "2025-06-01T00:00:00Z"
},
{
"assignment_id": "asgn-102",
"user_id": "usr-77",
"unit_id": "unit-005",
"unit_name": "Volunteer Pool",
"is_primary": false,
"assigned_at": "2025-09-15T00:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 2
}
}
GET
/api/v1/unit-assignments/api/v1/unit-assignments/{assignmentId}
Get a single assignment record
Public
Response Example
{
"assignment_id": "asgn-101",
"user_id": "usr-77",
"unit_id": "unit-002",
"unit_name": "Oslo Chapter",
"organization_id": "org-42",
"is_primary": true,
"assigned_at": "2025-06-01T00:00:00Z"
}
POST
/api/v1/unit-assignments/api/v1/unit-assignments
Assign a user to an organizational unit
Public
Request Example
{
"user_id": "usr-77",
"unit_id": "unit-019",
"is_primary": false
}
Response Example
{
"assignment_id": "asgn-210",
"user_id": "usr-77",
"unit_id": "unit-019",
"is_primary": false,
"assigned_at": "2026-03-26T10:20:00Z"
}
PUT
/api/v1/unit-assignments/api/v1/unit-assignments/{assignmentId}
Update assignment (e.g. set as primary)
Public
Request Example
{
"is_primary": true
}
Response Example
{
"assignment_id": "asgn-210",
"user_id": "usr-77",
"unit_id": "unit-019",
"is_primary": true,
"updated_at": "2026-03-26T11:00:00Z"
}
DELETE
/api/v1/unit-assignments/api/v1/unit-assignments/{assignmentId}
Remove a user from an organizational unit
Public
Response Example
{
"deleted": true,
"assignment_id": "asgn-210"
}
PUT
/api/v1/unit-assignments/api/v1/unit-assignments/users/{userId}/primary
Set primary unit for a user within an organization
Public
Request Example
{
"unit_id": "unit-002",
"organization_id": "org-42"
}
Response Example
{
"user_id": "usr-77",
"primary_unit_id": "unit-002",
"updated_at": "2026-03-26T11:05:00Z"
}