Accept a whitelisted terms of service link
curl --request POST \
--url https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept \
--header 'Authorization: Bearer <token>'import requests
url = "https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept', 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://production.hifi.com/v3/tos-link/{signedAgreementId}/accept",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "e6e0de1d-7d0b-4935-ba1a-71906064067e",
"createdAt": "2026-04-17T18:27:51.169Z",
"expiredAt": "2026-04-22T18:27:51.091Z",
"signed": true,
"sessionToken": "e3a92e74-19e0-4137-ab75-ae537832f342"
}{
"type": "UNAUTHORIZED",
"message": "Authentication required"
}{
"type": "RESOURCE_NOT_FOUND",
"message": "<string>",
"fields": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
]
}{
"type": "INTERNAL_SERVER_ERROR",
"message": "An internal server error occurred"
}Users
Accept a whitelisted terms of service link
Accept a Terms of Service link on behalf of a whitelisted signer.
POST
/
v3
/
tos-link
/
{signedAgreementId}
/
accept
Accept a whitelisted terms of service link
curl --request POST \
--url https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept \
--header 'Authorization: Bearer <token>'import requests
url = "https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept', 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://production.hifi.com/v3/tos-link/{signedAgreementId}/accept",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://production.hifi.com/v3/tos-link/{signedAgreementId}/accept")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "e6e0de1d-7d0b-4935-ba1a-71906064067e",
"createdAt": "2026-04-17T18:27:51.169Z",
"expiredAt": "2026-04-22T18:27:51.091Z",
"signed": true,
"sessionToken": "e3a92e74-19e0-4137-ab75-ae537832f342"
}{
"type": "UNAUTHORIZED",
"message": "Authentication required"
}{
"type": "RESOURCE_NOT_FOUND",
"message": "<string>",
"fields": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
]
}{
"type": "INTERNAL_SERVER_ERROR",
"message": "An internal server error occurred"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID of the signed agreement.
Response
Success
Signed agreement ID.
Timestamp when the Terms of Service link was created.
Timestamp when the Terms of Service link expires.
Whether the Terms of Service has been signed.
Session token for the Terms of Service signing session.
⌘I