Skip to content

Install/User Tagging

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


The sh_cuid is a very important concept in Pointzi. 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.

From your app

To tag users from your app place the following snippet just after your registration and login calls.


[StreetHawk tagCuid:@"YourUniqueID"]; //unique id in your system, for example customer's login id


SHApp.sharedInstance().tagCuid("") //unique id in your system, for example customer's login id

From your back end

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

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": "",
"key": "nickname",
"string": "hawk"
}, {
"sh_cuid": "",
"key": "level",
"numeric": 42
}, {
"sh_cuid": "",
"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, 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.


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.