curl --request POST \
--url https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/ctas \
--header 'Accept: <accept>' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"cta": {
"label": "Book a demo",
"start": 30,
"end": 90,
"link": "https://your-workspace.neetocal.com/meeting-with-oliver",
"position": "top-right",
"background_color": "#000000",
"text_color": "#FFFFFF",
"show_only_at_end": false
}
}
'const options = {
method: 'POST',
headers: {
'X-Api-Key': '<x-api-key>',
Accept: '<accept>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
cta: {
label: 'Book a demo',
start: 30,
end: 90,
link: 'https://your-workspace.neetocal.com/meeting-with-oliver',
position: 'top-right',
background_color: '#000000',
text_color: '#FFFFFF',
show_only_at_end: false
}
})
};
fetch('https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/ctas', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/ctas"
payload = { "cta": {
"label": "Book a demo",
"start": 30,
"end": 90,
"link": "https://your-workspace.neetocal.com/meeting-with-oliver",
"position": "top-right",
"background_color": "#000000",
"text_color": "#FFFFFF",
"show_only_at_end": False
} }
headers = {
"X-Api-Key": "<x-api-key>",
"Accept": "<accept>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "c47e2f81-6a90-4b3d-8e21-5f0c9d7b1a63",
"recording_id": "x9y8z7w6v5u4t3s2",
"label": "Book a demo",
"link": "https://your-workspace.neetocal.com/meeting-with-oliver",
"start": 30,
"end": 90,
"position": "top-right",
"background_color": "#000000",
"text_color": "#FFFFFF",
"show_only_at_end": false
}{
"error": "You are not authorized to perform this action."
}{
"error": "Recording does not exist."
}{
"error": "param is missing or the value is empty or invalid: cta"
}Add a CTA
Adds a call to action button that appears over the video between the given start and end times.
curl --request POST \
--url https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/ctas \
--header 'Accept: <accept>' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"cta": {
"label": "Book a demo",
"start": 30,
"end": 90,
"link": "https://your-workspace.neetocal.com/meeting-with-oliver",
"position": "top-right",
"background_color": "#000000",
"text_color": "#FFFFFF",
"show_only_at_end": false
}
}
'const options = {
method: 'POST',
headers: {
'X-Api-Key': '<x-api-key>',
Accept: '<accept>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
cta: {
label: 'Book a demo',
start: 30,
end: 90,
link: 'https://your-workspace.neetocal.com/meeting-with-oliver',
position: 'top-right',
background_color: '#000000',
text_color: '#FFFFFF',
show_only_at_end: false
}
})
};
fetch('https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/ctas', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/ctas"
payload = { "cta": {
"label": "Book a demo",
"start": 30,
"end": 90,
"link": "https://your-workspace.neetocal.com/meeting-with-oliver",
"position": "top-right",
"background_color": "#000000",
"text_color": "#FFFFFF",
"show_only_at_end": False
} }
headers = {
"X-Api-Key": "<x-api-key>",
"Accept": "<accept>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "c47e2f81-6a90-4b3d-8e21-5f0c9d7b1a63",
"recording_id": "x9y8z7w6v5u4t3s2",
"label": "Book a demo",
"link": "https://your-workspace.neetocal.com/meeting-with-oliver",
"start": 30,
"end": 90,
"position": "top-right",
"background_color": "#000000",
"text_color": "#FFFFFF",
"show_only_at_end": false
}{
"error": "You are not authorized to perform this action."
}{
"error": "Recording does not exist."
}{
"error": "param is missing or the value is empty or invalid: cta"
}{your-subdomain} with your workspace’s subdomain. Learn how to find your subdomain in Workspace subdomain.
Headers
API key. Refer to Authentication for more information.
Must be application/json.
application/json Path Parameters
The recording's id (UUID) or its public_link_id (the short code in the watch URL). Both are accepted.
Body
Hide child attributes
Hide child attributes
Text shown on the button.
"Book a demo"
Time in seconds at which the button appears.
30
Time in seconds at which the button disappears.
90
URL the button opens.
"https://your-workspace.neetocal.com/meeting-with-oliver"
Corner of the player the button is anchored to.
top-right, top-left, bottom-right, bottom-left Button background color, as a hex string.
"#000000"
Button text color, as a hex string.
"#FFFFFF"
Show the button only after the recording finishes.
Response
The CTA was created.
Unique identifier for the CTA.
Text shown on the button.
URL the button opens.
Time in seconds at which the button appears.
Time in seconds at which the button disappears.
Corner of the player the button is anchored to.
top-right, top-left, bottom-right, bottom-left Button background color, as a hex string.
Button text color, as a hex string.
Whether the button is shown only after the recording finishes.
Public link identifier of the recording.