{"_id":"55ed13930d968e2100de8352","parentDoc":null,"project":"55e67aaa9cc7c62b00c4a1ea","user":"55d2bd8e2463351700f67dd7","__v":1,"editedParams2":true,"version":{"_id":"55e67aab9cc7c62b00c4a1ed","project":"55e67aaa9cc7c62b00c4a1ea","__v":10,"createdAt":"2015-09-02T04:27:23.612Z","releaseDate":"2015-09-02T04:27:23.612Z","categories":["55e67aac9cc7c62b00c4a1ee","55e67b5556007d23005fee7d","55e67b5dde6fef23009480ca","55e680efde6fef23009480db","55e6829485a9741900314e99","561c61b4ad272c0d00a892df","586c014c0abf1d0f000d04d4","58991d2ad207df0f0002186b","589b8e1fdbb7cd190026732c","58b8ca5e3265d70f001788d4"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"editedParams":true,"category":{"_id":"55e67b5dde6fef23009480ca","__v":20,"pages":["55ed06c7023a81170018f163","55ed079b0d968e2100de8339","55ed0b530d968e2100de8345","55ed0bb078319821005005cf","55ed0df94fba582b0036a18a","55ed0e0c4fba582b0036a18d","55ed0ebd8da0b12100e64246","55ed10bec9d5b3350072ae9a","55ed11410d968e2100de834d","55ed118678319821005005d9","55ed121dc9d5b3350072ae9e","55ed12de8da0b12100e6424e","55ed13930d968e2100de8352","55ed140c4fba582b0036a196","55ed1902c9d5b3350072aebb","55ed197bc9d5b3350072aec0","55ee3dba1452cd0d009e5ee9","5600a22f0c703d19009531e1","5600c6b23aa0520d00da0c41","561da674e078f40d00eadd75"],"project":"55e67aaa9cc7c62b00c4a1ea","version":"55e67aab9cc7c62b00c4a1ed","sync":{"url":"","isSync":false},"reference":true,"createdAt":"2015-09-02T04:30:21.948Z","from_sync":false,"order":5,"slug":"rest-api","title":"REST API"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-09-07T04:33:23.735Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{\n\t\"device\": {\n    \"id\": \"123\",\n    \"user_id\": \"johnsmith:::at:::example.com\",\n    \"push_token\": \"d35c15ee345d07f42016738323aa4818e4deacd6****f54dea932a677\",\n    \"platform\": \"iOS\",\n    \"user_attributes\": {\n      \"my_date\": {\n        \"type\": \"date\",\n        \"value\": \"2012-04-23T18:25:00.000Z\"\n      }\n    },\n    \"user_events\": {\n      \"purchase_unlocked\": {\n        \"count\": 10,\n        \"first_happened_at\": \"2016-05-23T04:12:34.173Z\",\n        \"last_happened_at\": \"2016-05-24T04:12:34.173Z\"\n      }\n    },\n    \"location\": {\n      \"gps\": {\n        \"lat\": \"-41.12345\",\n        \"lng\": \"174.12345\"\n      },\n      \"geoip\": {\n        \"lat\": \"-41.0\",\n        \"lng\": \"174.0\",\n        \"city\": \"Wellington\",\n        \"country\": \"New Zealand\"\n      }\n    }\n  }\n}","name":""},{"status":401,"language":"json","code":"{\n  \"error\":\"unauthorized\"\n}","name":""},{"status":403,"language":"text","code":"{\n  \"error\":\"your api client does not have the correct roles\"\n}"}]},"settings":"","examples":{"codes":[{"code":"# Single attribute\ncurl -X PUT -u :API_KEY -d \\\n  '{\n    \"device\": {\n      \"user_attributes\": {\n        \"my_date\": {\n          \"value\": \"2012-04-23T18:25:00Z\",\n          \"type\" : \"date\"\n        }\n      }\n    }\n  }' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v5/devices/:device_id\n  \n# Array\ncurl -X PUT -u :API_KEY -d \\\n  '{\n    \"device\": {\n      \"user_attributes\": {\n        \"my_dates_key\": {\n          \"value\": [\"2012-04-23T18:25:00Z\", \"2012-05-23T18:25:00Z\"],\n          \"type\": \"date\"\n        }\n      }\n    }\n  }' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v5/devices/:device_id","name":"Date","language":"curl"},{"name":"String","language":"curl","code":"# Single attribute\ncurl -X PUT -u :API_KEY -d \\\n  '{\n    \"device\": {\n      \"user_attributes\": {\n        \"my_string_key\": {\n          \"value\": \"My string value\",\n          \"type\" : \"string\"\n        }\n      }\n    }\n  }' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v4/devices/:device_id\n\n# Array\ncurl -X PUT -u :API_KEY -d \\\n  '{\n    \"user\": {\n      \"custom\": {\n        \"my_strings_key\": { \n          \"value\": [\"Hello\", \"there\"],\n          \"type\" : \"string\"\n        }\n      }\n    }\n  }' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v4/devices/:device_id"},{"name":"Boolean","language":"curl","code":"# Booleans can only be set as single attributes\ncurl -X PUT -u :API_KEY -d \\\n  '{\n    \"device\": {\n      \"user_attributes\": {\n        \"my_boolean_key\": {\n          \"value\": true,\n          \"type\": \"boolean\"\n        }\n      }\n    }\n  }' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v4/devices/:device_id"},{"name":"Float","language":"curl","code":"# Single attribute\ncurl -X PUT -u :API_KEY -d \\\n  '{\n    \"device\": {\n      \"user_attributes\": {\n        \"my_float_key\": { \n          \"value\": 2.14, \n          \"type\": \"float\"\n        }\n      }\n    }\n  }' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v4/devices/:device_id\n  \n# Array\ncurl -X PUT -u :API_KEY -d \\\n  '{\n    \"device\": {\n      \"user_attributes\": {\n        \"my_floats_key\": {\n          \"value\": [23.2, 3.141], \n          \"type\": \"float\"\n        }\n      }\n    }\n  }' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v4/devices/:device_id"},{"name":"Integer","language":"curl","code":"# Single attribute\ncurl -X PUT -u :API_KEY -d \\\n  '{\n    \"device\": {\n      \"user_attributes\": {\n        \"my_integer_key\": { \n          \"value\": 123,\n          \"type\": \"integer\"\n        }\n      }\n    }\n  }' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v4/devices/:device_id\n  \n# Array\ncurl -X PUT -u :API_KEY -d \\\n  '{\n    \"device\": {\n      \"user_attributes\": {\n        \"my_integers_key\": { \n          \"value\": [23, 3], \n          \"type\": \"integer\"\n        }\n      }\n    }\n  }' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v4/devices/:device_id"},{"name":"Multiple types","language":"curl","code":"# You can set multiple attributes in the same request\ncurl -X PUT -u :API_KEY -d \\\n  '{\n    \"device\": {\n      \"user_attributes\": {\n        \"release_date\": {\n          \"value\": \"1965-12-03T01:15:00Z\",\n          \"type\" : \"date\"\n        },\n        \"favorite_song\": {\n          \"value\": \"Drive My Car\",\n          \"type\" : \"string\"\n        },\n        \"starred_tracks\": {\n          \"value\": [1, 6, 11],\n          \"type\": \"integer\"\n        }\n      }\n    }\n  }' -H 'Content-Type: application/json' -H 'Accept: application/json' https://api.carnivalmobile.com/v4/devices/:device_id"}]},"method":"put","auth":"required","params":[{"_id":"55ed121dc9d5b3350072ae9f","ref":"","in":"path","required":true,"desc":"The Carnival device ID","default":"","type":"string","name":"device_id"},{"_id":"55ed13930d968e2100de8353","ref":"","in":"body","required":true,"desc":"JSON model of device Attributes","default":"","type":"object","name":"device"}],"url":"/devices/:device_id"},"isReference":true,"order":3,"body":"This endpoint updates a device with new attributes.\n\nUpon a successful request, existing attributes are replaced (not merged) with the attributes you sent in the request.\n\n## Valid Types\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Data type\",\n    \"h-1\": \"Ranges/valid values\",\n    \"h-2\": \"Example\",\n    \"0-0\": \"`integer`\",\n    \"h-3\": \"Notes\",\n    \"0-1\": \"`-2,147,483,647` to `2,147,483,647`\",\n    \"0-2\": \"`12`, `24`, `25`\",\n    \"0-3\": \"Floating point numbers are accepted but they will be truncated to an `integer`. If you wish to keep the decimal part, use `float` instead.\\n\\nValues out of range will be discarded.\",\n    \"1-0\": \"`float`\",\n    \"1-2\": \"`12.343`, `123.33`\",\n    \"2-0\": \"`string`\",\n    \"2-2\": \"`Cody`, `gold`, `A string with a , comma`\",\n    \"2-1\": \"UTF-8 character encoding\",\n    \"2-3\": \"Maximum 255 characters long\",\n    \"3-0\": \"`date`\",\n    \"3-1\": \"ISO 8601, e.g. `YYYY-MM-ddTHH:mm:ssZ`\",\n    \"3-2\": \"`2017-02-06T18:25:32+0300`\",\n    \"4-0\": \"`boolean`\",\n    \"4-1\": \"`true` or `false`\",\n    \"1-1\": \"Single-precision 32-bit IEEE 754 floating point.\",\n    \"1-3\": \"Floats greater than 32-bit will be converted to scientific notation.\",\n    \"4-3\": \"\",\n    \"h-4\": \"Can be sent as array\",\n    \"0-4\": \"Yes\",\n    \"1-4\": \"Yes\",\n    \"2-4\": \"Yes\",\n    \"3-4\": \"Yes\",\n    \"4-4\": \"No\"\n  },\n  \"cols\": 5,\n  \"rows\": 5\n}\n[/block]\n#### Custom Attribute Limits\nThere are limits in place on the maximum number of custom attributes allowed as well as the length (size) of strings and arrays.\n\n* A maximum of **50** custom attributes is allowed per device. If you exceed this amount any new attributes being set will be discarded.\n* String values that have more than **255** characters will be truncated. The limitation is on the character length, not on the size in bytes.\n* Arrays with more than **50** elements will be truncated.\n\n#### Key Name Restrictions\nThere are some restrictions in place on the key name, these are:\n\n * **Only letters, numbers, underscore and dash are valid characters.**\n * Leading spaces will be removed. `\"         my_string_key         \"` will become `\"my_string_key\"`.\n * Invalid characters other than spaces and dots will be removed. `\"my_string_key~~~~\"` will become `\"my_string_key\"`.\n * Spaces and dots will be replaced for underscores. `\"my string.key\"` will become `\"my_string_key\"`.\n * Keys will be truncated to a maximum of 255 characters.\n * Invalid keys (including keys exclusively made of invalid characters) will simply be discarded and no error will be returned.","excerpt":"Updates a device with custom attributes","slug":"devices","type":"endpoint","title":"Devices"}

putDevices

Updates a device with custom attributes

Definition

{{ api_url }}{{ page_api_url }}

Parameters

Path Params

device_id:
required
string
The Carnival device ID

Body Params

device:
required
object
JSON model of device Attributes

Examples


Result Format


Documentation

This endpoint updates a device with new attributes. Upon a successful request, existing attributes are replaced (not merged) with the attributes you sent in the request. ## Valid Types [block:parameters] { "data": { "h-0": "Data type", "h-1": "Ranges/valid values", "h-2": "Example", "0-0": "`integer`", "h-3": "Notes", "0-1": "`-2,147,483,647` to `2,147,483,647`", "0-2": "`12`, `24`, `25`", "0-3": "Floating point numbers are accepted but they will be truncated to an `integer`. If you wish to keep the decimal part, use `float` instead.\n\nValues out of range will be discarded.", "1-0": "`float`", "1-2": "`12.343`, `123.33`", "2-0": "`string`", "2-2": "`Cody`, `gold`, `A string with a , comma`", "2-1": "UTF-8 character encoding", "2-3": "Maximum 255 characters long", "3-0": "`date`", "3-1": "ISO 8601, e.g. `YYYY-MM-ddTHH:mm:ssZ`", "3-2": "`2017-02-06T18:25:32+0300`", "4-0": "`boolean`", "4-1": "`true` or `false`", "1-1": "Single-precision 32-bit IEEE 754 floating point.", "1-3": "Floats greater than 32-bit will be converted to scientific notation.", "4-3": "", "h-4": "Can be sent as array", "0-4": "Yes", "1-4": "Yes", "2-4": "Yes", "3-4": "Yes", "4-4": "No" }, "cols": 5, "rows": 5 } [/block] #### 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.

User Information

Try It Out

put
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}