Hathora AppsV2 API

Create and manage your organization's applications.

OpenAPI Specification

hathora-appsv2-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Hathora Cloud AppsV2 API
  description: Hathora Cloud is on-demand, globally distributed compute for multiplayer game servers. Use the Hathora Cloud API to manage applications, upload and run game server builds, configure deployments, launch and stop processes, create and manage rooms, discover ping endpoints, stream logs, read process metrics, and manage organization tokens and billing. Player-facing authentication issues short-lived player tokens for use with room and lobby endpoints.
  termsOfService: https://hathora.dev/terms-of-service
  contact:
    name: Hathora Support
    url: https://hathora.dev
    email: support@hathora.dev
  version: '3.0'
servers:
- url: https://api.hathora.dev
  description: Hathora Cloud production API
security:
- hathoraDevToken: []
tags:
- name: AppsV2
  description: Create and manage your organization's applications.
paths:
  /apps/v2/list:
    get:
      operationId: GetApps
      tags:
      - AppsV2
      summary: Returns an unsorted list of your organization's applications.
      parameters:
      - $ref: '#/components/parameters/OrgIdQuery'
      responses:
        '200':
          description: A list of applications.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Application'
  /apps/v2/create:
    post:
      operationId: CreateApp
      tags:
      - AppsV2
      summary: Create a new application.
      parameters:
      - $ref: '#/components/parameters/OrgIdQuery'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppConfig'
      responses:
        '201':
          description: Application created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
  /apps/v2/update/{appId}:
    post:
      operationId: UpdateApp
      tags:
      - AppsV2
      summary: Update data for an existing application.
      parameters:
      - $ref: '#/components/parameters/AppId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppConfig'
      responses:
        '200':
          description: Application updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
  /apps/v2/info/{appId}:
    get:
      operationId: GetApp
      tags:
      - AppsV2
      summary: Get details for an application.
      parameters:
      - $ref: '#/components/parameters/AppId'
      responses:
        '200':
          description: Application details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
        '404':
          $ref: '#/components/responses/NotFound'
  /apps/v2/delete/{appId}:
    delete:
      operationId: DeleteApp
      tags:
      - AppsV2
      summary: Delete an application using appId. Your organization will lose access.
      parameters:
      - $ref: '#/components/parameters/AppId'
      responses:
        '204':
          description: Application deleted.
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  schemas:
    AppConfig:
      type: object
      required:
      - appName
      properties:
        appName:
          type: string
          example: minecraft
        authConfiguration:
          type: object
          description: Configuration for player auth providers.
    ApiError:
      type: object
      properties:
        message:
          type: string
    Application:
      type: object
      properties:
        appId:
          type: string
        appName:
          type: string
        orgId:
          type: string
        createdAt:
          type: string
          format: date-time
        deletedAt:
          type: string
          format: date-time
          nullable: true
  parameters:
    OrgIdQuery:
      name: orgId
      in: query
      required: false
      schema:
        type: string
    AppId:
      name: appId
      in: path
      required: true
      description: The unique identifier for an application.
      schema:
        type: string
        example: app-af469a92-5b45-4565-b3c4-b79878de67d2
  securitySchemes:
    hathoraDevToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Organization developer/API token used for management endpoints (apps, builds, deployments, processes, rooms, logs, metrics, billing, tokens).
    playerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Short-lived player token issued by the AuthV1 login endpoints, used by game clients for room and lobby operations.