Introduction
Quickstart
From a fresh API key to your first tracking link in about four minutes.
Create a key
Keys live in the publisher dashboard under Account → API Keys. Give the key a name, pick its scopes, and copy the secret. It is shown exactly once.
For this walkthrough choose custom scopes rather than a preset, and grant four: programs:read, programs:write, links:write and reports:read.
Keep it out of your repo
Paste it into the runners below
export LINKAPPROVE_API_KEY="la_9f2c4a71e8b350d6c1f4a7e2b8d90c53"
curl https://api.linkapprove.com/v1/programs \
-H "Authorization: Bearer $LINKAPPROVE_API_KEY"Find a program
Programs are the merchant campaigns you can promote. Filter the catalogue down to something you would actually place, like a category you write about, on a payout model you like.
https://api.linkapprove.com/v1/programsprograms:readYou get back a paginated envelope. Note the id on the program you want. That is what a tracking link is minted against.
Approval comes first
approvalType: "auto" approves the moment you apply; "manual" is reviewed by the LinkApprove team first. See Apply to a program.curl "https://api.linkapprove.com/v1/programs?payoutType=cps&page=1&size=10" \
-H "Authorization: Bearer $LINKAPPROVE_API_KEY"https://api.linkapprove.com/v1/programs?payoutType=cps&page=1&size=10Held in this tab's session storage only, and reused by every runner on the site.
This panel replays the documented sample response and does not call the API. Copy a code sample to send a real request with your key.
Mint a tracking link
A tracking link ties three things together: an approved program, one of your verified channels, and an optional subId you use to tell placements apart in reporting.
https://api.linkapprove.com/v1/tracking-linkslinks:writeurl in the response is the link you place. A visitor clicking it hits our redirect, gets logged, and lands on the merchant with your attribution attached. Calling it again with the same inputs returns the same link with 200.
curl -X POST "https://api.linkapprove.com/v1/tracking-links" \
-H "Authorization: Bearer $LINKAPPROVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"programId": 4821,
"channelId": 12,
"subId": "spring-guide"
}'https://api.linkapprove.com/v1/tracking-linksHeld in this tab's session storage only, and reused by every runner on the site.
This panel replays the documented sample response and does not call the API. Copy a code sample to send a real request with your key.
Read the numbers
Clicks appear within about ten minutes. Conversions arrive when the upstream network reports them: in real time for networks that post back, and on a six-hour pull for the rest.
https://api.linkapprove.com/v1/reports/performancereports:read- Money sits in
earnings, one entry per currency and never summed across currencies. In each entrycommissionis what you have earned andpendingis reported by the network but not yet approved. - Group by
program(the default),channel,dayorsubId. AsubIdgrouping reports clicks only. - Ranges are inclusive
YYYY-MM-DDdates, capped at 180 days per request.
Every row field and grouping is described in the Reports reference.
curl "https://api.linkapprove.com/v1/reports/performance?startDate=2026-08-01&endDate=2026-08-18&groupBy=program&page=1&size=10" \
-H "Authorization: Bearer $LINKAPPROVE_API_KEY"https://api.linkapprove.com/v1/reports/performance?startDate=2026-08-01&endDate=2026-08-18&groupBy=program&page=1&size=10Held in this tab's session storage only, and reused by every runner on the site.
This panel replays the documented sample response and does not call the API. Copy a code sample to send a real request with your key.