curl --request POST \
--url 'https://api.getvero.com/api/v2/users/track?auth_token=' \
--header 'Content-Type: application/json' \
--data '
{
"id": 1000,
"email": "test@example.com",
"channels": [
{
"type": "push",
"address": "UNIQUE_DEVICE_TOKEN",
"platform": "android"
}
],
"data": {
"first_name": "Damien",
"last_name": "Brzoska",
"timezone": -10
},
"extras": {
"created_at": "2023-05-30T04:46:31+0000",
"update_only": "true"
},
"preferences": {
"topics": [
{
"id": 1,
"status": "subscribed",
"name": "Daily digests"
}
]
}
}
'import requests
url = "https://api.getvero.com/api/v2/users/track?auth_token="
payload = {
"id": 1000,
"email": "test@example.com",
"channels": [
{
"type": "push",
"address": "UNIQUE_DEVICE_TOKEN",
"platform": "android"
}
],
"data": {
"first_name": "Damien",
"last_name": "Brzoska",
"timezone": -10
},
"extras": {
"created_at": "2023-05-30T04:46:31+0000",
"update_only": "true"
},
"preferences": { "topics": [
{
"id": 1,
"status": "subscribed",
"name": "Daily digests"
}
] }
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 1000,
email: 'test@example.com',
channels: [{type: 'push', address: 'UNIQUE_DEVICE_TOKEN', platform: 'android'}],
data: {first_name: 'Damien', last_name: 'Brzoska', timezone: -10},
extras: {created_at: '2023-05-30T04:46:31+0000', update_only: 'true'},
preferences: {topics: [{id: 1, status: 'subscribed', name: 'Daily digests'}]}
})
};
fetch('https://api.getvero.com/api/v2/users/track?auth_token=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getvero.com/api/v2/users/track?auth_token=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1000,
'email' => 'test@example.com',
'channels' => [
[
'type' => 'push',
'address' => 'UNIQUE_DEVICE_TOKEN',
'platform' => 'android'
]
],
'data' => [
'first_name' => 'Damien',
'last_name' => 'Brzoska',
'timezone' => -10
],
'extras' => [
'created_at' => '2023-05-30T04:46:31+0000',
'update_only' => 'true'
],
'preferences' => [
'topics' => [
[
'id' => 1,
'status' => 'subscribed',
'name' => 'Daily digests'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getvero.com/api/v2/users/track?auth_token="
payload := strings.NewReader("{\n \"id\": 1000,\n \"email\": \"test@example.com\",\n \"channels\": [\n {\n \"type\": \"push\",\n \"address\": \"UNIQUE_DEVICE_TOKEN\",\n \"platform\": \"android\"\n }\n ],\n \"data\": {\n \"first_name\": \"Damien\",\n \"last_name\": \"Brzoska\",\n \"timezone\": -10\n },\n \"extras\": {\n \"created_at\": \"2023-05-30T04:46:31+0000\",\n \"update_only\": \"true\"\n },\n \"preferences\": {\n \"topics\": [\n {\n \"id\": 1,\n \"status\": \"subscribed\",\n \"name\": \"Daily digests\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.getvero.com/api/v2/users/track?auth_token=")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1000,\n \"email\": \"test@example.com\",\n \"channels\": [\n {\n \"type\": \"push\",\n \"address\": \"UNIQUE_DEVICE_TOKEN\",\n \"platform\": \"android\"\n }\n ],\n \"data\": {\n \"first_name\": \"Damien\",\n \"last_name\": \"Brzoska\",\n \"timezone\": -10\n },\n \"extras\": {\n \"created_at\": \"2023-05-30T04:46:31+0000\",\n \"update_only\": \"true\"\n },\n \"preferences\": {\n \"topics\": [\n {\n \"id\": 1,\n \"status\": \"subscribed\",\n \"name\": \"Daily digests\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getvero.com/api/v2/users/track?auth_token=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1000,\n \"email\": \"test@example.com\",\n \"channels\": [\n {\n \"type\": \"push\",\n \"address\": \"UNIQUE_DEVICE_TOKEN\",\n \"platform\": \"android\"\n }\n ],\n \"data\": {\n \"first_name\": \"Damien\",\n \"last_name\": \"Brzoska\",\n \"timezone\": -10\n },\n \"extras\": {\n \"created_at\": \"2023-05-30T04:46:31+0000\",\n \"update_only\": \"true\"\n },\n \"preferences\": {\n \"topics\": [\n {\n \"id\": 1,\n \"status\": \"subscribed\",\n \"name\": \"Daily digests\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"message": "Success."
}{
"status": 400,
"message": "Bad Request"
}{
"status": 401,
"message": "Invalid authentication: You must provide a valid auth_token to access this resource."
}{
"status": 404,
"message": "The resource doesn't exist"
}{
"status": 500,
"message": "An error occurred with our API"
}Identify
This endpoint creates a new user profile if the user doesn’t exist yet. Otherwise, the user profile is updated based on the properties provided.
curl --request POST \
--url 'https://api.getvero.com/api/v2/users/track?auth_token=' \
--header 'Content-Type: application/json' \
--data '
{
"id": 1000,
"email": "test@example.com",
"channels": [
{
"type": "push",
"address": "UNIQUE_DEVICE_TOKEN",
"platform": "android"
}
],
"data": {
"first_name": "Damien",
"last_name": "Brzoska",
"timezone": -10
},
"extras": {
"created_at": "2023-05-30T04:46:31+0000",
"update_only": "true"
},
"preferences": {
"topics": [
{
"id": 1,
"status": "subscribed",
"name": "Daily digests"
}
]
}
}
'import requests
url = "https://api.getvero.com/api/v2/users/track?auth_token="
payload = {
"id": 1000,
"email": "test@example.com",
"channels": [
{
"type": "push",
"address": "UNIQUE_DEVICE_TOKEN",
"platform": "android"
}
],
"data": {
"first_name": "Damien",
"last_name": "Brzoska",
"timezone": -10
},
"extras": {
"created_at": "2023-05-30T04:46:31+0000",
"update_only": "true"
},
"preferences": { "topics": [
{
"id": 1,
"status": "subscribed",
"name": "Daily digests"
}
] }
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 1000,
email: 'test@example.com',
channels: [{type: 'push', address: 'UNIQUE_DEVICE_TOKEN', platform: 'android'}],
data: {first_name: 'Damien', last_name: 'Brzoska', timezone: -10},
extras: {created_at: '2023-05-30T04:46:31+0000', update_only: 'true'},
preferences: {topics: [{id: 1, status: 'subscribed', name: 'Daily digests'}]}
})
};
fetch('https://api.getvero.com/api/v2/users/track?auth_token=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getvero.com/api/v2/users/track?auth_token=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1000,
'email' => 'test@example.com',
'channels' => [
[
'type' => 'push',
'address' => 'UNIQUE_DEVICE_TOKEN',
'platform' => 'android'
]
],
'data' => [
'first_name' => 'Damien',
'last_name' => 'Brzoska',
'timezone' => -10
],
'extras' => [
'created_at' => '2023-05-30T04:46:31+0000',
'update_only' => 'true'
],
'preferences' => [
'topics' => [
[
'id' => 1,
'status' => 'subscribed',
'name' => 'Daily digests'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getvero.com/api/v2/users/track?auth_token="
payload := strings.NewReader("{\n \"id\": 1000,\n \"email\": \"test@example.com\",\n \"channels\": [\n {\n \"type\": \"push\",\n \"address\": \"UNIQUE_DEVICE_TOKEN\",\n \"platform\": \"android\"\n }\n ],\n \"data\": {\n \"first_name\": \"Damien\",\n \"last_name\": \"Brzoska\",\n \"timezone\": -10\n },\n \"extras\": {\n \"created_at\": \"2023-05-30T04:46:31+0000\",\n \"update_only\": \"true\"\n },\n \"preferences\": {\n \"topics\": [\n {\n \"id\": 1,\n \"status\": \"subscribed\",\n \"name\": \"Daily digests\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.getvero.com/api/v2/users/track?auth_token=")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1000,\n \"email\": \"test@example.com\",\n \"channels\": [\n {\n \"type\": \"push\",\n \"address\": \"UNIQUE_DEVICE_TOKEN\",\n \"platform\": \"android\"\n }\n ],\n \"data\": {\n \"first_name\": \"Damien\",\n \"last_name\": \"Brzoska\",\n \"timezone\": -10\n },\n \"extras\": {\n \"created_at\": \"2023-05-30T04:46:31+0000\",\n \"update_only\": \"true\"\n },\n \"preferences\": {\n \"topics\": [\n {\n \"id\": 1,\n \"status\": \"subscribed\",\n \"name\": \"Daily digests\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getvero.com/api/v2/users/track?auth_token=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1000,\n \"email\": \"test@example.com\",\n \"channels\": [\n {\n \"type\": \"push\",\n \"address\": \"UNIQUE_DEVICE_TOKEN\",\n \"platform\": \"android\"\n }\n ],\n \"data\": {\n \"first_name\": \"Damien\",\n \"last_name\": \"Brzoska\",\n \"timezone\": -10\n },\n \"extras\": {\n \"created_at\": \"2023-05-30T04:46:31+0000\",\n \"update_only\": \"true\"\n },\n \"preferences\": {\n \"topics\": [\n {\n \"id\": 1,\n \"status\": \"subscribed\",\n \"name\": \"Daily digests\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"message": "Success."
}{
"status": 400,
"message": "Bad Request"
}{
"status": 401,
"message": "Invalid authentication: You must provide a valid auth_token to access this resource."
}{
"status": 404,
"message": "The resource doesn't exist"
}{
"status": 500,
"message": "An error occurred with our API"
}Authorizations
Body
The unique identifier of the customer.
1000
The email of the customer.
"test@example.com"
A valid JSON array containing hashes of key/value pairs that represent the user's device token. Each hash should represent a single device token and include the fields type, address, and platform.
Show child attributes
Show child attributes
A valid JSON hash containing key value pairs that represent the custom user properties you want to update. The language, timezone and userAgent attributes are reserved properties that may be updated automatically by our SDKs. You can use these properties but bear in mind they may be overwritten if using our SDKs or integrations. All other keys are freeform and can be defined by you.
Show child attributes
Show child attributes
{ "first_name": "Damien", "last_name": "Brzoska", "timezone": -10 }
A valid JSON hash containing key/value pairs that represent the reserved, Vero-specific created_at and update_only properties. Refer to the note above.
Show child attributes
Show child attributes
Update user topic subscription preferences.
Show child attributes
Show child attributes
Was this page helpful?

