curl --request PATCH \
--url https://api.tryfuse.ai/api/v1/business/website-tracking \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"domains": [
"<string>"
],
"trackedPages": [
"<string>"
],
"monthlyCreditLimit": 5000000
}
'import requests
url = "https://api.tryfuse.ai/api/v1/business/website-tracking"
payload = {
"domains": ["<string>"],
"trackedPages": ["<string>"],
"monthlyCreditLimit": 5000000
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({domains: ['<string>'], trackedPages: ['<string>'], monthlyCreditLimit: 5000000})
};
fetch('https://api.tryfuse.ai/api/v1/business/website-tracking', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"tracking": {
"domains": [
"brightpay.com"
],
"trackedPages": [
"pricing",
"home",
"product",
"faq"
],
"script": "<script type=\"text/javascript\" src=\"https://a.usbrowserspeed.com/cs?pid=ddae2e0bce828a30a7b24f94f87290780f71120eaf9f11353f234c3bd86512d3&puid=%7B%22userId%22%3A%2268540f8bb55e99628170c757%22%2C%22env%22%3A%22dev%22%7D\"></script>",
"credits": {
"limit": 5000,
"used": 1395
}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Update tracked domains/pages or the monthly credit limit
Update the tracked domains and page paths and/or the monthly deanonymization credit cap. Send at least one field. domains REPLACES the stored list (an empty array stops tracking) and trackedPages must be sent together with domains, because both ride one internal write that always sets the domain list. monthlyCreditLimit must not exceed the plan’s credit allowance; send null to remove the cap. The response is the full tracking state after the write, identical to GET /business/website-tracking. Rate limit: 30 requests per minute, 2000 per day.
Errors:
404WEBSITE_TRACKING_NOT_SET_UP— This account has no website-tracking record (no Webtraffic entry, or the caller resolves to no team owner) — set website tracking up in the app first.422VALIDATION_FAILED— No field sent,trackedPageswithoutdomains, a value outside its bounds, or a credit cap Webtraffic rejected as not a whole non-negative number.422CREDIT_LIMIT_EXCEEDS_PLAN— The requested monthly credit limit is higher than the plan’s credit allowance.429RATE_LIMITED— Per-user quota for this endpoint family exceeded (30 per minute, 2000 per day); retry after the Retry-After / RateLimit-Reset seconds.
Requires one of the following token scopes: intent.
curl --request PATCH \
--url https://api.tryfuse.ai/api/v1/business/website-tracking \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"domains": [
"<string>"
],
"trackedPages": [
"<string>"
],
"monthlyCreditLimit": 5000000
}
'import requests
url = "https://api.tryfuse.ai/api/v1/business/website-tracking"
payload = {
"domains": ["<string>"],
"trackedPages": ["<string>"],
"monthlyCreditLimit": 5000000
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({domains: ['<string>'], trackedPages: ['<string>'], monthlyCreditLimit: 5000000})
};
fetch('https://api.tryfuse.ai/api/v1/business/website-tracking', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"tracking": {
"domains": [
"brightpay.com"
],
"trackedPages": [
"pricing",
"home",
"product",
"faq"
],
"script": "<script type=\"text/javascript\" src=\"https://a.usbrowserspeed.com/cs?pid=ddae2e0bce828a30a7b24f94f87290780f71120eaf9f11353f234c3bd86512d3&puid=%7B%22userId%22%3A%2268540f8bb55e99628170c757%22%2C%22env%22%3A%22dev%22%7D\"></script>",
"credits": {
"limit": 5000,
"used": 1395
}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Authorizations
Your API token (af_…) as the Basic-auth username, with an empty password.
Body
Replacement list of the website domains you have installed the tracking tag on, 0 to 50 entries of 3 to 255 characters. You choose the values — there is no vocabulary endpoint; read the current list from GET /business/website-tracking (tracking.domains) and send it back with your edits, because the whole array replaces the stored list on every call and an omitted entry is dropped. Use the canonical form the app writes: a bare lower-case hostname with no scheme, path or port and with a leading www. removed, for example brightpay.com rather than https://www.brightpay.com/pricing. Entries are whitespace-trimmed by this API; case is preserved and duplicates are kept, so any other spelling is accepted and simply sits in the list unused. Entries do not combine into a query: this list records where the tag is installed and does not gate collection — visits are attributed by the puid inside the tag script, so editing or emptying this list neither starts nor stops tracking, only adding or removing the script from the page does.
503 - 255Replacement list of the page labels you want reported separately, up to 200 entries of 1 to 2048 characters. These are free-text names you choose, not URL paths: the app writes short lower-case labels such as pricing, home or product, and the label is echoed back verbatim as page on each visitor row. There is no vocabulary endpoint; read the current list from GET /business/website-tracking (tracking.trackedPages) and send it back with your edits, because the whole array replaces the stored list on every call and an omitted entry is dropped. Entries are whitespace-trimmed by this API; case is preserved and duplicates are kept. Entries do not combine into a query: each names one page reported on its own, and a visitor row carries at most one label. A label only yields data once the matching per-page tag script is installed on that page (the label is embedded in that script's puid), so adding a name here on its own is accepted and reports nothing. Must be sent together with domains because both ride one internal write that always replaces the domain list.
2001 - 2048Cap on the credits spent deanonymising visitors in one billing period: any whole number of credits from 0 to 10000000, or null to remove the cap and fall back to the plan's own allowance. Not a vocabulary — every integer in range is a legal value. A cap above the credits on your active subscription is rejected with 422 CREDIT_LIMIT_EXCEEDS_PLAN; an account with no active subscription is not checked against a plan. The counter it caps (tracking.credits.used) resets at the start of each billing period on monthly plans, and every 30 days or on renewal on annual plans. 0 stops deanonymisation until the cap is raised.
0 <= x <= 10000000Response
Success
Show child attributes
Show child attributes