Creates and launches a new game server instance. The server starts in launching status and transitions to running when the game process opens its configured ports (typically 10–30 seconds, or ~5 seconds if a pool server is available).
The response includes network_ports with the connection details (host + external_port) that game clients need to connect.
Plan limits: Free plan allows 1 active server with a 1-hour TTL and small compute. Pro plan unlocks unlimited servers with all compute sizes.
Build resolution: Uses the latest ready build matching version_tag (defaults to "default"). Pin to a specific build with the version parameter.
Configuration for starting a new game server instance.
Display name for this server instance. Visible in the dashboard and API responses. Example: "ranked-match-1", "lobby-eu-west".
1Deployment region. Determines where the server runs physically. Available regions: us-east, us-west, eu-west, eu-north, eu-uk, ap-south, ap-north, sea, ap-southeast, south-america, south-africa.
1Command-line arguments passed to your game executable. Accessible in your game via PLAYFLOW_STARTUP_ARGS env var or the config API. Example: "-map forest -maxplayers 16 -tickrate 64".
Machine size for the server. Shared CPU: micro (512MB), small (1GB), medium (2GB), large (4GB), xlarge (8GB). Dedicated CPU: dedicated-small (2GB), dedicated-medium (4GB), dedicated-large (8GB), dedicated-xlarge (16GB). Free plan is limited to "small".
micro, small, medium, large, xlarge, dedicated-small, dedicated-medium, dedicated-large, dedicated-xlarge, persistent-small, persistent-medium, persistent-large, persistent-xlarge Build name to deploy (e.g., "default", "beta", "staging"). Uses the latest ready build with this name. If omitted, defaults to "default".
Specific build version number to deploy. Overrides version_tag to pin to an exact build version. Useful for rollbacks or testing specific builds.
Time-to-live in seconds (60–86400). The server automatically stops after this duration. Free plan servers are forced to 3600 (1 hour). Omit for no auto-shutdown.
60 <= x <= 86400Automatically restart the game process if it crashes or exits unexpectedly. Uses on-failure restart policy with max 10 retries. After 10 failures, the machine is destroyed.
Arbitrary key-value data attached to this server. Accessible in your game via PLAYFLOW_CUSTOM_DATA env var or the config API at localhost:9090/v1/config. Example: {"map": "forest", "mode": "ranked"}.
Match identifier for matchmaking integration. Auto-generated if not provided. Use this to link servers to your matchmaking system.
Additional environment variables injected into the game container. Merged with project-level defaults (server-level values override project defaults). Example: {"LOG_LEVEL": "debug"}.
Override the project-level port configuration for this specific server. If omitted, the project's default port_configs are used.
Server created and launching. The network_ports array contains connection details for game clients. Poll GET /servers/{instance_id} until status is running.
Complete details of a game server instance, including connection info, status, and configuration.
Unique identifier for this server instance (UUID). Use this to reference the server in all other API calls.
Display name of the server, as provided when starting.
Current server status. "launching": machine is being created and game is starting up. "running": game is ready and accepting connections. "stopped": server has been shut down.
launching, running, stopped List of allocated network ports with connection details. Give host:external_port to game clients for connecting. Empty if the server has stopped.
Command-line arguments passed to the game executable. Null if none were provided.
Server type. "match_based" (default): short-lived servers for individual matches. "persistent_world": long-running servers for persistent game worlds.
match_based, persistent_world Machine size this server is running on (e.g., "small", "medium", "dedicated-large").
Region where this server is deployed (e.g., "us-east", "eu-west").
Build name this server was started with (e.g., "default", "beta").
Build version number this server is running. Null if no specific version was resolved.
ISO 8601 timestamp when the server transitioned to "running" status (game ports opened). Null if still launching or never reached running state.
ISO 8601 timestamp when the server was stopped. Null if the server is still active.
Whether the game process auto-restarts on crash (max 10 retries).
Arbitrary metadata attached to this server. Null if no custom data was provided.
Time-to-live in seconds. The server auto-stops after this duration from start. Null if no TTL was set (server runs until explicitly stopped).
Whether this server was claimed from the pre-provisioned pool. Pool servers have faster startup times (~5s vs ~30s).
ISO 8601 timestamp when this pool server was claimed for use. Null for non-pool servers or unclaimed pool machines.
Match identifier for matchmaking integration. Auto-generated if not provided at start time.
ISO 8601 timestamp when the server instance was created in the database.
ISO 8601 timestamp of the last update to this server record.