API Documentation
Identity Service
| Method | Endpoint | Purpose |
|---|---|---|
POST | /api/v1/admin/distributors | Provision a distributor account |
POST | /api/v1/auth/register | Register a user |
POST | /api/v1/auth/login | Authenticate and issue tokens |
GET | /api/v1/users/me | Return the current user profile |
Customer Service
| Method | Endpoint | Purpose |
|---|---|---|
POST | /api/v1/invites | Create a distributor invite |
POST | /api/v1/invites/{token}/redeem | Redeem an invite |
GET | /api/v1/relationships/{customer_id} | Retrieve an authorized relationship view |
GET | /api/v1/entitlements/chat/{first_user_id}/{second_user_id} | Confirm chat entitlement |
Game Service
| Method | Endpoint | Purpose |
|---|---|---|
POST | /api/v1/games/invites | Create a game invite |
POST | /api/v1/games/invites/{invite_id}/accept | Accept a game invite |
POST | /api/v1/games/invites/{invite_id}/decline | Decline a game invite |
POST | /api/v1/games/{game_id}/play | Submit a card play |
GET | /api/v1/games/{game_id}/reconnect-token | Retrieve reconnect capability |
GET | /api/v1/games/{game_id}/scoreboard | Retrieve game scores |
WS | /api/v1/games/{game_id}/ws | Stream live game events |
Chat Service
| Method | Endpoint | Purpose |
|---|---|---|
POST | /api/v1/conversations | Create an entitled conversation |
GET | /api/v1/conversations/{conversation_id}/messages | List visible participant messages |
POST | /api/v1/conversations/{conversation_id}/messages | Send a message |
POST | /api/v1/messages/{message_id}/delivered | Record delivery |
POST | /api/v1/messages/{message_id}/read | Record read state |
WS | /api/v1/conversations/{conversation_id}/ws | Stream live chat events |
GET | /api/v1/admin/moderation/conversations/{conversation_id} | Review retained conversation content |
POST | /api/v1/admin/moderation/conversations/{conversation_id}/legal-hold | Apply legal hold |
DELETE | /api/v1/admin/moderation/conversations/{conversation_id}/legal-hold | Release legal hold |
POST | /api/v1/admin/archive-expiry/run | Trigger archive expiry |
Contract Rules
- Public and internal APIs should remain domain-specific and typed.
- Moderator/admin surfaces must stay distinct from participant-facing routes.
- Service-to-service routes should require trusted credentials instead of user-supplied actor IDs.