PUT Users
Contents
Updates a user with new attributes.
Endpoint URL: https://api.carnivalmobile.com/v6/users/:user_id
Parameters
Path Parameters
Name | Type | Required | Definition |
---|---|---|---|
user_id | string | Yes | The Sailthru Mobile user ID |
Body Parameters
Name | Type | Required | Definition |
---|---|---|---|
user | object | Yes | JSON model of User Attributes |
Examples
Date
# Single attribute
curl -X PUT -u :$API_KEY -d \
'{
"user": {
"custom": {
"my_date": {
"value": "2012-04-23T18:25:00Z",
"type" : "date"
}
}
}
}' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v6/users/$user_id
# Array
curl -X PUT -u :$API_KEY -d \
'{
"user": {
"custom": {
"my_dates_key": {
"value": ["2012-04-23T18:25:00Z", "2012-05-23T18:25:00Z"],
"type": "date"
}
}
}
}' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v6/users/$user_id
String
# Single attribute
curl -X PUT -H "Accept: application/json" -u :API_KEY -d \
'{
"user": {
"custom": {
"my_string_key": {
"value": "My string value",
"type" : "string"
}
}
}
}' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v6/users/:user_id
# Array
curl -X PUT -u :API_KEY -d \
'{
"user": {
"custom": {
"my_strings_key": {
"value": ["Hello", "there"],
"type" : "string"
}
}
}
}' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v6/users/:user_id
Boolean
# Booleans can only be set as single attributes
curl -X PUT -H "Accept: application/json" -u :API_KEY -d \
'{
"user": {
"custom": {
"my_boolean_key": {
"value": true,
"type": "boolean"
}
}
}
}' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v6/users/:user_id
Floan
# Single attribute
curl -X PUT -H "Accept: application/json" -u :API_KEY -d \
'{
"user":{
"custom": {
"my_float_key": {
"value": 2.14,
"type": "float"
}
}
}
}' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v6/users/:user_id
# Array
curl -X PUT -u :API_KEY -d \
'{
"user": {
"custom": {
"my_floats_key": {
"value": [23.2, 3.141],
"type": "float"
}
}
}
}' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v6/users/:user_id
Integer
# Single attribute
curl -X PUT -H "Accept: application/json" -u :API_KEY -d \
'{
"user" :{
"custom": {
"my_integer_key": {
"value": 123,
"type": "integer"
}
}
}
}' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v6/users/:user_id
# Array
curl -X PUT -u :API_KEY -d \
'{
"user": {
"custom": {
"my_integers_key": {
"value": [23, 3],
"type": "integer"
}
}
}
}' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v6/users/:user_id
Multiple Types
# You can set multiple attributes in the same request
curl -X PUT -H "Accept: application/json" -u :API_KEY -d \
'{
"user": {
"custom": {
"release_date": {
"value": "1965-12-03T01:15:00Z",
"type" : "date"
},
"favorite_song": {
"value": "Drive My Car",
"type" : "string"
},
"starred_tracks": {
"value": [1, 6, 11],
"type": "integer"
}
}
}
}' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v6/users/:user_id
Result Format
202 Accepted
{
"custom": {
"my key 1": {
"value": "custom attribute value",
"type": "string"
}
}
}
{
"error":"unauthorized"
}
403 Forbidden
{
"error":"your api client does not have the correct roles"
}
404 Note Found
{}
// No user was found for this user id
This endpoint updates an existing user with new attributes.
Upon a successful request, existing attributes are merged (not replaced) with the attributes you sent in the request.
If a User ID exists across multiple devices, all the devices belonging to that User ID will be updated.
Valid Types
Data type | Ranges/valid values | Example | Notes | Can be sent as array |
---|---|---|---|---|
|
|
|
Floating point numbers are accepted but they will be truncated to an Values out of range will be discarded. |
Yes |
|
Single-precision 32-bit IEEE 754 floating point. |
|
Floats greater than 32-bit will be converted to scientific notation. |
Yes |
|
UTF-8 character encoding |
|
Maximum 255 characters long |
Yes |
|
ISO 8601, e.g. |
|
Yes |
|
|
|
No |
Custom Attribute Limits
There are limits in place on the maximum number of custom attributes allowed as well as the length (size) of strings and arrays.
- A maximum of 50 custom attributes is allowed per device. If you exceed this amount any new attributes being set will be discarded.
- String values that have more than 255 characters will be truncated. The limitation is on the character length, not on the size in bytes.
- Arrays with more than 50 elements will be truncated.
Key Name Restrictions
There are some restrictions in place on the key name, these are:
- Only letters, numbers, underscore and dash are valid characters.
- Leading spaces will be removed.
" my_string_key "
will become"my_string_key"
. - Invalid characters other than spaces and dots will be removed.
"my_string_key~~~~"
will become"my_string_key"
. - Spaces and dots will be replaced for underscores.
"my string.key"
will become"my_string_key"
. - Keys will be truncated to a maximum of 255 characters.
- Invalid keys (including keys exclusively made of invalid characters) will simply be discarded and no error will be returned.