Hathora

Hathora provides on-demand, globally distributed dedicated compute for multiplayer games. Hathora Cloud spins game server processes up and down across regions in response to player demand, exposing a REST API to manage applications, builds, deployments, processes, rooms, discovery/ping, logs, metrics, billing, and organization tokens, plus a player-authentication surface that issues short-lived player tokens.

11 APIs 0 Features
Game ServersMultiplayerComputeHostingOrchestration

APIs

Hathora Auth API

Issues short-lived player tokens for game clients via anonymous, nickname, and Google OIDC login flows, used to authorize room and lobby operations.

Hathora Apps API

Create, list, read, update, and delete the applications that group your game server builds, deployments, and processes under an organization.

Hathora Builds API

Create a build, upload a game server tarball, run the build into a container image, and list, inspect, or delete builds for an application.

Hathora Deployments API

Create and read deployments - the versioned runtime configuration (CPU, memory, transport, ports, env, rooms-per-process, idle timeout) that binds a build to how new processes run.

Hathora Processes API

Start game server processes in a chosen region, list latest processes, read process details (host, port, allocation, status), and stop a running process.

Hathora Rooms API

Create rooms on running processes, poll for connection info (host/port), read room status, and destroy rooms - the unit game clients connect to for a match.

Hathora Discovery API

Returns every region with a host and port that a game client can directly ping, enabling latency-based routing to the nearest region.

Hathora Logs API

Stream live logs for a running process and download the full log file for a stopped process, keyed by appId and processId.

Hathora Metrics API

Read time-series metrics for a process - CPU, memory, egress rate, total egress, and active connections - to monitor game server health and capacity.

Hathora Billing API

Read account balance and invoice history, view the stored payment method, and initialize a Stripe customer portal URL for self-service billing management.

Hathora Tokens API

Create, list, and revoke the organization API tokens (hathoraDevToken) used as bearer credentials for the management endpoints of the Hathora Cloud API.

Collections

Pricing Plans

Hathora Plans Pricing

3 plans

PLANS

Rate Limits

Hathora Rate Limits

5 limits

RATE LIMITS

FinOps

Resources

🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Hathora Cloud API
  version: '3.0'
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: AuthV1
    type: folder
  items:
  - info:
      name: Returns a unique player token for an anonymous user.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/auth/v1/{appId}/login/anonymous
    docs: Returns a unique player token for an anonymous user.
  - info:
      name: Returns a unique player token with a specified nickname.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/auth/v1/{appId}/login/nickname
      body:
        type: json
        data: '{}'
    docs: Returns a unique player token with a specified nickname.
  - info:
      name: Returns a unique player token using a Google-signed OIDC idToken.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/auth/v1/{appId}/login/google
      body:
        type: json
        data: '{}'
    docs: Returns a unique player token using a Google-signed OIDC idToken.
- info:
    name: AppsV2
    type: folder
  items:
  - info:
      name: Returns an unsorted list of your organization's applications.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/apps/v2/list
    docs: Returns an unsorted list of your organization's applications.
  - info:
      name: Create a new application.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/apps/v2/create
      body:
        type: json
        data: '{}'
    docs: Create a new application.
  - info:
      name: Update data for an existing application.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/apps/v2/update/{appId}
      body:
        type: json
        data: '{}'
    docs: Update data for an existing application.
  - info:
      name: Get details for an application.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/apps/v2/info/{appId}
    docs: Get details for an application.
  - info:
      name: Delete an application using appId. Your organization will lose access.
      type: http
    http:
      method: DELETE
      url: https://api.hathora.dev/apps/v2/delete/{appId}
    docs: Delete an application using appId. Your organization will lose access.
- info:
    name: BuildsV3
    type: folder
  items:
  - info:
      name: Returns an array of builds for an application.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/builds/v3/{appId}/list
    docs: Returns an array of builds for an application.
  - info:
      name: Creates a new build. Responds with a buildId that you must pass to RunBuild.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/builds/v3/{appId}/create
      body:
        type: json
        data: '{}'
    docs: Creates a new build. Responds with a buildId that you must pass to RunBuild.
  - info:
      name: Builds a game server artifact from a tarball you provide.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/builds/v3/{appId}/run/{buildId}
      body:
        type: multipart-form
        data: []
    docs: Builds a game server artifact from a tarball you provide.
  - info:
      name: Get details for a build.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/builds/v3/{appId}/info/{buildId}
    docs: Get details for a build.
  - info:
      name: Delete a build. All associated metadata is deleted.
      type: http
    http:
      method: DELETE
      url: https://api.hathora.dev/builds/v3/{appId}/delete/{buildId}
    docs: Delete a build. All associated metadata is deleted.
- info:
    name: DeploymentsV3
    type: folder
  items:
  - info:
      name: Returns an array of deployments for an application.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/deployments/v3/{appId}/list
    docs: Returns an array of deployments for an application.
  - info:
      name: Create a new deployment. All new processes for the app will use the latest deployment configuration.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/deployments/v3/{appId}/create/{buildId}
      body:
        type: json
        data: '{}'
    docs: Create a new deployment. All new processes for the app will use the latest deployment configuration.
  - info:
      name: Get the latest deployment for an application.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/deployments/v3/{appId}/latest
    docs: Get the latest deployment for an application.
  - info:
      name: Get details for a deployment.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/deployments/v3/{appId}/info/{deploymentId}
    docs: Get details for a deployment.
- info:
    name: ProcessesV3
    type: folder
  items:
  - info:
      name: Retrieve the latest process objects for an application.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/processes/v3/{appId}/list/latest
    docs: Retrieve the latest process objects for an application.
  - info:
      name: Start a new process in a specific region.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/processes/v3/{appId}/create
      body:
        type: json
        data: '{}'
    docs: Start a new process in a specific region.
  - info:
      name: Get details for a process.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/processes/v3/{appId}/info/{processId}
    docs: Get details for a process.
  - info:
      name: Stop a running process.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/processes/v3/{appId}/stop/{processId}
    docs: Stop a running process.
- info:
    name: RoomsV2
    type: folder
  items:
  - info:
      name: Create a new room for an application.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/rooms/v2/{appId}/create
      body:
        type: json
        data: '{}'
    docs: Create a new room for an application.
  - info:
      name: Get details for a room.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/rooms/v2/{appId}/info/{roomId}
    docs: Get details for a room.
  - info:
      name: Poll this endpoint to get connection details for an active room.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/rooms/v2/{appId}/connectioninfo/{roomId}
    docs: Poll this endpoint to get connection details for an active room.
  - info:
      name: Destroy a room. All associated metadata is deleted.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/rooms/v2/{appId}/destroy/{roomId}
    docs: Destroy a room. All associated metadata is deleted.
- info:
    name: DiscoveryV2
    type: folder
  items:
  - info:
      name: Returns an array of all regions with a host and port that a client can directly ping for latency-based routing.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/discovery/v2/ping
    docs: Returns an array of all regions with a host and port that a client can directly ping for latency-based routing.
- info:
    name: LogsV1
    type: folder
  items:
  - info:
      name: Returns a stream of logs for a process using appId and processId.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/logs/v1/{appId}/process/{processId}
    docs: Returns a stream of logs for a process using appId and processId.
  - info:
      name: Download the log file for a stopped process.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/logs/v1/{appId}/process/{processId}/download
    docs: Download the log file for a stopped process.
- info:
    name: MetricsV1
    type: folder
  items:
  - info:
      name: Get metrics for a process using appId and processId.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/metrics/v1/{appId}/process/{processId}
    docs: Get metrics for a process using appId and processId.
- info:
    name: BillingV1
    type: folder
  items:
  - info:
      name: Get the current account balance.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/billing/v1/balance
    docs: Get the current account balance.
  - info:
      name: Retrieve invoice history.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/billing/v1/invoices
    docs: Retrieve invoice history.
  - info:
      name: Get stored payment method details.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/billing/v1/paymentmethod
    docs: Get stored payment method details.
  - info:
      name: Initialize a Stripe customer portal URL.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/billing/v1/customerportalurl
    docs: Initialize a Stripe customer portal URL.
- info:
    name: TokensV1
    type: folder
  items:
  - info:
      name: Returns an unsorted list of an organization's API tokens.
      type: http
    http:
      method: GET
      url: https://api.hathora.dev/tokens/v1/{orgId}/list
    docs: Returns an unsorted list of an organization's API tokens.
  - info:
      name: Create a new organization API token.
      type: http
    http:
      method: POST
      url: https://api.hathora.dev/tokens/v1/{orgId}/create
      body:
        type: json
        data: '{}'
    docs: Create a new organization API token.
  - info:
      name: Revoke an organization API token.
      type: http
    http:
      method: PUT
      url: https://api.hathora.dev/tokens/v1/{orgId}/revoke/{orgTokenId}
    docs: Revoke an organization API token.