curl --request GET \
--url https://api.kraken.com/affiliate/v1/payout-history \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.kraken.com/affiliate/v1/payout-history"
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'API-Key': '<api-key>', 'API-Sign': '<api-key>', 'API-Nonce': '<api-key>'}
};
fetch('https://api.kraken.com/affiliate/v1/payout-history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/affiliate/v1/payout-history"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"items": [
{
"payout_id": "RPAY-EXAMPLE-CPA",
"amount": "50.00",
"asset": "USDC",
"status": "paid",
"created_at": "2026-09-30T15:04:12Z",
"source": "cpa"
},
{
"payout_id": "RPAY-EXAMPLE-REMEDIATION",
"amount": "75.00",
"asset": "USDC",
"status": "paid",
"created_at": "2026-09-29T12:00:00Z",
"source": "remediation"
},
{
"payout_id": "RPAY-EXAMPLE-PROP",
"amount": "30.50",
"asset": "USDC",
"status": "pending",
"created_at": "2026-09-29T09:10:00Z",
"source": "prop",
"prop_purchase_id": "BRP-EXAMPLE-ORDER"
},
{
"payout_id": "RPAY-EXAMPLE-REVSHARE",
"amount": "12.00",
"asset": "USDC",
"status": "paid",
"created_at": "2026-09-28T09:10:00Z",
"source": "revshare"
}
],
"next_cursor": "RPAY-EXAMPLE-REVSHARE",
"summary": {
"paid": "312.00",
"pending": "130.50",
"prop": {
"paid": "80.00",
"pending": "30.50",
"order_count": 3
},
"cpa": {
"paid": "220.00",
"pending": "100.00",
"bounty_count": 5
}
},
"limit": 4
}Get Payout History
Return one page of the authenticated affiliate’s payout history, newest first. Rows can include RevShare, Prop, CPA, Futures Accelerator Bonus, sub-affiliate commission, retainer, and remediation payments. Retainer and remediation rows appear only after approval.
The summary covers the whole history, not only the current page. Its
combined totals include all payout sources. Paid totals include
rows with public status paid; pending totals include rows with public
status pending. Rows with another status can appear in items, but do
not contribute to the totals or Prop and CPA counts.
Amounts are exact decimal strings. Combined totals add configured payout
assets, which are expected to be USD-pegged. prop_purchase_id is present
only for Prop commissions.
Successful responses are the object itself. Errors are a non-2xx
status with a typed error body, not a wrapped { "error", "result" }.
API Key Permissions Required: select the Query affiliate participants checkbox.
curl --request GET \
--url https://api.kraken.com/affiliate/v1/payout-history \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.kraken.com/affiliate/v1/payout-history"
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'API-Key': '<api-key>', 'API-Sign': '<api-key>', 'API-Nonce': '<api-key>'}
};
fetch('https://api.kraken.com/affiliate/v1/payout-history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/affiliate/v1/payout-history"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"items": [
{
"payout_id": "RPAY-EXAMPLE-CPA",
"amount": "50.00",
"asset": "USDC",
"status": "paid",
"created_at": "2026-09-30T15:04:12Z",
"source": "cpa"
},
{
"payout_id": "RPAY-EXAMPLE-REMEDIATION",
"amount": "75.00",
"asset": "USDC",
"status": "paid",
"created_at": "2026-09-29T12:00:00Z",
"source": "remediation"
},
{
"payout_id": "RPAY-EXAMPLE-PROP",
"amount": "30.50",
"asset": "USDC",
"status": "pending",
"created_at": "2026-09-29T09:10:00Z",
"source": "prop",
"prop_purchase_id": "BRP-EXAMPLE-ORDER"
},
{
"payout_id": "RPAY-EXAMPLE-REVSHARE",
"amount": "12.00",
"asset": "USDC",
"status": "paid",
"created_at": "2026-09-28T09:10:00Z",
"source": "revshare"
}
],
"next_cursor": "RPAY-EXAMPLE-REVSHARE",
"summary": {
"paid": "312.00",
"pending": "130.50",
"prop": {
"paid": "80.00",
"pending": "30.50",
"order_count": 3
},
"cpa": {
"paid": "220.00",
"pending": "100.00",
"bounty_count": 5
}
},
"limit": 4
}Authorizations
Query Parameters
Response
One page of affiliate payout history with whole-history totals.
One page of affiliate payout history, newest first.
Was this page helpful?