curl --request PUT \
--url https://api.extole.io/v5/persons/{person_id}/shareables/{code} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"content": {
"description": "description",
"image_url": "image_url",
"partner_content_id": "partner_content_id",
"title": "title",
"url": "url"
},
"data": {
"data_key": "data_key"
},
"key": "key",
"label": "label",
"program_url": "program_url"
}
'import requests
url = "https://api.extole.io/v5/persons/{person_id}/shareables/{code}"
payload = {
"content": {
"description": "description",
"image_url": "image_url",
"partner_content_id": "partner_content_id",
"title": "title",
"url": "url"
},
"data": { "data_key": "data_key" },
"key": "key",
"label": "label",
"program_url": "program_url"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
content: {
description: 'description',
image_url: 'image_url',
partner_content_id: 'partner_content_id',
title: 'title',
url: 'url'
},
data: {data_key: 'data_key'},
key: 'key',
label: 'label',
program_url: 'program_url'
})
};
fetch('https://api.extole.io/v5/persons/{person_id}/shareables/{code}', 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.extole.io/v5/persons/{person_id}/shareables/{code}",
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([
'content' => [
'description' => 'description',
'image_url' => 'image_url',
'partner_content_id' => 'partner_content_id',
'title' => 'title',
'url' => 'url'
],
'data' => [
'data_key' => 'data_key'
],
'key' => 'key',
'label' => 'label',
'program_url' => 'program_url'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.extole.io/v5/persons/{person_id}/shareables/{code}"
payload := strings.NewReader("{\n \"content\": {\n \"description\": \"description\",\n \"image_url\": \"image_url\",\n \"partner_content_id\": \"partner_content_id\",\n \"title\": \"title\",\n \"url\": \"url\"\n },\n \"data\": {\n \"data_key\": \"data_key\"\n },\n \"key\": \"key\",\n \"label\": \"label\",\n \"program_url\": \"program_url\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.extole.io/v5/persons/{person_id}/shareables/{code}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"content\": {\n \"description\": \"description\",\n \"image_url\": \"image_url\",\n \"partner_content_id\": \"partner_content_id\",\n \"title\": \"title\",\n \"url\": \"url\"\n },\n \"data\": {\n \"data_key\": \"data_key\"\n },\n \"key\": \"key\",\n \"label\": \"label\",\n \"program_url\": \"program_url\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v5/persons/{person_id}/shareables/{code}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"content\": {\n \"description\": \"description\",\n \"image_url\": \"image_url\",\n \"partner_content_id\": \"partner_content_id\",\n \"title\": \"title\",\n \"url\": \"url\"\n },\n \"data\": {\n \"data_key\": \"data_key\"\n },\n \"key\": \"key\",\n \"label\": \"label\",\n \"program_url\": \"program_url\"\n}"
response = http.request(request)
puts response.read_body{
"code": "<string>",
"content": {
"description": "<string>",
"image_url": "<string>",
"partner_content_id": "<string>",
"title": "<string>",
"url": "<string>"
},
"created_date": "2025-10-24T02:00:00-07:00",
"data": {},
"key": "<string>",
"label": "<string>",
"link": "<string>",
"updated_date": "2025-10-24T02:00:00-07:00"
}Update a person shareable
Updates the content of an existing shareable identified by its share code for the specified person.
Fields omitted from the body are left unchanged — you do not need to send the whole resource.
curl --request PUT \
--url https://api.extole.io/v5/persons/{person_id}/shareables/{code} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"content": {
"description": "description",
"image_url": "image_url",
"partner_content_id": "partner_content_id",
"title": "title",
"url": "url"
},
"data": {
"data_key": "data_key"
},
"key": "key",
"label": "label",
"program_url": "program_url"
}
'import requests
url = "https://api.extole.io/v5/persons/{person_id}/shareables/{code}"
payload = {
"content": {
"description": "description",
"image_url": "image_url",
"partner_content_id": "partner_content_id",
"title": "title",
"url": "url"
},
"data": { "data_key": "data_key" },
"key": "key",
"label": "label",
"program_url": "program_url"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
content: {
description: 'description',
image_url: 'image_url',
partner_content_id: 'partner_content_id',
title: 'title',
url: 'url'
},
data: {data_key: 'data_key'},
key: 'key',
label: 'label',
program_url: 'program_url'
})
};
fetch('https://api.extole.io/v5/persons/{person_id}/shareables/{code}', 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.extole.io/v5/persons/{person_id}/shareables/{code}",
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([
'content' => [
'description' => 'description',
'image_url' => 'image_url',
'partner_content_id' => 'partner_content_id',
'title' => 'title',
'url' => 'url'
],
'data' => [
'data_key' => 'data_key'
],
'key' => 'key',
'label' => 'label',
'program_url' => 'program_url'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.extole.io/v5/persons/{person_id}/shareables/{code}"
payload := strings.NewReader("{\n \"content\": {\n \"description\": \"description\",\n \"image_url\": \"image_url\",\n \"partner_content_id\": \"partner_content_id\",\n \"title\": \"title\",\n \"url\": \"url\"\n },\n \"data\": {\n \"data_key\": \"data_key\"\n },\n \"key\": \"key\",\n \"label\": \"label\",\n \"program_url\": \"program_url\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.extole.io/v5/persons/{person_id}/shareables/{code}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"content\": {\n \"description\": \"description\",\n \"image_url\": \"image_url\",\n \"partner_content_id\": \"partner_content_id\",\n \"title\": \"title\",\n \"url\": \"url\"\n },\n \"data\": {\n \"data_key\": \"data_key\"\n },\n \"key\": \"key\",\n \"label\": \"label\",\n \"program_url\": \"program_url\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v5/persons/{person_id}/shareables/{code}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"content\": {\n \"description\": \"description\",\n \"image_url\": \"image_url\",\n \"partner_content_id\": \"partner_content_id\",\n \"title\": \"title\",\n \"url\": \"url\"\n },\n \"data\": {\n \"data_key\": \"data_key\"\n },\n \"key\": \"key\",\n \"label\": \"label\",\n \"program_url\": \"program_url\"\n}"
response = http.request(request)
puts response.read_body{
"code": "<string>",
"content": {
"description": "<string>",
"image_url": "<string>",
"partner_content_id": "<string>",
"title": "<string>",
"url": "<string>"
},
"created_date": "2025-10-24T02:00:00-07:00",
"data": {},
"key": "<string>",
"label": "<string>",
"link": "<string>",
"updated_date": "2025-10-24T02:00:00-07:00"
}Authorizations
Path Parameters
The Extole unique profile identifier of this user at Extole.
Shareable id parameter
.+Body
Response
Successful response
Unique shareable code used to generate this person's referral link.
Rendered content (subject, message, etc.) for this shareable. Absent if no content template is configured.
Show child attributes
Show child attributes
RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$"2025-10-24T02:00:00-07:00"
Named data parameters attached to this shareable.
Show child attributes
Show child attributes
Key identifying the shareable template or program slot.
Human-readable label for this shareable. Absent if no label was set.
Full referral link URL for this shareable.
RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$"2025-10-24T02:00:00-07:00"
