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.
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
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
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.
/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
/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
/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
/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.
/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
/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"]}
/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
/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
/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
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.
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
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
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.
/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
/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
/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
/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.
/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
/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"]}
/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
/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
/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