Pointzi allows you to add attributes to your user for personalisation and targeting or creating real-time segments.


Use this API to create and/or update one or more tags for one or more sh_cuids.


The sh_cuid is a very important concept in StreetHawk. The sh_cuid is a tag, that uniquely identifies a User. You have to set this tag from the client SDKs (iOS, Android). We encourage you to use an ID that is meaningful to you - an email address, an account number etc.

If you are concerned about privacy, then you can also use a magic identifier, hash or UUID - just as long as this is in your backend.


The sh_cuid will be used to link Users in your backend to our backend. If multiple Installs are identified by the same sh_cuid, all of them will be tagged. If an Install is identified by the same sh_cuid later, the tags will not be copied automatically. You will have to do it manually. Setting a tag twice will override the first tag. 

You can submit a list of 100 tags per request. 


Authentication: Must use the App Key and the Auth Token that can be found on the Settings Page


EndPoint: /v3/tags


Method: POST, Content-Type: application/json


The POST payload needs to be a JSON list of dictionaries like the following:    

[
{
"sh_cuid": "hawk-example@acme.com",
"key": "nickname",
"string": "hawk"
}, {
"sh_cuid": "hawk-example@acme.com",
"key": "level",
"numeric": 42
}, {
"sh_cuid": "hawk-example@acme.com",
"key": "joined",
"datetime": "2015-12-23"
}
] 

 

If you want to submit only one tag, you still have to submit a list. For performance reasons (on both your and our end) you should bundle tags whenever possible.

 

Parameter Example Description
sh_cuid user12345@gmail.com, md5(email), <id> See above
key "nickname", "level", "joined"  The tag's name. Limit: 30 characters.
string "Hawk"  A string value to tag the "key" with.
numeric 42 A numeric value to tag the "key" with.
datetime "2015-11-23 12:35:48" A datetime value to tag the "key" with.


Response:


In case all tags were correct, the server returns the following JSON response and HTTP Code 200:

{
"status": "OK"
}


In case of any errors the HTTP Code will be != 200 and the response will look like the following: 

{
"__all__": ["list", "of", "generic", "errors"],
"5": ["errors", "for", "item", "5"]
}

 Even if one or more tags failed to be inserted and an error is returned, other tags that have been submitted correctly are still processed. The index (starting from 0) indicates which dictionary(ies) had issues.