Nakama RPC API

Call custom runtime functions.

OpenAPI Specification

nakama-rpc-api-openapi.yml Raw ↑
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 <session_token>`. 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 <session_token>`.'
externalDocs:
  description: Nakama documentation
  url: https://heroiclabs.com/docs/nakama/