openapi: 3.0.1 info: title: Nakama Account RPC API description: 'Representative OpenAPI description of the core REST API for Nakama, the open-source game and app backend server by Heroic Labs. Nakama''s public HTTP API is generated by the gRPC-gateway from `api/api.proto` and is published upstream as `apigrpc/apigrpc.swagger.json` in the heroiclabs/nakama repository. This document reconstructs the primary client-facing surface: authentication, accounts and identity linking, social (friends and groups), storage, leaderboards and tournaments, notifications, and custom RPCs. Authentication endpoints are guarded by the server key using HTTP Basic auth, where the server key is the username and the password is empty. All other endpoints are authorized with the JWT session token returned by an authenticate call, sent as `Authorization: Bearer `. RPC endpoints may alternatively be called server-to-server with an `http_key` query parameter.' termsOfService: https://heroiclabs.com/terms/ contact: name: Heroic Labs url: https://heroiclabs.com/ email: support@heroiclabs.com license: name: Apache 2.0 url: https://github.com/heroiclabs/nakama/blob/master/LICENSE version: '2.0' servers: - url: http://127.0.0.1:7350 description: Default self-hosted Nakama server. Replace host/port with your Heroic Cloud project URL in production. security: - BearerAuth: [] tags: - name: RPC description: Call custom runtime functions. paths: /v2/rpc/{id}: post: operationId: rpcFunc tags: - RPC summary: Execute a Nakama runtime RPC function with a session token. parameters: - in: path name: id required: true schema: type: string description: The identifier of the runtime function. - in: query name: http_key schema: type: string description: The runtime http_key for server-to-server calls, in place of a session token. requestBody: required: true content: application/json: schema: type: string description: The payload passed to the function, as a JSON-encoded string. responses: '200': description: The payload returned from the function. content: application/json: schema: $ref: '#/components/schemas/Rpc' get: operationId: rpcFunc2 tags: - RPC summary: Execute a Nakama runtime RPC function with an http key or session token. parameters: - in: path name: id required: true schema: type: string - in: query name: payload schema: type: string description: The payload for the function, as a URL-encoded string. - in: query name: http_key schema: type: string responses: '200': description: The payload returned from the function. content: application/json: schema: $ref: '#/components/schemas/Rpc' components: schemas: Rpc: type: object description: Execute an arbitrary function on the server. properties: id: type: string description: The identifier of the function. payload: type: string description: The payload of the function, a JSON-encoded string. http_key: type: string securitySchemes: BasicAuth: type: http scheme: basic description: HTTP Basic auth using the server key as the username and an empty password. Guards the authenticate endpoints. BearerAuth: type: http scheme: bearer bearerFormat: JWT description: 'The JWT session token returned by an authenticate call, sent as `Authorization: Bearer `.' externalDocs: description: Nakama documentation url: https://heroiclabs.com/docs/nakama/