Gigya Job Openings

gm.notifyAction REST

Skip to end of metadata
Go to start of metadata

Note: If you plan on integrating the Loyalty platform, we highly recommend reading the Loyalty - Gamification and User Behavior Guide. Loyalty is a premium Gigya platform that requires separate activation. If it is not yet a part of your existing site package, please contact Gigya Support via the Support link in the top menu of your Console Dashboard or email


This API notifies the Game Mechanics (GM) engine about an action that a user has taken in the site. There is no need to notify the GM engine about Gigya's default actions (actions that are initiated using Gigya’s plugins or APIs, such as sharing, commenting, etc.). Use this method to notify about custom user actions. You may read about setting up custom user actions in the Custom User Actions section of the Game Mechanics guide.


Request URL

Where <Data_Center> is:
  • - For the US data center.
  • - For the European data center.
  • - For the Australian data center.
  • - For the Russian data center.
  • - For the Chinese data center.

If you are not sure of your site's data center, see Finding Your Data Center.


UID string The unique ID of the user with which this method call is associated (i.e., the logged-in user whom is performing the action on the client-side and triggering the REST call). This is the UID you receive from Gigya after a successful login of this user. See User.UID for more information.
  • The UID parameter is required when you call this method through one of the following interfaces:  PHP SDKPython SDKJava SDKNET SDK  or if you are using the REST API directly with Gigya's proprietary authorization method.
  • The UID parameter is not required when you call this method through one of the following interfaces: Android SDK, iOS SDK or if you are using an external OAuth2 SDK.
Note: If you are using account linking then the UID would be your site user ID. To learn more about Social Login with account linking (best practice), please refer to the Social Login Implementation guide.
actionstringThe identifier of the action that took place. The identifier should be the same as defined in the Actions Setup page in Gigya's website. The action can be either a custom action or an action called _points, which is used to manually grant (or reduce) points to challenges. You may read about points in the GM Points section of the Loyalty - Gamification and User Behavior guide, and about setting up site custom actions in the Custom User Actions section of the Loyalty - Gamification and User Behavior guide.
formatstringDetermines the format of the response. The options are:
  • json (default)
  • jsonp - if the format is jsonp then you are required to define a callback method (see parameter below).
callbackstringThis parameter is relevant only when the format parameter is set to jsonp (see above). In such cases this parameter should define the name of the callback method to be called in the response, along with the jsonp response data.
contextJSON objectA developer-created object that is passed back unchanged to the application as one of the fields in the server response.

The number of points to assign to the action. When this parameter is set, the action will grant this number of points to all the challenges with which the the action is associated, and by this it will override the server point configuration. The points can be a positive number when you want to award points for the action, or a negative number when you want to reduce points for the action. This parameter will not apply if the request is made from an untrusted source (client or untrusted access token). 

Valid integers for points may only include whole numbers (i.e., 7, 25, 3006; NOT 1.25, 5.75, etc).

challengeIDsstring or array
A comma-delimited list of Challenge IDs or an array of challenge IDs, i.e. "['_X1','_X2']". When this parameter is specified, the points apply to the listed challenges in addition to the site configurations. 
This parameter is used only in conjunction with the points parameter, otherwise it is ignored.
actionAttributesJSON objectIn Gamification your users receive points for actions they perform on your site, in this case the custom user action grants the user points. Action Attributes may be used to annotate actions with additional information, such as the section of the web site that generated the action. If you set here the actionAttributes, each time a user performs this action, the action also receives an attribute (or attributes), for example "tv-show":"glee", which can mean that the action was performed on the "Glee" page of the site. 
actionAttributes contain a JSON object comprised of a series of attribute keys (categories) with associated values. You can also use a generic "tags" key.

No more than three values can be given, they can be with a single key or each have their own key.

For more information see Variants and Action Attributes. Action attributes are later used to filter GM Plugins by a certain attribute.
Example:  {"<attribute key1>": ["<attribute value1>", "<attribute value2>"],  "<attribute key2>": "<attribute value3>" }

Authorization Parameters

Each REST API request must contain identification and authorization parameters.

Some REST APIs may function without these authorization parameters, however, when that occurs, these calls are treated as client-side calls and all client-side rate limits will apply. In order to not reach client-side IP rate limits that may impact your implementation when using server-to-server REST calls, it is Recommended Best Practice to always sign the request or use a secret. A non-exhaustive list of REST APIs that this may apply to are as follows:

  • accounts.login
  • socialize.login
  • accounts.notifyLogin
  • socialize.notifyLogin
  • accounts.finalizeRegistration
  • accounts.linkAccounts

Please refer to the Authorization Parameters section for details. 


Response Data

errorCode integer The result code of the operation. Code '0' indicates success, any other number indicates failure. For a complete list of error codes, see the Error Codes table.
errorMessage string A short textual description of an error, associated with the errorCode, for logging purposes. This field will appear in the response only in case of an error.
errorDetails string This field will appear in the response only in case of an error and will contain the exception info, if available.
fullEventName string The full name of the event that triggered the response. This is an internally used parameter that is not always returned and should not be relied upon by your implementation.
callId string Unique identifier of the transaction, for debugging purposes.
time string The time of the response represented in ISO 8601 format, i.e., yyyy-mm-dd-Thh:MM:ss.SSSZ or
statusCode integer The HTTP response code of the operation. Code '200' indicates success.
This property is deprecated and only returned for backward compatibility.
statusReason string A brief explanation of the status code.
This property is deprecated and only returned for backward compatibility.



Response Example

        "statusCode": 200,
        "errorCode": 0,
        "statusReason": "OK",
        "callId": "bb5d9224614946c58a6771a081cddb9a",
        "time": "2015-03-22T11:42:25.943Z"