Portfolio Supported AIs Solutions Tasks Email Archive Integrations Pricing

Get Started

ChatGPT

ChatGPT

Start directly →

Ready
Claude

Claude

Directory Connector →

Ready
Mistral

Mistral

Directory Connector →

Ready

Dashboard Always available
Affiliate Links

Affiliate Links

⚡ Built-in — Platform Built-in

Track outbound affiliate clicks and send visitors safely to the right shop. You store each link once (e.g. per product); the page only sends the link key and always gets your stored URL back, so it can never be abused as an open redirect. Click counts per day, link, group, source and page — no personal data stored.

⚡ Built-in — No Setup Required This integration is built into the WebsitePublisher platform. All endpoints are available immediately — no API key needed.

Endpoints (8)

POST set-config

How clicks are counted for this project. Only send what changes. Abuse limits only stop COUNTING — visitors are always sent to the shop.

Field Type Required Description
dedupe_minutes integer No Repeated clicks by the same visitor on the same link count once within this many minutes (0-1440, 0 = count every click). Default 30.
per_ip_hourly_count integer No Max counted clicks per IP address per hour (0 = no limit, max 1000). Default 100.
allowed_sources array No Allowed values for source, e.g. ["product-card","comparison-table"]. Other values are counted without a source. [] = any source.
GET get-config

The counting settings of this project, the number of links and the platform limits.

No input parameters required.

GET get-stats

Counted clicks over a date range (UTC days, default the last 30 days, max 366), grouped by link, day, group, source or page. Optionally for one link_key or group.

Field Type Required Description
from string No YYYY-MM-DD.
to string No YYYY-MM-DD, default today.
group_by string No "link" (default), "day", "group", "source" or "page".
link_key string No
group string No
limit integer No Max rows, default 100, max 500.
POST click

A visitor clicks an affiliate link. Returns {url, counted}: always the stored URL of that link — send the visitor there. counted is false when the click was a repeat or over the abuse limit; the visitor is still sent on. Page pattern: give the <a> an href to your OWN product page (fallback without JavaScript) and a data-link-key. On click: preventDefault; for a new tab call window.open("", "_blank") synchronously FIRST (otherwise popup blockers block it after the await), then POST to /sapi/project/{id}/execute/affiliate-links/click with {link_key, source, page: location.pathname} and set that tab's location to the returned url. If the call fails, keep the fallback href. Unknown or inactive link: error, use the fallback.

Field Type Required Description
link_key string ✓ Yes
source string No Where on the page the click came from, e.g. "product-card". Lowercase letters, digits, - and _.
page string No The page path, e.g. location.pathname. Query strings are removed.

MCP Tool Names

When using this integration through an AI assistant (Claude, ChatGPT, Cursor, etc.), the endpoints are available as MCP tools:

EndpointMCP Tool Name
upsert-links affiliate-links_upsert_links
update-link affiliate-links_update_link
delete-link affiliate-links_delete_link
list-links affiliate-links_list_links
set-config affiliate-links_set_config
get-config affiliate-links_get_config
get-stats affiliate-links_get_stats
click affiliate-links_click
← Back to all integrations