curl --request PATCH \
--url https://panel.metricanic.com/api/v1/affiliate-networks/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"clickIdParam": "click_id"
}
'import requests
url = "https://panel.metricanic.com/api/v1/affiliate-networks/{id}"
payload = { "clickIdParam": "click_id" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({clickIdParam: 'click_id'})
};
fetch('https://panel.metricanic.com/api/v1/affiliate-networks/{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://panel.metricanic.com/api/v1/affiliate-networks/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'clickIdParam' => 'click_id'
]),
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://panel.metricanic.com/api/v1/affiliate-networks/{id}"
payload := strings.NewReader("{\n \"clickIdParam\": \"click_id\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://panel.metricanic.com/api/v1/affiliate-networks/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"clickIdParam\": \"click_id\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.metricanic.com/api/v1/affiliate-networks/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"clickIdParam\": \"click_id\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"id": "8d9e0f1a-2b3c-4d5e-8f6a-7b8c9d0e1f2a",
"name": "ExampleAds",
"displayName": "ExampleAds",
"clickIdEnabled": true,
"clickIdParam": "click_id",
"conversionPostbackTemplate": null,
"status": "active",
"createdAt": "2026-05-19T16:40:22.000Z"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}Update affiliate network
Partially updates an affiliate network. Only provided fields change. Returns the updated entity.
curl --request PATCH \
--url https://panel.metricanic.com/api/v1/affiliate-networks/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"clickIdParam": "click_id"
}
'import requests
url = "https://panel.metricanic.com/api/v1/affiliate-networks/{id}"
payload = { "clickIdParam": "click_id" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({clickIdParam: 'click_id'})
};
fetch('https://panel.metricanic.com/api/v1/affiliate-networks/{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://panel.metricanic.com/api/v1/affiliate-networks/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'clickIdParam' => 'click_id'
]),
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://panel.metricanic.com/api/v1/affiliate-networks/{id}"
payload := strings.NewReader("{\n \"clickIdParam\": \"click_id\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://panel.metricanic.com/api/v1/affiliate-networks/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"clickIdParam\": \"click_id\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.metricanic.com/api/v1/affiliate-networks/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"clickIdParam\": \"click_id\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"id": "8d9e0f1a-2b3c-4d5e-8f6a-7b8c9d0e1f2a",
"name": "ExampleAds",
"displayName": "ExampleAds",
"clickIdEnabled": true,
"clickIdParam": "click_id",
"conversionPostbackTemplate": null,
"status": "active",
"createdAt": "2026-05-19T16:40:22.000Z"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"requestId": "<string>"
}Authorizations
Workspace-scoped token sent in the Authorization header as Bearer . Access depends on the credential's allowed operations, read or write scope, and workspace subscription. Use an API key issued in the tracker for Public API v1. MCP uses separate OAuth credentials.
Path Parameters
Body
Partial affiliate network update. All fields are optional, but the body must not be empty.
Trimmed before saving. Names are case-sensitive and unique among active affiliate networks in the workspace. Archived records do not reserve names.
1 - 160Trimmed query parameter name using letters, digits, underscores, or hyphens, up to 40 characters after trimming. Null or blank clears it. Required when clickIdEnabled is true.
Saved callback template. Accepts a path beginning /event/ or an absolute http(s) URL, including network macros. Whitespace, quotes, angle brackets, backticks, and backslashes are rejected. Null or blank clears it.
2048