PC & Console - API Endpoint Reference

PC & Console API Endpoint Reference

Complete API reference for PC and Console server-to-server endpoints, providing detailed parameter specifications and implementation examples for session tracking and event reporting.

Related references: PC & Console uses the same S2S endpoints as the rest of the suite. See the SESSION endpoint reference and EVENT endpoint reference for the mobile and web equivalents. This reference covers the PC & Console session and event endpoints.

Enterprise Feature: PC and Console game attribution is an enterprise feature. To learn more, read the PC and Console Game Attribution FAQ or contact your Customer Success Manager.

Integration Guide: For complete implementation instructions and best practices, see PC & Console S2S Integration Guide .


Session Notification Endpoint

Report game launches and sessions to Singular for install attribution, re-engagement tracking, and user retention analytics.

Endpoint Specification

Method URL
POST https://s2s.singular.net/api/v1/launch

Parameters are sent as an application/x-www-form-urlencoded request body. Include the following required header:

Content-Type: application/x-www-form-urlencoded

Purpose

Use Session Notification Endpoint to report all game launches (first and repeat sessions) in near real-time. First game launch received by Singular for install identified by Singular Device ID triggers attribution process.

Attribution Workflow:

  • First Session: Triggers install attribution matching against web campaign clicks
  • Subsequent Sessions: Tracked for user activity, retention, and re-engagement analytics
  • Real-Time Reporting: Send session notifications as close to actual game launch as possible

Session Parameters

Required Parameters

Parameter Details
a

Type: String
Required. Singular SDK Key for API authentication.
Retrieve from: Singular UI → Main Menu → Developer Tools .

Important: Do not use the Reporting API Key. Requests will be rejected.

Example: sdkKey_afdadsf7asf56

p

Type: String
Required. Case-sensitive. Platform where user plays game.
Supported Values:
Example: PC

  • PC
  • Xbox
  • Playstation
  • Nintendo
  • MetaQuest
i

Type: String
Required. Case-sensitive. Reverse DNS notation recommended. Game identifier unique for your game.

Critical: Must match Web SDK Product ID exactly for attribution to work. Use same value across all platforms for same game.

Example: com.singular.game

sdid

Type: UUIDv4
Required. UUID Version 4 format recommended. Singular Device ID identifying unique game installation and user activity.
Generation: Created by game/server at first launch, persists throughout game installation lifetime.
Example: 49c2d3a6-326e-4ec5-a16b-0a47e34ed953

os

Type: String
Required. Custom values supported. Operating System or Game System.
Recommended values by platform:
PC: windows, linux, macos, steamos
Xbox: xbox_one, xbox_360, xbox_series_s, xbox_series_x
PlayStation: playstation_3, playstation_4, playstation_5
Nintendo: nintendo_switch
Meta Quest: metaquest, metaquest_2, metaquest_pro
Example: windows

install_source

Type: String
Required. Custom values supported. Game store or distribution method.
Recommended Values:
Custom values supported.
Example: steam

  • steam
  • epicgamestore
  • microsoftstore
  • gog
  • humblestore
  • xbox
  • playstation
  • nintendo
  • metaquest
  • selfdistributed
ip

Type: String
Required. IPv4 or IPv6 format. Not required if use_ip=true . IP address of device at time of game launch.

Alternative: Use use_ip=true to extract the IP from the HTTP request header instead of passing it explicitly.

Example: 172.58.29.235


Optional Parameters

The following optional parameters are supported.

Parameter Details
install_ref

Type: String
Optional. First launch only. JSON URL-encoded Google Install Referrer information. Provides the most accurate attribution for Native PC games distributed through Google Play Games store.

Requirements:

  • Requires implementing the Play Games PC SDK to pass the value.
  • Must be sent on first game launch only

See Google Play for Native PC Install Referrer documentation for implementation details.
Example: %7B%22install_time_epoch_seconds%22%3A%221568939453%22
%2C%22install_referrer%22%3A%22utm_source%3Dgoogle-play%26utm_medium%3Dorganic%22%7D

match_id

Type: String
Optional. First launch only. Identifier for deterministic attribution matching web clicks to game installs.

Requirements:

  • Must be sent on first game launch only
  • Must match value from Web SDK implementation
  • If PII, must be hashed using SHA-256

See Match ID Attribution for implementation details.
Example: matchid_12345

av

Type: String
Optional. Application version or game build identifier.
Example: 1.1.5.581823a

global_properties

Type: JSON
Optional. URL-encoded JSON. Up to 5 properties, 200 characters max each. Key-value pairs saved for user and persisted across all subsequent requests.
Not sending previously set value unsets it.
Example: %7B%22key1%22%3A%22value1%22%7D

install

Type: Boolean
Optional. Install flag indicating first session after game installation. Required for reinstall tracking capabilities.
Example: true

utime

Type: Integer
Optional. UNIX timestamp (seconds). Timestamp of game launch in UNIX time.
Example: 1483228800

umilisec

Type: Integer
Optional. UNIX timestamp (milliseconds). Timestamp of game launch in UNIX time.
Example: 1483228800000

ve

Type: String
Optional. Example: 9.2

OS version of the device at session time.
ua

Type: String
Optional. URL-encoded User Agent string.
Raw: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15...
Example: Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2014_0...

use_ip

Type: Boolean
Optional. Instructs Singular to extract the IP address from the HTTP request instead of the ip parameter.

Limitations:

  • Prevents IP-based geolocation by Singular.
  • Supply a two-letter country code via the country parameter.
  • Mutually exclusive with the ip parameter—do not use both.
  • Must supply either ip or use_ip to avoid data rejection.

Example: true

data_sharing_options

Type: JSON
Optional. JSON URL-encoded end-user consent for data sharing. Must persist and be passed on all subsequent SESSION and EVENT requests.
User consented (opted-in):
User refused (opted-out):
Example: %7B%22limit_data_sharing%22%3Atrue%7D

{"limit_data_sharing":false}
{"limit_data_sharing":true}
custom_user_id

Type: String
Optional. Your internal user ID for cross-device tracking.

No PII: Do not pass personally identifiable information. Use a hashed or otherwise anonymized internal identifier, not raw email addresses, phone numbers, or names.

Example: 123456789abcd


Request Examples

Sample Implementations

CURL PYTHON JAVASCRIPT

Basic Session Request

curl -X POST "https://s2s.singular.net/api/v1/launch" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "ip=172.58.29.235"

First Launch with Match ID

curl -X POST "https://s2s.singular.net/api/v1/launch" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "ip=172.58.29.235" \
  --data-urlencode "match_id=abc123def456" \
  --data-urlencode "install=true"

Event Notification Endpoint

Partner Conversion API support: To forward these events to ad network partners through Singular's Conversion API integrations, include the standard optional event attributes (hashed first-party data such as eventId and ehash ). See Standard Event Attributes for Conversion API Integrations .

Report in-game events to Singular for analytics, campaign optimization, and partner forwarding.

V2 required as of July 15, 2026. Accounts created on or after July 15, 2026 must use Event Endpoint V2 (SDID-based); V1 is not available for new accounts. Existing customers already integrated on V1 are unaffected. Contact your Singular Customer Success Manager if you want to migrate to V2.

Endpoint Specification

Method URL
POST https://s2s.singular.net/api/v2/evt

Parameters are sent as an application/x-www-form-urlencoded request body. Include the following required header:

Content-Type: application/x-www-form-urlencoded

Purpose

Use Event Notification Endpoint to report all desired in-game events in near real-time. Event data used for analytics, reporting, partner optimization, and campaign performance measurement.

Event Best Practices:

  • Standard Events: Use Singular standard event names for automatic partner mapping
  • Real-Time Reporting: Send events as close to actual occurrence as possible
  • Revenue Events: Include revenue parameters for purchase tracking and ROI analysis

Event Parameters

Required Parameters

Parameter Details
a

Type: String
Required. Singular SDK Key for API authentication.
Retrieve from: Singular UI → Main Menu → Developer Tools .

Important: Do not use the Reporting API Key. Requests will be rejected.

Example: sdkKey_afdadsf7asf56

p

Type: String
Required. Case-sensitive. Platform where user plays game.
Supported Values: PC, Xbox, Playstation, Nintendo, MetaQuest
Example: PC

i

Type: String
Required. Case-sensitive. Reverse DNS notation recommended. Game identifier unique for your game.
Must match value used in session notifications and Web SDK Product ID.
Example: com.singular.game

sdid

Type: UUIDv4
Required. Singular Device ID identifying unique game installation.
Must match SDID used in session notifications.
Example: 49c2d3a6-326e-4ec5-a16b-0a47e34ed953

n

Type: String
Required. 32 ASCII characters max. Event name identifying in-game action or milestone.

Recommended: Use Singular standard event names for automatic partner integration.

Example: sng_achievement_unlocked

os

Type: String
Required. Custom values supported. Operating System or Game System.
Must match value used in session notifications.
Example: windows

install_source

Type: String
Required. Custom values supported. Game store or distribution method.
Must match value used in session notifications.
Example: steam

ip

Type: String
Required. IPv4 or IPv6 format. Not required if use_ip=true . IP address of device at time of event.
Example: 172.58.29.235


Optional Parameters

The following optional parameters are supported.

Parameter Details
e

Type: JSON
Optional. URL-encoded JSON, 500 ASCII characters max per attribute. Custom event attributes providing rich information about event.

Recommended: Use Singular standard attribute names for partner compatibility.

Example: %7B%22sng_attr_content_id%22%3A5581%7D

is_revenue_event

Type: Boolean
Required for revenue events. Marks event as revenue event.
Can be omitted if event name is __iap__ or non-zero amt provided.
Example: true

amt

Type: Number
Required for revenue events. Currency amount for revenue event.
Use with cur parameter.
Example: 2.51

cur

Type: String
Required for revenue events. ISO-4217 three-letter currency code for revenue event.
Use with amt parameter.
Reference: ISO-4217 Currency Codes
Example: EUR

av

Type: String
Optional. Application version or game build identifier.
Example: 1.1.5.581823a

global_properties

Type: JSON
Optional. URL-encoded JSON. Up to 5 properties, 200 characters max each. Key-value pairs saved for user.
Must persist across all subsequent requests if set.
Example: %7B%22key1%22%3A%22value1%22%7D

utime

Type: Integer
Optional. UNIX timestamp (seconds). Timestamp of event in UNIX time.
Example: 1483228800

umilisec

Type: Integer
Optional. UNIX timestamp (milliseconds). Timestamp of event in UNIX time.
Example: 1483228800000

ve

Type: String
Optional. Example: 9.2

OS version of the device at session time.
ua

Type: String
Optional. URL-encoded User Agent string.
Raw: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15...
Example: Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2014_0...

use_ip

Type: Boolean
Optional. Instructs Singular to extract the IP address from the HTTP request instead of the ip parameter.

Limitations:

  • Prevents IP-based geolocation by Singular.
  • Supply a two-letter country code via the country parameter.
  • Mutually exclusive with the ip parameter—do not use both.
  • Must supply either ip or use_ip to avoid data rejection.

Example: true

data_sharing_options

Type: JSON
Optional. JSON URL-encoded end-user consent for data sharing. Must persist and be passed on all subsequent SESSION and EVENT requests.
User consented (opted-in):
User refused (opted-out):
Example: %7B%22limit_data_sharing%22%3Atrue%7D

{"limit_data_sharing":false}
{"limit_data_sharing":true}
custom_user_id

Type: String
Optional. Your internal user ID for cross-device tracking.

No PII: Do not pass personally identifiable information. Use a hashed or otherwise anonymized internal identifier, not raw email addresses, phone numbers, or names.

Example: 123456789abcd


Request Examples

Sample Implementations

CURL PYTHON JAVASCRIPT

Standard Event

curl -X POST "https://s2s.singular.net/api/v2/evt" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "n=sng_level_achieved" \
  --data-urlencode 'e={"sng_attr_level":"5","sng_attr_score":"1250"}' \
  --data-urlencode "ip=172.58.29.235"

Revenue Event

curl -X POST "https://s2s.singular.net/api/v2/evt" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "n=__iap__" \
  --data-urlencode "is_revenue_event=true" \
  --data-urlencode "amt=9.99" \
  --data-urlencode "cur=USD" \
  --data-urlencode "ip=172.58.29.235"

Response Handling

Both endpoints return consistent JSON responses requiring validation of status field for success or error determination.

Response Format

Important: All responses return HTTP 200 status codes. Always validate response body's status field to determine success ( ok ) or failure ( error ).

For complete response code documentation and error handling strategies, see S2S Response Codes & Error Handling .


Additional Resources