Tracking and attribution

Embed
Preview of the card
<a href="https://referalli.com/docs/ref-tracking-and-attribution"><img src="https://referalli.com/docs/_api/public/orgs/07f432f4-34b9-46a7-aaad-c0e395d2e4f9/spaces/2bf4f614-3630-4fbf-85f9-5ecafa6b7d97/pages/169efb26-9285-40a3-b38f-291c32ed539f/social-card.svg?v=3e7ae33eec8b" alt="Tracking and attribution" width="600" height="315"></a>
GEThttps://referally.15.204.158.166.sslip.io/v1/links
GET /v1/links
Code samples
cURL
curl -X GET "https://referally.15.204.158.166.sslip.io/v1/links"
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/links', {
  method: 'GET',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "GET",
    "https://referally.15.204.158.166.sslip.io/v1/links",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://referally.15.204.158.166.sslip.io/v1/links", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/links');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/links')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/links"))
    .GET()
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 A page of the list. Under referally-version 2026-10-21 the body is the plain array instead.
Example
{
  "object": "string",
  "data": [
    {
      "id": "string",
      "programId": "string",
      "partnerId": "string",
      "code": "string",
      "destinationUrl": "string",
      "shortUrl": "string",
      "clicks": 0,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  ],
  "has_more": true,
  "next_cursor": "string"
}
Schema
objectstringrequired
dataLink[]required
Show child parameters
idstringrequired
programIdstringrequired
partnerIdstringrequired
codestringrequired
Lowercase; matched case-insensitively.
destinationUrlstringrequired
shortUrlstringrequired
Absolute link, on the org's verified link domain when it has one.
clicksintegerrequired
createdAtstringrequired
has_morebooleanrequired
Whether another page follows; pass next_cursor as starting_after to get it.
next_cursorstringrequired
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
POSThttps://referally.15.204.158.166.sslip.io/v1/links
Create a tracked link
Request body application/json
programIdstringrequired
partnerIdstringrequired
codestring
destinationUrlstringrequired
{
  "programId": "string",
  "partnerId": "string",
  "code": "string",
  "destinationUrl": "string"
}
Code samples
cURL
curl -X POST "https://referally.15.204.158.166.sslip.io/v1/links" \
  -H "Content-Type: application/json" \
  -d '{"programId":"string","partnerId":"string","code":"string","destinationUrl":"string"}'
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/links', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"programId":"string","partnerId":"string","code":"string","destinationUrl":"string"}),
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://referally.15.204.158.166.sslip.io/v1/links",
    headers={
    "Content-Type": "application/json",
    },
    json={"programId": "string", "partnerId": "string", "code": "string", "destinationUrl": "string"},
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	req, _ := http.NewRequest("POST", "https://referally.15.204.158.166.sslip.io/v1/links", strings.NewReader(`{"programId":"string","partnerId":"string","code":"string","destinationUrl":"string"}`))
	req.Header.Set("Content-Type", "application/json")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/links');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"programId":"string","partnerId":"string","code":"string","destinationUrl":"string"}');
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/links')
req = Net::HTTP::Post.new(uri)
req['Content-Type'] = 'application/json'
req.body = '{"programId":"string","partnerId":"string","code":"string","destinationUrl":"string"}'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/links"))
    .header("Content-Type", "application/json")
    .method("POST", BodyPublishers.ofString("{\"programId\":\"string\",\"partnerId\":\"string\",\"code\":\"string\",\"destinationUrl\":\"string\"}"))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 OK
Example
{
  "id": "string",
  "programId": "string",
  "partnerId": "string",
  "code": "string",
  "destinationUrl": "string",
  "shortUrl": "string"
}
Schema
idstringrequired
programIdstringrequired
partnerIdstringrequired
codestringrequired
destinationUrlstringrequired
shortUrlstring
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
GEThttps://referally.15.204.158.166.sslip.io/v1/links/{id}/qr
GET /v1/links/{id}/qr
Parameters
idstringpathrequired
Code samples
cURL
curl -X GET "https://referally.15.204.158.166.sslip.io/v1/links/{id}/qr"
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/links/{id}/qr', {
  method: 'GET',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "GET",
    "https://referally.15.204.158.166.sslip.io/v1/links/{id}/qr",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://referally.15.204.158.166.sslip.io/v1/links/{id}/qr", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/links/{id}/qr');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/links/{id}/qr')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/links/{id}/qr"))
    .GET()
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 QR code for the short link.
"string"
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
GEThttps://referally.15.204.158.166.sslip.io/v1/coupons
GET /v1/coupons
Code samples
cURL
curl -X GET "https://referally.15.204.158.166.sslip.io/v1/coupons"
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/coupons', {
  method: 'GET',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "GET",
    "https://referally.15.204.158.166.sslip.io/v1/coupons",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://referally.15.204.158.166.sslip.io/v1/coupons", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/coupons');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/coupons')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/coupons"))
    .GET()
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 A page of the list. Under referally-version 2026-10-21 the body is the plain array instead.
Example
{
  "object": "string",
  "data": [
    {
      "id": "string",
      "programId": "string",
      "partnerId": "string",
      "code": "string",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  ],
  "has_more": true,
  "next_cursor": "string"
}
Schema
objectstringrequired
dataCoupon[]required
Show child parameters
idstringrequired
programIdstringrequired
partnerIdstringrequired
codestringrequired
createdAtstringrequired
has_morebooleanrequired
Whether another page follows; pass next_cursor as starting_after to get it.
next_cursorstringrequired
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
POSThttps://referally.15.204.158.166.sslip.io/v1/coupons
Create a coupon code
Request body application/json
programIdstringrequired
partnerIdstringrequired
codestringrequired
{
  "programId": "string",
  "partnerId": "string",
  "code": "string"
}
Code samples
cURL
curl -X POST "https://referally.15.204.158.166.sslip.io/v1/coupons" \
  -H "Content-Type: application/json" \
  -d '{"programId":"string","partnerId":"string","code":"string"}'
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/coupons', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"programId":"string","partnerId":"string","code":"string"}),
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://referally.15.204.158.166.sslip.io/v1/coupons",
    headers={
    "Content-Type": "application/json",
    },
    json={"programId": "string", "partnerId": "string", "code": "string"},
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	req, _ := http.NewRequest("POST", "https://referally.15.204.158.166.sslip.io/v1/coupons", strings.NewReader(`{"programId":"string","partnerId":"string","code":"string"}`))
	req.Header.Set("Content-Type", "application/json")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/coupons');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"programId":"string","partnerId":"string","code":"string"}');
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/coupons')
req = Net::HTTP::Post.new(uri)
req['Content-Type'] = 'application/json'
req.body = '{"programId":"string","partnerId":"string","code":"string"}'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/coupons"))
    .header("Content-Type", "application/json")
    .method("POST", BodyPublishers.ofString("{\"programId\":\"string\",\"partnerId\":\"string\",\"code\":\"string\"}"))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 OK
Example
{
  "id": "string",
  "code": "string"
}
Schema
idstringrequired
codestringrequired
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
POSThttps://referally.15.204.158.166.sslip.io/v1/referrals/associate
Attribute a new customer (the key server-side call)
Request body application/json
programIdstringrequired
customerRefstringrequired
anonIdstring
referralTokenstring
couponCodestring
emailHashstring
ipstring
uastring
idempotencyKeystring
occurredAtstring
emailDomainstring
{
  "programId": "string",
  "customerRef": "string",
  "anonId": "string",
  "referralToken": "string",
  "couponCode": "string",
  "emailHash": "string",
  "ip": "string",
  "ua": "string",
  "idempotencyKey": "string",
  "occurredAt": "2024-01-01T00:00:00Z",
  "emailDomain": "string"
}
Code samples
cURL
curl -X POST "https://referally.15.204.158.166.sslip.io/v1/referrals/associate" \
  -H "Content-Type: application/json" \
  -d '{"programId":"string","customerRef":"string","anonId":"string","referralToken":"string","couponCode":"string","emailHash":"string","ip":"string","ua":"string","idempotencyKey":"string","occurredAt":"2024-01-01T00:00:00Z","emailDomain":"string"}'
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/referrals/associate', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"programId":"string","customerRef":"string","anonId":"string","referralToken":"string","couponCode":"string","emailHash":"string","ip":"string","ua":"string","idempotencyKey":"string","occurredAt":"2024-01-01T00:00:00Z","emailDomain":"string"}),
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://referally.15.204.158.166.sslip.io/v1/referrals/associate",
    headers={
    "Content-Type": "application/json",
    },
    json={"programId": "string", "customerRef": "string", "anonId": "string", "referralToken": "string", "couponCode": "string", "emailHash": "string", "ip": "string", "ua": "string", "idempotencyKey": "string", "occurredAt": "2024-01-01T00:00:00Z", "emailDomain": "string"},
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	req, _ := http.NewRequest("POST", "https://referally.15.204.158.166.sslip.io/v1/referrals/associate", strings.NewReader(`{"programId":"string","customerRef":"string","anonId":"string","referralToken":"string","couponCode":"string","emailHash":"string","ip":"string","ua":"string","idempotencyKey":"string","occurredAt":"2024-01-01T00:00:00Z","emailDomain":"string"}`))
	req.Header.Set("Content-Type", "application/json")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/referrals/associate');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"programId":"string","customerRef":"string","anonId":"string","referralToken":"string","couponCode":"string","emailHash":"string","ip":"string","ua":"string","idempotencyKey":"string","occurredAt":"2024-01-01T00:00:00Z","emailDomain":"string"}');
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/referrals/associate')
req = Net::HTTP::Post.new(uri)
req['Content-Type'] = 'application/json'
req.body = '{"programId":"string","customerRef":"string","anonId":"string","referralToken":"string","couponCode":"string","emailHash":"string","ip":"string","ua":"string","idempotencyKey":"string","occurredAt":"2024-01-01T00:00:00Z","emailDomain":"string"}'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/referrals/associate"))
    .header("Content-Type", "application/json")
    .method("POST", BodyPublishers.ofString("{\"programId\":\"string\",\"customerRef\":\"string\",\"anonId\":\"string\",\"referralToken\":\"string\",\"couponCode\":\"string\",\"emailHash\":\"string\",\"ip\":\"string\",\"ua\":\"string\",\"idempotencyKey\":\"string\",\"occurredAt\":\"2024-01-01T00:00:00Z\",\"emailDomain\":\"string\"}"))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 OK
Example
{
  "referral": {
    "id": "string",
    "programId": "string",
    "partnerId": "string",
    "customerRef": "string",
    "source": "string",
    "matchedVia": "string",
    "confidence": 0,
    "clickId": "string",
    "linkId": "string",
    "status": "active",
    "ts": "2024-01-01T00:00:00Z",
    "windowExpiresAt": "2024-01-01T00:00:00Z",
    "touchCredits": [
      {
        "partnerId": null,
        "weight": null,
        "clickId": null
      }
    ],
    "reasoning": {
      "model": "string",
      "consideredTouchpoints": 0,
      "windowDays": 0,
      "notes": [
        null
      ],
      "noteCodes": [
        null
      ]
    },
    "orgId": "string"
  },
  "reasoning": {
    "notes": [
      "string"
    ]
  }
}
Schema
referralobjectrequired
null when no partner matched (not an error).
Show child parameters
idstringrequired
programIdstringrequired
partnerIdstringrequired
customerRefstringrequired
sourcestringrequired
matchedViastringrequired
confidencenumberrequired
clickIdstringrequired
linkIdstringrequired
statusstringrequired
active | pending_review | paused | void
tsstringrequired
windowExpiresAtstringrequired
touchCreditsobject[]required
Show child parameters
partnerIdstringrequired
weightnumberrequired
clickIdstringrequired
reasoningobjectrequired
Show child parameters
modelstring
consideredTouchpointsinteger
windowDaysinteger
notesstring[]
noteCodesReasonNote[]
orgIdstringrequired
reasoningobject
Show child parameters
notesstring[]required
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
GEThttps://referally.15.204.158.166.sslip.io/v1/referrals
List referrals
Code samples
cURL
curl -X GET "https://referally.15.204.158.166.sslip.io/v1/referrals"
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/referrals', {
  method: 'GET',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "GET",
    "https://referally.15.204.158.166.sslip.io/v1/referrals",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://referally.15.204.158.166.sslip.io/v1/referrals", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/referrals');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/referrals')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/referrals"))
    .GET()
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 A page of the list. Under referally-version 2026-10-21 the body is the plain array instead.
Example
{
  "object": "string",
  "data": [
    {
      "id": "string",
      "programId": "string",
      "partnerId": "string",
      "customerRef": "string",
      "source": "string",
      "matchedVia": "string",
      "confidence": 0,
      "clickId": "string",
      "linkId": "string",
      "status": "active",
      "ts": "2024-01-01T00:00:00Z",
      "windowExpiresAt": "2024-01-01T00:00:00Z",
      "touchCredits": [
        {
          "partnerId": null,
          "weight": null,
          "clickId": null
        }
      ],
      "reasoning": {
        "model": "string",
        "consideredTouchpoints": 0,
        "windowDays": 0,
        "notes": [
          null
        ],
        "noteCodes": [
          null
        ]
      }
    }
  ],
  "has_more": true,
  "next_cursor": "string"
}
Schema
objectstringrequired
dataReferral[]required
Show child parameters
idstringrequired
programIdstringrequired
partnerIdstringrequired
customerRefstringrequired
sourcestringrequired
matchedViastringrequired
confidencenumberrequired
clickIdstringrequired
linkIdstringrequired
statusstringrequired
active | pending_review | paused | void
tsstringrequired
windowExpiresAtstringrequired
touchCreditsobject[]required
Show child parameters
partnerIdstringrequired
weightnumberrequired
clickIdstringrequired
reasoningobjectrequired
Show child parameters
modelstring
consideredTouchpointsinteger
windowDaysinteger
notesstring[]
noteCodesReasonNote[]
has_morebooleanrequired
Whether another page follows; pass next_cursor as starting_after to get it.
next_cursorstringrequired
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
GEThttps://referally.15.204.158.166.sslip.io/v1/referrals/{id}
GET /v1/referrals/{id}
Parameters
idstringpathrequired
Code samples
cURL
curl -X GET "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}"
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}', {
  method: 'GET',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "GET",
    "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/referrals/{id}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/referrals/{id}"))
    .GET()
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 OK
Example
{
  "id": "string",
  "programId": "string",
  "partnerId": "string",
  "customerRef": "string",
  "source": "string",
  "matchedVia": "string",
  "confidence": 0,
  "clickId": "string",
  "linkId": "string",
  "status": "active",
  "ts": "2024-01-01T00:00:00Z",
  "windowExpiresAt": "2024-01-01T00:00:00Z",
  "touchCredits": [
    {
      "partnerId": "string",
      "weight": 0,
      "clickId": "string"
    }
  ],
  "reasoning": {
    "model": "string",
    "consideredTouchpoints": 0,
    "windowDays": 0,
    "notes": [
      "string"
    ],
    "noteCodes": [
      {
        "code": "outside_window",
        "values": {}
      }
    ]
  }
}
Schema
idstringrequired
programIdstringrequired
partnerIdstringrequired
customerRefstringrequired
sourcestringrequired
matchedViastringrequired
confidencenumberrequired
clickIdstringrequired
linkIdstringrequired
statusstringrequired
active | pending_review | paused | void
tsstringrequired
windowExpiresAtstringrequired
touchCreditsobject[]required
Show child parameters
partnerIdstringrequired
weightnumberrequired
clickIdstringrequired
reasoningobjectrequired
Show child parameters
modelstring
consideredTouchpointsinteger
windowDaysinteger
notesstring[]
noteCodesReasonNote[]
Show child parameters
codestringrequired
outside_window | fraud_excluded | coupon_priority | email_hash_lead | fingerprint_fallback | self_referral_review
valuesobject
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
PATCHhttps://referally.15.204.158.166.sslip.io/v1/referrals/{id}
PATCH /v1/referrals/{id}
Parameters
idstringpathrequired
Request body application/json
statusstringrequired
paused | active
{
  "status": "paused"
}
Code samples
cURL
curl -X PATCH "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}" \
  -H "Content-Type: application/json" \
  -d '{"status":"paused"}'
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"status":"paused"}),
});
const data = await res.json();
Python
import requests

res = requests.request(
    "PATCH",
    "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}",
    headers={
    "Content-Type": "application/json",
    },
    json={"status": "paused"},
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	req, _ := http.NewRequest("PATCH", "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}", strings.NewReader(`{"status":"paused"}`))
	req.Header.Set("Content-Type", "application/json")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/referrals/{id}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"status":"paused"}');
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}')
req = Net::HTTP::Patch.new(uri)
req['Content-Type'] = 'application/json'
req.body = '{"status":"paused"}'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/referrals/{id}"))
    .header("Content-Type", "application/json")
    .method("PATCH", BodyPublishers.ofString("{\"status\":\"paused\"}"))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 OK
Example
{
  "id": "string",
  "programId": "string",
  "partnerId": "string",
  "customerRef": "string",
  "source": "string",
  "matchedVia": "string",
  "confidence": 0,
  "clickId": "string",
  "linkId": "string",
  "status": "active",
  "ts": "2024-01-01T00:00:00Z",
  "windowExpiresAt": "2024-01-01T00:00:00Z",
  "touchCredits": [
    {
      "partnerId": "string",
      "weight": 0,
      "clickId": "string"
    }
  ],
  "reasoning": {
    "model": "string",
    "consideredTouchpoints": 0,
    "windowDays": 0,
    "notes": [
      "string"
    ],
    "noteCodes": [
      {
        "code": "outside_window",
        "values": {}
      }
    ]
  }
}
Schema
idstringrequired
programIdstringrequired
partnerIdstringrequired
customerRefstringrequired
sourcestringrequired
matchedViastringrequired
confidencenumberrequired
clickIdstringrequired
linkIdstringrequired
statusstringrequired
active | pending_review | paused | void
tsstringrequired
windowExpiresAtstringrequired
touchCreditsobject[]required
Show child parameters
partnerIdstringrequired
weightnumberrequired
clickIdstringrequired
reasoningobjectrequired
Show child parameters
modelstring
consideredTouchpointsinteger
windowDaysinteger
notesstring[]
noteCodesReasonNote[]
Show child parameters
codestringrequired
outside_window | fraud_excluded | coupon_priority | email_hash_lead | fingerprint_fallback | self_referral_review
valuesobject
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
GEThttps://referally.15.204.158.166.sslip.io/v1/referrals/{id}/journey
Full attribution journey with reasoning
Parameters
idstringpathrequired
Code samples
cURL
curl -X GET "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/journey"
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/journey', {
  method: 'GET',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "GET",
    "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/journey",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/journey", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/journey');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/journey')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/journey"))
    .GET()
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 OK
Example
{
  "id": "string",
  "programId": "string",
  "partnerId": "string",
  "customerRef": "string",
  "source": "string",
  "matchedVia": "string",
  "confidence": 0,
  "clickId": "string",
  "linkId": "string",
  "status": "active",
  "ts": "2024-01-01T00:00:00Z",
  "windowExpiresAt": "2024-01-01T00:00:00Z",
  "touchCredits": [
    {
      "partnerId": "string",
      "weight": 0,
      "clickId": "string"
    }
  ],
  "reasoning": {
    "model": "string",
    "consideredTouchpoints": 0,
    "windowDays": 0,
    "notes": [
      "string"
    ],
    "noteCodes": [
      {
        "code": "outside_window",
        "values": {}
      }
    ]
  },
  "touchpoints": [
    {
      "clickId": "string",
      "ts": "2024-01-01T00:00:00Z",
      "url": "string",
      "linkId": "string",
      "fraudScore": 0,
      "eligible": true,
      "weight": 0,
      "winner": true
    }
  ]
}
Schema
idstringrequired
programIdstringrequired
partnerIdstringrequired
customerRefstringrequired
sourcestringrequired
matchedViastringrequired
confidencenumberrequired
clickIdstringrequired
linkIdstringrequired
statusstringrequired
active | pending_review | paused | void
tsstringrequired
windowExpiresAtstringrequired
touchCreditsobject[]required
Show child parameters
partnerIdstringrequired
weightnumberrequired
clickIdstringrequired
reasoningobjectrequired
Show child parameters
modelstring
consideredTouchpointsinteger
windowDaysinteger
notesstring[]
noteCodesReasonNote[]
Show child parameters
codestringrequired
outside_window | fraud_excluded | coupon_priority | email_hash_lead | fingerprint_fallback | self_referral_review
valuesobject
touchpointsobject[]required
Show child parameters
clickIdstringrequired
tsstringrequired
urlstringrequired
linkIdstringrequired
fraudScoreintegerrequired
eligiblebooleanrequired
weightnumberrequired
winnerbooleanrequired
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
POSThttps://referally.15.204.158.166.sslip.io/v1/referrals/{id}/void
POST /v1/referrals/{id}/void
Parameters
idstringpathrequired
Code samples
cURL
curl -X POST "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/void"
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/void', {
  method: 'POST',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/void",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/void", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/void');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/void')
req = Net::HTTP::Post.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/void"))
    .method("POST", BodyPublishers.noBody())
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 OK
Example
{
  "id": "string",
  "programId": "string",
  "partnerId": "string",
  "customerRef": "string",
  "source": "string",
  "matchedVia": "string",
  "confidence": 0,
  "clickId": "string",
  "linkId": "string",
  "status": "active",
  "ts": "2024-01-01T00:00:00Z",
  "windowExpiresAt": "2024-01-01T00:00:00Z",
  "touchCredits": [
    {
      "partnerId": "string",
      "weight": 0,
      "clickId": "string"
    }
  ],
  "reasoning": {
    "model": "string",
    "consideredTouchpoints": 0,
    "windowDays": 0,
    "notes": [
      "string"
    ],
    "noteCodes": [
      {
        "code": "outside_window",
        "values": {}
      }
    ]
  }
}
Schema
idstringrequired
programIdstringrequired
partnerIdstringrequired
customerRefstringrequired
sourcestringrequired
matchedViastringrequired
confidencenumberrequired
clickIdstringrequired
linkIdstringrequired
statusstringrequired
active | pending_review | paused | void
tsstringrequired
windowExpiresAtstringrequired
touchCreditsobject[]required
Show child parameters
partnerIdstringrequired
weightnumberrequired
clickIdstringrequired
reasoningobjectrequired
Show child parameters
modelstring
consideredTouchpointsinteger
windowDaysinteger
notesstring[]
noteCodesReasonNote[]
Show child parameters
codestringrequired
outside_window | fraud_excluded | coupon_priority | email_hash_lead | fingerprint_fallback | self_referral_review
valuesobject
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
POSThttps://referally.15.204.158.166.sslip.io/v1/referrals/{id}/reassign
POST /v1/referrals/{id}/reassign
Parameters
idstringpathrequired
Request body application/json
partnerIdstringrequired
{
  "partnerId": "string"
}
Code samples
cURL
curl -X POST "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/reassign" \
  -H "Content-Type: application/json" \
  -d '{"partnerId":"string"}'
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/reassign', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"partnerId":"string"}),
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/reassign",
    headers={
    "Content-Type": "application/json",
    },
    json={"partnerId": "string"},
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	req, _ := http.NewRequest("POST", "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/reassign", strings.NewReader(`{"partnerId":"string"}`))
	req.Header.Set("Content-Type", "application/json")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/reassign');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"partnerId":"string"}');
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/reassign')
req = Net::HTTP::Post.new(uri)
req['Content-Type'] = 'application/json'
req.body = '{"partnerId":"string"}'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/reassign"))
    .header("Content-Type", "application/json")
    .method("POST", BodyPublishers.ofString("{\"partnerId\":\"string\"}"))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 OK
Example
{
  "id": "string",
  "programId": "string",
  "partnerId": "string",
  "customerRef": "string",
  "source": "string",
  "matchedVia": "string",
  "confidence": 0,
  "clickId": "string",
  "linkId": "string",
  "status": "active",
  "ts": "2024-01-01T00:00:00Z",
  "windowExpiresAt": "2024-01-01T00:00:00Z",
  "touchCredits": [
    {
      "partnerId": "string",
      "weight": 0,
      "clickId": "string"
    }
  ],
  "reasoning": {
    "model": "string",
    "consideredTouchpoints": 0,
    "windowDays": 0,
    "notes": [
      "string"
    ],
    "noteCodes": [
      {
        "code": "outside_window",
        "values": {}
      }
    ]
  }
}
Schema
idstringrequired
programIdstringrequired
partnerIdstringrequired
customerRefstringrequired
sourcestringrequired
matchedViastringrequired
confidencenumberrequired
clickIdstringrequired
linkIdstringrequired
statusstringrequired
active | pending_review | paused | void
tsstringrequired
windowExpiresAtstringrequired
touchCreditsobject[]required
Show child parameters
partnerIdstringrequired
weightnumberrequired
clickIdstringrequired
reasoningobjectrequired
Show child parameters
modelstring
consideredTouchpointsinteger
windowDaysinteger
notesstring[]
noteCodesReasonNote[]
Show child parameters
codestringrequired
outside_window | fraud_excluded | coupon_priority | email_hash_lead | fingerprint_fallback | self_referral_review
valuesobject
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
POSThttps://referally.15.204.158.166.sslip.io/v1/referrals/{id}/approve
POST /v1/referrals/{id}/approve
Parameters
idstringpathrequired
Code samples
cURL
curl -X POST "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/approve"
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/approve', {
  method: 'POST',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/approve",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/approve", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/approve');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/approve')
req = Net::HTTP::Post.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/referrals/{id}/approve"))
    .method("POST", BodyPublishers.noBody())
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 OK
Example
{
  "id": "string",
  "programId": "string",
  "partnerId": "string",
  "customerRef": "string",
  "source": "string",
  "matchedVia": "string",
  "confidence": 0,
  "clickId": "string",
  "linkId": "string",
  "status": "active",
  "ts": "2024-01-01T00:00:00Z",
  "windowExpiresAt": "2024-01-01T00:00:00Z",
  "touchCredits": [
    {
      "partnerId": "string",
      "weight": 0,
      "clickId": "string"
    }
  ],
  "reasoning": {
    "model": "string",
    "consideredTouchpoints": 0,
    "windowDays": 0,
    "notes": [
      "string"
    ],
    "noteCodes": [
      {
        "code": "outside_window",
        "values": {}
      }
    ]
  }
}
Schema
idstringrequired
programIdstringrequired
partnerIdstringrequired
customerRefstringrequired
sourcestringrequired
matchedViastringrequired
confidencenumberrequired
clickIdstringrequired
linkIdstringrequired
statusstringrequired
active | pending_review | paused | void
tsstringrequired
windowExpiresAtstringrequired
touchCreditsobject[]required
Show child parameters
partnerIdstringrequired
weightnumberrequired
clickIdstringrequired
reasoningobjectrequired
Show child parameters
modelstring
consideredTouchpointsinteger
windowDaysinteger
notesstring[]
noteCodesReasonNote[]
Show child parameters
codestringrequired
outside_window | fraud_excluded | coupon_priority | email_hash_lead | fingerprint_fallback | self_referral_review
valuesobject
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
POSThttps://referally.15.204.158.166.sslip.io/v1/attribution/replay
Deterministically recompute attribution
Request body application/json
programIdstringrequired
{
  "programId": "string"
}
Code samples
cURL
curl -X POST "https://referally.15.204.158.166.sslip.io/v1/attribution/replay" \
  -H "Content-Type: application/json" \
  -d '{"programId":"string"}'
TypeScript
const res = await fetch('https://referally.15.204.158.166.sslip.io/v1/attribution/replay', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"programId":"string"}),
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://referally.15.204.158.166.sslip.io/v1/attribution/replay",
    headers={
    "Content-Type": "application/json",
    },
    json={"programId": "string"},
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	req, _ := http.NewRequest("POST", "https://referally.15.204.158.166.sslip.io/v1/attribution/replay", strings.NewReader(`{"programId":"string"}`))
	req.Header.Set("Content-Type", "application/json")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://referally.15.204.158.166.sslip.io/v1/attribution/replay');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"programId":"string"}');
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://referally.15.204.158.166.sslip.io/v1/attribution/replay')
req = Net::HTTP::Post.new(uri)
req['Content-Type'] = 'application/json'
req.body = '{"programId":"string"}'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://referally.15.204.158.166.sslip.io/v1/attribution/replay"))
    .header("Content-Type", "application/json")
    .method("POST", BodyPublishers.ofString("{\"programId\":\"string\"}"))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 OK
Example
{
  "recomputed": 0,
  "changed": 0
}
Schema
recomputedintegerrequired
changedintegerrequired
default Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "requestId": "string",
    "docs_url": "string"
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
details
requestIdstring
docs_urlstringrequired
The docs entry for this error code: what it means and how to fix it.
Updated