Replace Offsite Audiences Job
curl --request PUT \
--url https://api.topsort.com/public/v1/offsite-ads/audiences/{audience-id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My user list audience",
"description": "This is a user list audience description."
}
'import requests
url = "https://api.topsort.com/public/v1/offsite-ads/audiences/{audience-id}"
payload = {
"name": "My user list audience",
"description": "This is a user list audience description."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'My user list audience',
description: 'This is a user list audience description.'
})
};
fetch('https://api.topsort.com/public/v1/offsite-ads/audiences/{audience-id}', 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.topsort.com/public/v1/offsite-ads/audiences/{audience-id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My user list audience',
'description' => 'This is a user list audience description.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.topsort.com/public/v1/offsite-ads/audiences/{audience-id}"
payload := strings.NewReader("{\n \"name\": \"My user list audience\",\n \"description\": \"This is a user list audience description.\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.topsort.com/public/v1/offsite-ads/audiences/{audience-id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My user list audience\",\n \"description\": \"This is a user list audience description.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/offsite-ads/audiences/{audience-id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My user list audience\",\n \"description\": \"This is a user list audience description.\"\n}"
response = http.request(request)
puts response.read_body{
"jobId": "123e4567-e89b-12d3-a456-426614174000",
"url": "https://offsite-ads-user-list-uploads.s3.us-east-2.amazonaws.com/123e4567-e89b-12d3-a456-426614174000.csv"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Offsite Ads API
Replace Offsite Audiences Job
Replace the contents of an existing offsite audience. This endpoint returns a new job id and presigned url for uploading the replacement audience CSV.
PUT
/
public
/
v1
/
offsite-ads
/
audiences
/
{audience-id}
Replace Offsite Audiences Job
curl --request PUT \
--url https://api.topsort.com/public/v1/offsite-ads/audiences/{audience-id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My user list audience",
"description": "This is a user list audience description."
}
'import requests
url = "https://api.topsort.com/public/v1/offsite-ads/audiences/{audience-id}"
payload = {
"name": "My user list audience",
"description": "This is a user list audience description."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'My user list audience',
description: 'This is a user list audience description.'
})
};
fetch('https://api.topsort.com/public/v1/offsite-ads/audiences/{audience-id}', 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.topsort.com/public/v1/offsite-ads/audiences/{audience-id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My user list audience',
'description' => 'This is a user list audience description.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.topsort.com/public/v1/offsite-ads/audiences/{audience-id}"
payload := strings.NewReader("{\n \"name\": \"My user list audience\",\n \"description\": \"This is a user list audience description.\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.topsort.com/public/v1/offsite-ads/audiences/{audience-id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My user list audience\",\n \"description\": \"This is a user list audience description.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/offsite-ads/audiences/{audience-id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My user list audience\",\n \"description\": \"This is a user list audience description.\"\n}"
response = http.request(request)
puts response.read_body{
"jobId": "123e4567-e89b-12d3-a456-426614174000",
"url": "https://offsite-ads-user-list-uploads.s3.us-east-2.amazonaws.com/123e4567-e89b-12d3-a456-426614174000.csv"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
A valid API key generated in Topsort's UI. Use the TSE API key if calling auctions or events API, otherwise use the TSC API key.
Path Parameters
The audience ID to replace.
Body
application/json
Response
Accepted
The unique identifier for the queued job.
Example:
"123e4567-e89b-12d3-a456-426614174000"
The presigned url to upload the audience csv file.
Presigned url must be used with PUT method and include the header Content-Type: text/csv.
Example:
"https://offsite-ads-user-list-uploads.s3.us-east-2.amazonaws.com/123e4567-e89b-12d3-a456-426614174000.csv"
Was this page helpful?
⌘I