How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Nakama API

The Nakama API is the core REST and WebSocket API for Heroic Labs' open-source game backend server. It provides endpoints for user authentication (social, device, email, and custom), account management, multiplayer matchmaking, real-time gameplay via WebSocket, leaderboards, tournaments, group and friend management, in-app notifications, storage, and remote procedure calls (RPC). The gRPC interface mirrors the HTTP API and is suited for server-to-server integrations. Client SDKs are available for Unity, Unreal Engine, Godot, JavaScript, Dart, Java, Swift, C++, and Defold.

Nakama API is one of 4 APIs that Heroic Labs publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Game Backend, Multiplayer, Matchmaking, Leaderboards, and WebSocket. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and a GitHub repository.

This API exposes 87 operations across 73 paths, and defines 75 schemas. It is described by OpenAPI 3.2.0, at version 2.0.

Requests are made against a single base URL, http://127.0.0.1:7350.

87 operations 73 paths 75 schemas 6 DELETE22 GET54 POST5 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
2.0
Base URL
https://127.0.0.1:7350
Authentication
HTTP Basic, API Key, API Key
Resource Areas
1

Authentication & Security 3

Nakama API declares 3 security schemes for authenticating requests. It accepts HTTP basic authentication (BasicAuth). An API key is passed in the header as Authorization (BearerJwt). An API key is passed in the header as http_key (HttpKeyAuth). By default, every request must be authenticated.

Paths & Operations 87

Across 73 paths, the API surfaces 87 operations — 6 DELETE, 22 GET, 54 POST, 5 PUT. Each is listed below with its method, path, parameters, and response codes.

Nakama 87
GET
/healthcheck
A healthcheck which load balancers can use to check the service
Nakama_Healthcheck → 200default
GET
/v2/account
Fetch the current user's account
Nakama_GetAccount → 200default
DELETE
/v2/account
Delete the current user's account
Nakama_DeleteAccount → 200default
PUT
/v2/account
Update fields in the current user's account
Nakama_UpdateAccount body → 200default
POST
/v2/account/authenticate/apple
Authenticate a user with an Apple ID against the server
Nakama_AuthenticateApple 2 params body → 200default
POST
/v2/account/authenticate/custom
Authenticate a user with a custom id against the server
Nakama_AuthenticateCustom 2 params body → 200default
POST
/v2/account/authenticate/device
Authenticate a user with a device id against the server
Nakama_AuthenticateDevice 2 params body → 200default
POST
/v2/account/authenticate/email
Authenticate a user with an email+password against the server
Nakama_AuthenticateEmail 2 params body → 200default
POST
/v2/account/authenticate/facebook
Authenticate a user with a Facebook OAuth token against the server
Nakama_AuthenticateFacebook 3 params body → 200default
POST
/v2/account/authenticate/facebookinstantgame
Authenticate a user with a Facebook Instant Game token against the server
Nakama_AuthenticateFacebookInstantGame 2 params body → 200default
POST
/v2/account/authenticate/gamecenter
Authenticate a user with Apple's GameCenter against the server
Nakama_AuthenticateGameCenter 2 params body → 200default
POST
/v2/account/authenticate/google
Authenticate a user with Google against the server
Nakama_AuthenticateGoogle 2 params body → 200default
POST
/v2/account/authenticate/steam
Authenticate a user with Steam against the server
Nakama_AuthenticateSteam 3 params body → 200default
POST
/v2/account/link/apple
Add an Apple ID to the social profiles on the current user's account
Nakama_LinkApple body → 200default
POST
/v2/account/link/custom
Add a custom ID to the social profiles on the current user's account
Nakama_LinkCustom body → 200default
POST
/v2/account/link/device
Add a device ID to the social profiles on the current user's account
Nakama_LinkDevice body → 200default
POST
/v2/account/link/email
Add an email+password to the social profiles on the current user's account
Nakama_LinkEmail body → 200default
POST
/v2/account/link/facebook
Add Facebook to the social profiles on the current user's account
Nakama_LinkFacebook 1 param body → 200default
POST
/v2/account/link/facebookinstantgame
Add Facebook Instant Game to the social profiles on the current user's account
Nakama_LinkFacebookInstantGame body → 200default
POST
/v2/account/link/gamecenter
Add Apple's GameCenter to the social profiles on the current user's account
Nakama_LinkGameCenter body → 200default
POST
/v2/account/link/google
Add Google to the social profiles on the current user's account
Nakama_LinkGoogle body → 200default
POST
/v2/account/link/steam
Add Steam to the social profiles on the current user's account
Nakama_LinkSteam body → 200default
POST
/v2/account/session/refresh
Refresh a user's session using a refresh token retrieved from a previous…
Nakama_SessionRefresh body → 200default
POST
/v2/account/unlink/apple
Remove the Apple ID from the social profiles on the current user's account
Nakama_UnlinkApple body → 200default
POST
/v2/account/unlink/custom
Remove the custom ID from the social profiles on the current user's account
Nakama_UnlinkCustom body → 200default
POST
/v2/account/unlink/device
Remove the device ID from the social profiles on the current user's account
Nakama_UnlinkDevice body → 200default
POST
/v2/account/unlink/email
Remove the email+password from the social profiles on the current user's account
Nakama_UnlinkEmail body → 200default
POST
/v2/account/unlink/facebook
Remove Facebook from the social profiles on the current user's account
Nakama_UnlinkFacebook body → 200default
POST
/v2/account/unlink/facebookinstantgame
Remove Facebook Instant Game profile from the social profiles on the current…
Nakama_UnlinkFacebookInstantGame body → 200default
POST
/v2/account/unlink/gamecenter
Remove Apple's GameCenter from the social profiles on the current user's account
Nakama_UnlinkGameCenter body → 200default
POST
/v2/account/unlink/google
Remove Google from the social profiles on the current user's account
Nakama_UnlinkGoogle body → 200default
POST
/v2/account/unlink/steam
Remove Steam from the social profiles on the current user's account
Nakama_UnlinkSteam body → 200default
GET
/v2/channel/{channelId}
List a channel's message history
Nakama_ListChannelMessages 4 params → 200default
POST
/v2/event
Submit an event for processing in the server's registered runtime custom events…
Nakama_Event body → 200default
GET
/v2/friend
List all friends for the current user
Nakama_ListFriends 3 params → 200default
DELETE
/v2/friend
Delete one or more users by ID or username
Nakama_DeleteFriends 2 params → 200default
POST
/v2/friend
Add friends by ID or username to a user's account
Nakama_AddFriends 3 params → 200default
POST
/v2/friend/block
Block one or more users by ID or username
Nakama_BlockFriends 2 params → 200default
POST
/v2/friend/facebook
Import Facebook friends and add them to a user's account
Nakama_ImportFacebookFriends 1 param body → 200default
GET
/v2/friend/friends
List friends of friends for the current user
Nakama_ListFriendsOfFriends 2 params → 200default
POST
/v2/friend/steam
Import Steam friends and add them to a user's account
Nakama_ImportSteamFriends 1 param body → 200default
GET
/v2/group
List groups based on given filters
Nakama_ListGroups 6 params → 200default
POST
/v2/group
Create a new group with the current user as the owner
Nakama_CreateGroup body → 200default
DELETE
/v2/group/{groupId}
Delete a group by ID
Nakama_DeleteGroup 1 param → 200default
PUT
/v2/group/{groupId}
Update fields in a given group
Nakama_UpdateGroup 1 param body → 200default
POST
/v2/group/{groupId}/add
Add users to a group
Nakama_AddGroupUsers 2 params → 200default
POST
/v2/group/{groupId}/ban
Ban a set of users from a group
Nakama_BanGroupUsers 2 params → 200default
POST
/v2/group/{groupId}/demote
Demote a set of users in a group to the next role down
Nakama_DemoteGroupUsers 2 params → 200default
POST
/v2/group/{groupId}/join
Immediately join an open group, or request to join a closed one
Nakama_JoinGroup 1 param → 200default
POST
/v2/group/{groupId}/kick
Kick a set of users from a group
Nakama_KickGroupUsers 2 params → 200default
POST
/v2/group/{groupId}/leave
Leave a group the user is a member of
Nakama_LeaveGroup 1 param → 200default
POST
/v2/group/{groupId}/promote
Promote a set of users in a group to the next role up
Nakama_PromoteGroupUsers 2 params → 200default
GET
/v2/group/{groupId}/user
List all users that are part of a group
Nakama_ListGroupUsers 4 params → 200default
POST
/v2/iap/purchase/apple
Validate Apple IAP Receipt
Nakama_ValidatePurchaseApple body → 200default
POST
/v2/iap/purchase/facebookinstant
Validate FB Instant IAP Receipt
Nakama_ValidatePurchaseFacebookInstant body → 200default
POST
/v2/iap/purchase/google
Validate Google IAP Receipt
Nakama_ValidatePurchaseGoogle body → 200default
POST
/v2/iap/purchase/huawei
Validate Huawei IAP Receipt
Nakama_ValidatePurchaseHuawei body → 200default
POST
/v2/iap/subscription
List user's subscriptions
Nakama_ListSubscriptions body → 200default
POST
/v2/iap/subscription/apple
Validate Apple Subscription Receipt
Nakama_ValidateSubscriptionApple body → 200default
POST
/v2/iap/subscription/google
Validate Google Subscription Receipt
Nakama_ValidateSubscriptionGoogle body → 200default
GET
/v2/iap/subscription/{productId}
Get subscription by product id
Nakama_GetSubscription 1 param → 200default
GET
/v2/leaderboard/{leaderboardId}
List leaderboard records
Nakama_ListLeaderboardRecords 5 params → 200default
DELETE
/v2/leaderboard/{leaderboardId}
Delete a leaderboard record
Nakama_DeleteLeaderboardRecord 1 param → 200default
POST
/v2/leaderboard/{leaderboardId}
Write a record to a leaderboard
Nakama_WriteLeaderboardRecord 1 param body → 200default
GET
/v2/leaderboard/{leaderboardId}/owner/{ownerId}
List leaderboard records around the target ownerId
Nakama_ListLeaderboardRecordsAroundOwner 5 params → 200default
GET
/v2/match
List running matches and optionally filter by matching criteria
Nakama_ListMatches 6 params → 200default
GET
/v2/matchmaker/stats
Get matchmaker stats
Nakama_GetMatchmakerStats → 200default
GET
/v2/notification
Fetch list of notifications
Nakama_ListNotifications 2 params → 200default
DELETE
/v2/notification
Delete one or more notifications for the current user
Nakama_DeleteNotifications 1 param → 200default
GET
/v2/party
List parties and optionally filter by matching criteria
Nakama_ListParties 4 params → 200default
GET
/v2/rpc/{id}
Execute a Lua function on the server
Nakama_RpcFunc2 3 params → 200default
POST
/v2/rpc/{id}
Execute a Lua function on the server
Nakama_RpcFunc 2 params body → 200default
POST
/v2/session/logout
Log out a session, invalidate a refresh token, or log out all sessions/refresh…
Nakama_SessionLogout body → 200default
POST
/v2/storage
Get storage objects
Nakama_ReadStorageObjects body → 200default
PUT
/v2/storage
Write objects into the storage engine
Nakama_WriteStorageObjects body → 200default
PUT
/v2/storage/delete
Delete one or more objects by ID or username
Nakama_DeleteStorageObjects body → 200default
GET
/v2/storage/{collection}
List publicly readable storage objects in a given collection
Nakama_ListStorageObjects 4 params → 200default
GET
/v2/storage/{collection}/{userId}
List publicly readable storage objects in a given collection
Nakama_ListStorageObjects2 4 params → 200default
GET
/v2/tournament
List current or upcoming tournaments
Nakama_ListTournaments 6 params → 200default
GET
/v2/tournament/{tournamentId}
List tournament records
Nakama_ListTournamentRecords 5 params → 200default
DELETE
/v2/tournament/{tournamentId}
Delete a tournament record
Nakama_DeleteTournamentRecord 1 param → 200default
POST
/v2/tournament/{tournamentId}
Write a record to a tournament
Nakama_WriteTournamentRecord2 1 param body → 200default
PUT
/v2/tournament/{tournamentId}
Write a record to a tournament
Nakama_WriteTournamentRecord 1 param body → 200default
POST
/v2/tournament/{tournamentId}/join
Attempt to join an open and running tournament
Nakama_JoinTournament 1 param → 200default
GET
/v2/tournament/{tournamentId}/owner/{ownerId}
List tournament records for a given owner
Nakama_ListTournamentRecordsAroundOwner 5 params → 200default
GET
/v2/user
Fetch zero or more users by ID and/or username
Nakama_GetUsers 3 params → 200default
GET
/v2/user/{userId}/group
List groups the current user belongs to
Nakama_ListUserGroups 4 params → 200default

Schemas 75

The contract defines 75 schemas that model the data the API accepts and returns. The most detailed are apiTournament (21 properties), apiUser (18 properties), apiValidatedSubscription (13 properties), apiChannelMessage (13 properties). Each schema is shown below with its type and property counts.

apiValidatePurchaseResponse
object
Validate IAP response.
1 property
apiAccountEmail
object
Send an email with password to the server. Used with authenticate/link/unlink.
3 properties
apiParty
object
Incoming information about a party.
5 properties
apiChannelMessageList
object
A list of channel messages, usually a result of a list operation.
4 properties
apiSessionLogoutRequest
object
Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.
2 properties
apiMatch
object
Represents a realtime match.
6 properties
apiTournamentRecordList
object
A set of tournament records which may be part of a tournament records page or a batch of individual records.
5 properties
apiValidatePurchaseAppleRequest
object
2 properties
apiValidateSubscriptionAppleRequest
object
2 properties
apiRpc
object
Execute an Lua function on the server.
3 properties
WriteLeaderboardRecordRequestLeaderboardRecordWrite
object
Record values to write.
4 properties
FriendsOfFriendsListFriendOfFriend
object
A friend of a friend.
2 properties
apiChannelMessage
object
A message sent on a channel.
13 properties
apiValidatedPurchase
object
Validated Purchase stored by Nakama.
11 properties
apiStorageObjects
object
Batch of storage objects.
1 property
apiAccountFacebook
object
Send a Facebook token to the server. Used with authenticate/link/unlink.
2 properties
apiPartyList
object
A list of realtime matches.
2 properties
apiLinkSteamRequest
object
Link Steam to the current user's account.
2 properties
apiAccountCustom
object
Send a custom ID to the server. Used with authenticate/link/unlink.
2 properties
apiAccountApple
object
Send a Apple Sign In token to the server. Used with authenticate/link/unlink.
2 properties
apiStorageObject
object
An object within the storage engine.
9 properties
UserGroupListUserGroup
object
A single group-role pair.
2 properties
apiAccountFacebookInstantGame
object
Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink.
2 properties
apiValidatePurchaseGoogleRequest
object
2 properties
apiAccountGameCenter
object
Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink. https://developer.apple.com/documentation/gamekit/gklocalplayer…
7 properties
apiStorageObjectAcks
object
Batch of acknowledgements for the storage object write.
1 property
apiStorageObjectList
object
List of storage objects.
2 properties
apiDeleteStorageObjectId
object
Storage objects to delete.
3 properties
apiValidatedSubscription
object
13 properties
apiTournamentList
object
A list of tournaments.
2 properties
apiAccountSteam
object
Send a Steam token to the server. Used with authenticate/link/unlink.
2 properties
apiSubscriptionList
object
A list of validated subscriptions stored by Nakama.
3 properties
apiReadStorageObjectsRequest
object
Batch get storage objects.
1 property
apiSession
object
A user's session used to authenticate messages.
3 properties
WriteTournamentRecordRequestTournamentRecordWrite
object
Record values to write.
4 properties
rpcStatus
object
3 properties
apiAccount
object
A user with additional account details. Always the current user.
7 properties
apiSessionRefreshRequest
object
Authenticate against the server with a refresh token.
2 properties
apiMatchmakerStats
object
3 properties
protobufAny
object
1 property
apiUser
object
A user in the server.
18 properties
apiValidateSubscriptionGoogleRequest
object
2 properties
apiAccountGoogle
object
Send a Google token to the server. Used with authenticate/link/unlink.
2 properties
apiEvent
object
Represents an event to be passed through the server to registered event handlers.
4 properties
apiReadStorageObjectId
object
Storage objects to get.
3 properties
apiStorageObjectAck
object
A storage acknowledgement.
6 properties
apiMatchList
object
A list of realtime matches.
1 property
apiUsers
object
A collection of zero or more users.
1 property
apiFriend
object
A friend of a user.
4 properties
apiStoreEnvironment
string
- UNKNOWN: Unknown environment. - SANDBOX: Sandbox/test environment. - PRODUCTION: Production environment.
apiDeleteStorageObjectsRequest
object
Batch delete storage objects.
1 property
apiListSubscriptionsRequest
object
List user subscriptions.
2 properties
apiStoreProvider
string
- APPLEAPPSTORE: Apple App Store - GOOGLEPLAYSTORE: Google Play Store - HUAWEIAPPGALLERY: Huawei App Gallery - FACEBOOKINSTANTSTORE: Facebook Instant Store
GroupUserListGroupUser
object
A single user-role pair.
2 properties
apiGroupList
object
One or more groups returned from a listing operation.
2 properties
apiFriendList
object
A collection of zero or more friends of the user.
2 properties
apiAccountDevice
object
Send a device to the server. Used with authenticate/link/unlink and user.
2 properties
apiGroup
object
A group in the server.
12 properties
apiFriendsOfFriendsList
object
2 properties
apiUpdateAccountRequest
object
Update a user's account details.
6 properties
apiOperator
string
Operator that can be used to override the one set in the leaderboard. - NOOVERRIDE: Do not override the leaderboard operator. - BEST: Override the leaderboard…
apiNotification
object
A notification in the server.
7 properties
apiUserGroupList
object
A list of groups belonging to a user, along with the user's role in each group.
2 properties
apiMatchmakerCompletionStats
object
2 properties
apiWriteStorageObject
object
The object to store.
6 properties
apiValidatePurchaseHuaweiRequest
object
3 properties
apiLeaderboardRecord
object
Represents a complete leaderboard record with all scores and associated metadata.
12 properties
apiGroupUserList
object
A list of users belonging to a group, along with their role.
2 properties
apiCreateGroupRequest
object
Create a group with the current user as owner.
6 properties
apiLeaderboardRecordList
object
A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.
5 properties
apiNotificationList
object
A collection of zero or more notifications.
2 properties
apiWriteStorageObjectsRequest
object
Write objects to the storage engine.
1 property
apiValidatePurchaseFacebookInstantRequest
object
2 properties
apiTournament
object
A tournament on the server.
21 properties
apiValidateSubscriptionResponse
object
Validate Subscription response.
1 property

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

heroiclabs-nakama-api-openapi.yml Raw ↑

Other APIs Heroic Labs publishes across the network.

Satori API
Heroic Labs Console API
Heroic Labs Rpc API
Where this information came from

This is an independent, third-party profile of Nakama API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.