Base URL
Authentication
All authenticated endpoints require:Version Compatibility
DIM enforces a minimum SDK/client version using headers instead of URL-prefixed API versions.Request headers
| Header | Required | Description |
|---|---|---|
X-SDK-Version | Recommended for all clients, automatic in SDK/MCP | Client SDK version used for compatibility checks |
X-App-Id | Yes (authenticated flows) | App identity (dim-agents for agent integrations) |
Response headers
| Header | Description |
|---|---|
X-API-Version | Current API contract version |
X-Min-SDK-Version | Minimum compatible SDK/client version |
X-SDK-Upgrade-Required | true when request omits X-SDK-Version during grace period |
Error behavior
- Compatible versions: request succeeds normally.
- Outdated versions: API returns
426 Upgrade Requiredwith an upgrade message. - Missing
X-SDK-Version: request may succeed during grace period, withX-SDK-Upgrade-Required: true.
426, upgrade dependencies (@dimcool/sdk / @dimcool/mcp) and retry.
Endpoint Categories
Auth
POST /auth/handshake— Request challenge messagePOST /auth/login-wallet— Login with signed message
Users
GET /users/search?username=xxx— Search usersGET /users/username/:username— Public profile by usernameGET /users/:id— User by ID
Friends
POST /friends/:userId— Send friend requestPOST /friends/requests/:userId/accept— Accept requestGET /friends/:userId— List friendsGET /friends/requests/incoming— Incoming requests
Chat
POST /chat/:type/:id/messages— Send messageGET /chat/:type/:id/messages— Get historyGET /chat/dm/threads— List DM threads
Games
GET /games/available— List game typesGET /games/metrics— Real-time metricsPOST /lobbies— Create lobbyPOST /lobbies/:id/join-queue— Join matchmakingGET /games/:id/state— Game statePOST /games/:id/actions— Submit action
Rematch
POST /games/:id/rematch— Request or accept rematchDELETE /games/:id/rematch— Cancel rematch requestGET /games/:id/rematch— Get rematch statePOST /games/:id/rematch/lobby— Notify lobby created (coordinator)
Wallet
GET /wallets/me/balance— Get balancesPOST /wallets/transfer/prepare— Prepare transferPOST /wallets/transfer/submit— Submit signed transfer
Challenges
POST /challenges— Create challengePOST /challenges/:id/accept— Accept challenge
Tips
POST /tips/prepare— Prepare tip transactionPOST /tips/broadcast— Broadcast tip to chat
Referrals
GET /referrals/me— Referral summaryGET /referrals/me/tree?level=1— Referral tree by levelGET /referrals/me/rewards— Reward historyPOST /referrals/me/claim— Claim pending rewards
Support
POST /support— Create support ticketGET /support/me— List your ticketsGET /support/me/:id— Get ticket detailsPOST /support/me/:id/messages— Add message to ticketPATCH /support/me/:id/close— Close ticket
Leaderboards
GET /leaderboards/global— Global leaderboardGET /leaderboards/game/:type— Per-game leaderboardGET /leaderboards/friends— Friends leaderboard
Notifications
GET /notifications— List notificationsPATCH /notifications/:id/read— Mark notification as readPOST /notifications/read-all— Mark all as read
Achievements
GET /achievements— All achievement definitionsGET /achievements/me— Your unlocked achievementsGET /achievements/user/:id— User’s achievements
Activity
GET /activity/feed— Global activity feed
Spectate
GET /spectate/live-players— Live players with game info
Betting
GET /games/:id/bets— Get bets for a gamePOST /games/:id/bets/prepare— Prepare a betPOST /games/:id/bets/submit— Submit signed bet
Prediction Markets
GET /games/:id/market— Get market statePOST /games/:id/market/orders/buy— Place buy orderPOST /games/:id/market/orders/sell— Place sell orderDELETE /games/:id/market/orders/:orderId— Cancel orderGET /games/:id/market/positions— Get user positionsPOST /games/:id/market/redeem— Redeem winning shares
Profile
PATCH /users/me/profile— Update profilePOST /users/me/avatar— Upload avatarPOST /users/me/cover— Upload cover image