PC & Console Server-to-Server (S2S) API Endpoint Reference

PC and Console game attribution is an enterprise feature. To learn more about this feature, read our PC and Console Game Attribution FAQ or reach out to your Customer Success Manager.

 

Session Notification Endpoint

GET https://s2s.singular.net/api/v1/launch

Use the session notification endpoint to report all game launches (first, repeat sessions) to this endpoint in as near real-time as possible.  The first game launch received by Singular for an install identified by the Singular Device ID, is used for attribution.

Session Parameters

Parameter Description Constraints Example
a Your Singular account’s “SDK” key, in “Developer Tools -> SDK Integration > SDK Keys” Required your_org_name_sh868sdjv
p Platform of the game, must be  following supported values:
pc, xbox, playstation, nintendo, metaquest

Required

Supported values only

pc
i A game identifier value unique for your game.  Use the same value if the same game is distributed on multiple platforms.  

Required

Reverse DNS notation

Case Sensitive

com.singular.game
sdid

Singular Device ID that Singular uses to identify unique installations and game activity for a user.

This UUID should be generated by the game/server and it is recommended to be generated at the moment of first game launch (install).

UUID (Version 4) 49c2d3a6-326e-4ec5-a16b-0a47e34ed953
match_id

Identifier that can be used for attribution, must be sent on the first game launch for the user. This value should match the "match_id" used in the Singular web SDK implementation. 

If the identifier is PII, it must be hashed (SHA-256)

 

Optional for deterministic attribution

If sent, must be on first game launch after install

matchid_12345
os

Operating System / Game System

Custom values are supported, but recommended values are suggested

Required

Custom Values supported

Platform = PC

  • windows
  • linux
  • macOS
  • steamOS

Platform = XBox

  • Xbox_one
  • Xbox_360
  • Xbox_series_s
  • xbox_series_x

Platform = Playstation

  • playstation_3
  • Playstation_4
  • playstation_5

Platform = Nintendo

  • nintendo_switch

Platform = Meta Quest

  • metaquest
  • metaquest_2
  • metaquest_pro
ve Operating System version Optional 22H2
av  App version or Game build  Optional  1.1.5.581823a
ip 

IP of the device at the time of game launch event

Required  172.58.29.235 
use_ip Extract the IP field from the HTTP request. If you set this to true, don't provide the ip parameter.

Optional

Boolean

false 
install_source 

The name of the game store that distributed the game

Custom values are supported, but recommendations are suggested

Required 

steam

epicgamestore

microsoftstore

gog

humblestore

xbox

playstation

nintendo

selfdistributed

[custom]

 

ua  User Agent of the device   Optional

Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 

global_properties

Key value pairs that can be defined and saved for the user. Defined values must be persisted on all subsequent calls. Not sending a value is considered unsetting the value.

Optional 

Up to 5 global properties. are supported, 200 characters long each Must be a URLEncoded JSON Object

%7B%22key1%22%3A%22value1%22%2C%
22key2%22%3A%22value2%22%7D

data_sharing_options

Pass this optional value to indicate the end-user's consent to share information. If set, this value must be persisted and passed on every subsequent /launch and /evt request for the user. See PC & Console User Privacy

Pass "limit_data_sharing":false to indicate that the user consented (opted in) to share their information.

Pass "limit_data_sharing":true if the user refused.

 

Optional

%7B%22limit_data_sharing%22%3Atrue%7D

install Install flag. 'true' if the session was the first after installing the app. 'false' otherwise. Required for Reinstall tracking capabilities.

Optional

Boolean 

true 
utime Time of the game launch in UNIX time. Optional 1483228800
umilisec Time of the game launch in milliseconds UNIX time. Optional  1483228800000
custom_user_id

User ID

Optional 123456789abcd 

 

Event Notification Endpoint

GET https://s2s.singular.net/api/v1/evt

Use the event notification endpoint to report all desired optional in-game events to this endpoint in as near real-time as possible. Passing in-game events are highly recommended and are used for analytics, reporting, and forwarding to various partners for optimization..

Event Parameters

Parameter Description Constraints Example
a Your Singular account’s “SDK” key, in “Developer Tools -> SDK Integration > SDK Keys” Required your_org_name_sh868sdjv
p Platform of the game, must be  following supported values:
pc, xbox, playstation, nintendo, metaquest

Required

Supported values only

pc
i A game identifier value unique for your game.  Use the same value if the same game is distributed on multiple platforms.  

Required

Reverse DNS notation

Case Sensitive

com.singular.app
sdid

Singular Device ID that Singular uses to identify unique installations and game activity for a user.

This UUID should be generated by the game/server and it is recommended to be generated at the moment of first game launch (install).

UUID 49c2d3a6-326e-4ec5-a16b-0a47e34ed953
n

The name of the in game event. 

It is highly recommended to use Singular's standard event naming convention.

Required sng_achievement_unlocked
e

Custom event attributes that provide rich information about the event, in JSON format.

It is highly recommended to use Singular's standard event attribute naming convention.

Optional

JSON

%7B%22sng_attr_content_id%22%3A5581%2C
sng_attr_content%22%3A%22XBox%22%2C%22
sng_attr_content_type%22%3A%22electronics%22%7D
is_revenue_event

Whether it's a revenue event. You can omit this if the event name is "__iap__" or a non-zero "amt" is provided.

Required for revenue events

true
amt

If a revenue event, the currency amount. This should be used in conjunction with the "cur" parameter.

Required for revenue events

2.51
cur

If revenue event, the ISO 4217 three-letter currency code. This should be used in conjunction with the "amt" parameter.

Required for revenue events

EUR
os

Operating System / Game System

Custom values are supported, but recommended values are suggested

Required

Custom Values supported

Platform = PC

  • windows
  • linux
  • macOS
  • steamOS

Platform = XBox

  • Xbox_one
  • Xbox_360
  • Xbox_series_s
  • xbox_series_x

Platform = Playstation

  • playstation_3
  • Playstation_4
  • playstation_5

Platform = Nintendo

  • nintendo_switch

Platform = Meta Quest

  • metaquest
  • metaquest_2
  • metaquest_pro
ve Operating System version Optional 22H2
av  App version or Game build  Optional  1.1.5.581823a
ip 

IP of the device at the time of in-game event

Required  172.58.29.235 
use_ip Extract the IP field from the HTTP request. If you set this to true, don't provide the ip parameter.

Optional

Boolean

false 
install_source 

The name of the game store that distributed the game

Custom values are supported, but recommendations are suggested

Required 

steam

epicgamestore

microsoftstore

gog

humblestore

xbox

playstation

nintendo

selfdistributed

[custom]

 

ua  User Agent of the device   Optional

Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 

global_properties

Key value pairs that can be defined and saved for the user. Defined values must be persisted on all subsequent calls. Not sending a value is considered unsetting the value.

Optional 

Up to 5 global properties. are supported, 200 characters long each Must be a URLEncoded JSON Object

%7B%22key1%22%3A%22value1%22%2C%
22key2%22%3A%22value2%22%7D

data_sharing_options

 

Pass this optional value to indicate the end-user's consent to share information. If set, this value must be persisted and passed on every subsequent /launch and /evt request for the user. See PC & Console User Privacy

Pass "limit_data_sharing":false to indicate that the user consented (opted in) to share their information.

Pass "limit_data_sharing":true if the user refused.

Optional

%7B%22limit_data_sharing%22%3Atrue%7D

utime Time of the in-game event in UNIX time. Optional 1483228800
umilisec Time of the in-game event in milliseconds UNIX time. Optional  1483228800000
custom_user_id

User ID

Optional 123456789abcd