API Reference

Unified Gaming. Optimized Performance. Build integrations and plugins with the NexusPlay SDK v4.2.

The NexusPlay REST API gives developers programmatic access to game libraries, player profiles, cloud saves, matchmaking queues, and installation pipelines. All endpoints use HTTPS and return JSON. Base URL: https://api.nexusplay.io/v4

Rate Limits

Standard tier: 1,200 requests per minute per API key. Enterprise tier: 10,000 requests per minute with burst allowance up to 15,000. Rate-limit headers included in every response.

SDK Downloads

Official SDKs available for Unity 2022+, Unreal Engine 5.2+, and native C++ / Rust bindings. npm package @nexusplay/sdk on the public registry.

Support

Join the developer Discord at discord.gg/nexusplay-dev or email api-support@nexusplay.io. SLA: 4-hour response for Enterprise, 24-hour for Standard.

Authentication

All API requests require authentication via Bearer tokens. NexusPlay supports OAuth 2.0 authorization code flow for user-facing integrations and API key authentication for server-to-server operations.

OAuth 2.0

Authorization Code Flow

Redirect users to https://auth.nexusplay.io/oauth/authorize with your client ID and requested scopes. After user consent, exchange the returned code for an access token at POST /oauth/token. Access tokens expire after 3,600 seconds; refresh tokens last 7 days.

Required scopes: games:read, profile:read, cloudsave:write, social:read

API Key

Server-to-Server Auth

Include your API key in the X-NexusPlay-API-Key header. Keys are scoped to specific endpoints and can be rotated from the Developer Console without downtime. Never embed API keys in client-side code.

Example header: X-NexusPlay-API-Key: npk_live_8f3a2b9c1d4e5f6a7b8c9d0e

Token Endpoint

POST /oauth/token

Exchanges an authorization code or refresh token for an access token. Accepts application/x-www-form-urlencoded. Returns access_token, token_type (always "Bearer"), expires_in, and refresh_token.

Response codes: 200 on success, 400 for invalid grant, 401 for revoked credentials, 429 for rate limit exceeded.

Endpoints

Core REST endpoints for game management, player data, cloud saves, and social features. All requests require a valid Bearer token or API key unless noted.

GET

/games

Retrieves the authenticated user's game library. Supports pagination with limit (1–100, default 20) and cursor parameters. Returns game ID, title, publisher, install status, last-played timestamp, and total playtime in seconds.

Example: GET /games?limit=50&sort=last_played

GET

/games/{gameId}

Fetches detailed metadata for a single game, including supported launch options, required dependencies, patch version, and regional availability. Returns 404 if the game is not in the user's library or the ID is invalid.

Example: GET /games/np_game_48291

GET

/players/{playerId}

Returns public profile data for a player: display name, avatar URL, account creation date, connected platforms (Steam, Epic, GOG), and online status. Private fields (email, friend list) require social:read scope and user consent.

Example: GET /players/np_player_77302

POST

/cloudsave/{gameId}

Uploads a save file for a specific game. Accepts a multipart/form-data body with the save blob (max 250 MB) and optional metadata tags. NexusPlay encrypts saves at rest using AES-256-GCM and replicates across three geographic regions.

Example: POST /cloudsave/np_game_48291 — returns save ID and ETag for conflict detection.

GET

/cloudsave/{gameId}/history

Lists all cloud save versions for a game, ordered newest-first. Each entry includes save ID, timestamp, file size, and a restore endpoint. Users can keep up to 50 historical saves per game; older versions are pruned automatically.

Example: GET /cloudsave/np_game_48291/history?limit=10

POST

/installations

Initiates a game installation on the user's default library path. Accepts JSON body with game_id, optional install_path, and modules array (e.g., ["base", "dlc_pack_2", "voice_pack"]). Returns a job ID for polling status via the /installations/{jobId} endpoint.

Example: POST /installations — body: {"game_id": "np_game_48291", "modules": ["base", "dlc_pack_2"]}

GET

/installations/{jobId}

Polls the status of an installation job. Returns status (queued, downloading, verifying, installing, complete, failed), progress (0–100), bytes_downloaded, estimated_seconds_remaining, and error details if applicable.

Example: GET /installations/inst_99283746

GET

/matchmaking/queues

Lists available matchmaking queues for a game with current player counts, average queue times, and supported regions. Useful for building custom lobby UIs or third-party matchmaking overlays.

Example: GET /matchmaking/queues?game_id=np_game_48291®ion=na_west

POST

/matchmaking/queues/{queueId}/join

Adds the authenticated player to a matchmaking queue. Returns a ticket ID for tracking queue position. Players can cancel their ticket via DELETE /matchmaking/tickets/{ticketId}. Queue timeouts default to 300 seconds.

Example: POST /matchmaking/queues/queueRankedNA/join

Try It Out — Postman Collection Download OpenAPI Spec (YAML)

API Reference

Unified Gaming. Optimized Performance. Build integrations and plugins with the NexusPlay SDK v4.2.

The NexusPlay REST API gives developers programmatic access to game libraries, player profiles, cloud saves, matchmaking queues, and installation pipelines. All endpoints use HTTPS and return JSON. Base URL: https://api.nexusplay.io/v4

Rate Limits

Standard tier: 1,200 requests per minute per API key. Enterprise tier: 10,000 requests per minute with burst allowance up to 15,000. Rate-limit headers included in every response.

SDK Downloads

Official SDKs available for Unity 2022+, Unreal Engine 5.2+, and native C++ / Rust bindings. npm package @nexusplay/sdk on the public registry.

Support

Join the developer Discord at discord.gg/nexusplay-dev or email api-support@nexusplay.io. SLA: 4-hour response for Enterprise, 24-hour for Standard.

Authentication

All API requests require authentication via Bearer tokens. NexusPlay supports OAuth 2.0 authorization code flow for user-facing integrations and API key authentication for server-to-server operations.

OAuth 2.0

Authorization Code Flow

Redirect users to https://auth.nexusplay.io/oauth/authorize with your client ID and requested scopes. After user consent, exchange the returned code for an access token at POST /oauth/token. Access tokens expire after 3,600 seconds; refresh tokens last 7 days.

Required scopes: games:read, profile:read, cloudsave:write, social:read

API Key

Server-to-Server Auth

Include your API key in the X-NexusPlay-API-Key header. Keys are scoped to specific endpoints and can be rotated from the Developer Console without downtime. Never embed API keys in client-side code.

Example header: X-NexusPlay-API-Key: npk_live_8f3a2b9c1d4e5f6a7b8c9d0e

Token Endpoint

POST /oauth/token

Exchanges an authorization code or refresh token for an access token. Accepts application/x-www-form-urlencoded. Returns access_token, token_type (always "Bearer"), expires_in, and refresh_token.

Response codes: 200 on success, 400 for invalid grant, 401 for revoked credentials, 429 for rate limit exceeded.

Endpoints

Core REST endpoints for game management, player data, cloud saves, and social features. All requests require a valid Bearer token or API key unless noted.

GET

/games

Retrieves the authenticated user's game library. Supports pagination with limit (1–100, default 20) and cursor parameters. Returns game ID, title, publisher, install status, last-played timestamp, and total playtime in seconds.

Example: GET /games?limit=50&sort=last_played

GET

/games/{gameId}

Fetches detailed metadata for a single game, including supported launch options, required dependencies, patch version, and regional availability. Returns 404 if the game is not in the user's library or the ID is invalid.

Example: GET /games/np_game_48291

GET

/players/{playerId}

Returns public profile data for a player: display name, avatar URL, account creation date, connected platforms (Steam, Epic, GOG), and online status. Private fields (email, friend list) require social:read scope and user consent.

Example: GET /players/np_player_77302

POST

/cloudsave/{gameId}

Uploads a save file for a specific game. Accepts a multipart/form-data body with the save blob (max 250 MB) and optional metadata tags. NexusPlay encrypts saves at rest using AES-256-GCM and replicates across three geographic regions.

Example: POST /cloudsave/np_game_48291 — returns save ID and ETag for conflict detection.

GET

/cloudsave/{gameId}/history

Lists all cloud save versions for a game, ordered newest-first. Each entry includes save ID, timestamp, file size, and a restore endpoint. Users can keep up to 50 historical saves per game; older versions are pruned automatically.

Example: GET /cloudsave/np_game_48291/history?limit=10

POST

/installations

Initiates a game installation on the user's default library path. Accepts JSON body with game_id, optional install_path, and modules array (e.g., ["base", "dlc_pack_2", "voice_pack"]). Returns a job ID for polling status via the /installations/{jobId} endpoint.

Example: POST /installations — body: {"game_id": "np_game_48291", "modules": ["base", "dlc_pack_2"]}

GET

/installations/{jobId}

Polls the status of an installation job. Returns status (queued, downloading, verifying, installing, complete, failed), progress (0–100), bytes_downloaded, estimated_seconds_remaining, and error details if applicable.

Example: GET /installations/inst_99283746

GET

/matchmaking/queues

Lists available matchmaking queues for a game with current player counts, average queue times, and supported regions. Useful for building custom lobby UIs or third-party matchmaking overlays.

Example: GET /matchmaking/queues?game_id=np_game_48291®ion=na_west

POST

/matchmaking/queues/{queueId}/join

Adds the authenticated player to a matchmaking queue. Returns a ticket ID for tracking queue position. Players can cancel their ticket via DELETE /matchmaking/tickets/{ticketId}. Queue timeouts default to 300 seconds.

Example: POST /matchmaking/queues/queueRankedNA/join

Try It Out — Postman Collection Download OpenAPI Spec (YAML)