Spaces API
Manage workspaces and team membership.
Endpoints Overview
| Method | Endpoint | Description |
|---|---|---|
| GET | /spaces | List accessible spaces |
| POST | /spaces | Create space (superadmin) |
| GET | /spaces/{slug} | Get space details |
| PATCH | /spaces/{slug} | Update space |
| GET | /spaces/{slug}/members | List members |
| POST | /spaces/{slug}/members | Add member |
List Spaces
GET /spaces
Returns spaces the authenticated user has access to.
Response
{
"items": [
{
"id": "...",
"name": "Marketing Analytics",
"slug": "marketing-analytics",
"description": "Marketing team data workspace",
"member_count": 12,
"product_count": 45,
"created_at": "2025-01-15T00:00:00Z"
}
]
}
Create Space
POST /spaces
Requires: Superadmin role
Request Body
{
"name": "Finance Data",
"slug": "finance-data",
"description": "Finance team workspace for financial data products"
}
Required Fields
| Field | Type | Description |
|---|---|---|
name | string | Display name |
slug | string | URL-friendly identifier (unique) |
Get Space Details
GET /spaces/{slug}
Response
{
"id": "...",
"name": "Marketing Analytics",
"slug": "marketing-analytics",
"description": "...",
"member_count": 12,
"product_count": 45,
"issue_count": 3,
"meeting_count": 5,
"created_at": "2025-01-15T00:00:00Z",
"updated_at": "2026-01-10T00:00:00Z"
}
Space Members
List Members
GET /spaces/{slug}/members
Response
{
"items": [
{
"user": {
"id": "...",
"email": "jane@example.com",
"name": "Jane Developer"
},
"role": "admin",
"joined_at": "2025-01-15T00:00:00Z"
}
]
}
Add Member
POST /spaces/{slug}/members
{
"user_id": "user-uuid",
"role": "editor"
}
Roles: viewer, editor, admin
Update Member Role
PATCH /spaces/{slug}/members/{user_id}
{
"role": "admin"
}
Remove Member
DELETE /spaces/{slug}/members/{user_id}
Space Statistics
Get Analytics
GET /analytics/spaces/{slug}/overview
{
"products": {
"total": 45,
"by_type": {
"table": 30,
"view": 10,
"dashboard": 5
}
},
"quality": {
"health_score": 0.94,
"checks_passing": 145,
"checks_failing": 8
},
"activity": {
"products_created_30d": 5,
"issues_resolved_30d": 12
}
}