Syndicate Links API Documentation
Syndicate Links exposes the commission infrastructure layer for merchant programs, publisher referrals, and AI-native attribution flows.
Base URL: https://api.syndicatelinks.co
Authentication
All endpoints require an API key in the Authorization header:
Authorization: Bearer <your_api_key>
- Merchant keys start with
mk_live_ - Affiliate keys start with
ak_live_ - Agent attribution keys start with
aff_agent_
Get your API key by registering via the merchant dashboard or affiliate portal.
AI Attribution Endpoints
Record AI Referral
POST /v1/track/ai-referral
Authorization: Bearer aff_agent_...
Use this endpoint to emit a first-class ai_referral event from an autonomous agent or agent-adjacent application.
Body:
{
"event": "ai_referral",
"trackingCode": "trk_abc123",
"orderValue": 79.99,
"currency": "USD",
"ai_surface": "chat",
"metadata": {
"conversationId": "conv_123"
}
}
ai_surface is optional but recommended. When present, it is captured into attribution context for downstream reporting.
Merchant Endpoints
Register
POST /merchant/register
Create a new merchant account.
Body:
{
"name": "Your Company",
"email": "you@company.com",
"website": "https://company.com"
}
Response: Returns merchant profile with API key.
Programs
Create Program
POST /merchant/programs
Authorization: Bearer mk_live_...
{
"name": "My Affiliate Program",
"description": "Earn 10% on every sale",
"defaultCommissionPct": 10,
"autoApprove": true,
"category": "scuba"
}
Verified response shape:
{
"id": "48e96302-5057-4f71-bca9-ef50c4839ed9",
"merchantId": "f5f5e5b8-5c2c-4a84-8160-8cb2f37509a0",
"name": "Tilos Referral Program",
"defaultCommissionPct": "10.00",
"status": "active"
}
List Programs
GET /merchant/programs
Authorization: Bearer mk_live_...
Update Program
PUT /merchant/programs/:id
Authorization: Bearer mk_live_...
Products
Add Product
POST /merchant/products
Authorization: Bearer mk_live_...
{
"programId": "prog_abc123",
"name": "Premium Widget",
"url": "https://company.com/widget",
"price": 49.99,
"currency": "USD",
"category": "widget",
"inStock": true
}
Verified response shape:
{
"id": "9fd48ef4-f856-4377-ae9f-cb6f378d426b",
"programId": "48e96302-5057-4f71-bca9-ef50c4839ed9",
"name": "Tilos M1 Mask",
"url": "https://tilos.com/products/m1-mask",
"price": "79.99"
}
Bulk Add Products
POST /merchant/products/bulk
Authorization: Bearer mk_live_...
List Products
GET /merchant/products
Authorization: Bearer mk_live_...
Update Product
PUT /merchant/products/:id
Authorization: Bearer mk_live_...
Delete Product
DELETE /merchant/products/:id
Authorization: Bearer mk_live_...
Affiliates
List Affiliates
GET /merchant/affiliates
Authorization: Bearer mk_live_...
Approve Affiliate
PUT /merchant/affiliates/:id/approve
Authorization: Bearer mk_live_...
Reject Affiliate
PUT /merchant/affiliates/:id/reject
Authorization: Bearer mk_live_...
Conversions
Record Conversion
POST /merchant/conversions
Authorization: Bearer mk_live_...
{
"trackingCode": "trk_abc123",
"orderId": "order_123",
"saleAmount": 99.99,
"currency": "USD"
}
Important: server-side conversion reporting does not require a prior click_id. A merchant can report conversions directly using trackingCode.
Verified response shape:
{
"id": "2049d848-be07-4666-b7fb-fb0446151d4e",
"type": "conversion",
"trackingLinkId": "b465cb07-520b-42be-8289-a0926f6856e3",
"programId": "48e96302-5057-4f71-bca9-ef50c4839ed9",
"orderId": "tilos-test-order-001",
"saleAmount": "79.99",
"commissionAmount": "8.00",
"commissionStatus": "pending",
"attributionMethod": "tracking_code"
}
Reports
Merchant Reports
GET /merchant/reports
Authorization: Bearer mk_live_...
Query params: ?from=2026-03-01&to=2026-03-31
Affiliate Endpoints
Register
POST /affiliate/register
{
"email": "affiliate@example.com",
"name": "Agent Smith"
}
Response: Returns affiliate profile with API key.
Discover Programs
List Available Programs
GET /affiliate/programs
Authorization: Bearer ak_live_...
Returns all programs you can join.
Get Program Details
GET /affiliate/programs/:id
Authorization: Bearer ak_live_...
Get Program Products
GET /affiliate/programs/:id/products
Authorization: Bearer ak_live_...
Search Products
GET /affiliate/products/search?q=widget
Authorization: Bearer ak_live_...
Join Programs
Apply to Program
POST /affiliate/programs/:id/apply
Authorization: Bearer ak_live_...
Tracking Links
Create Tracking Link
POST /affiliate/links
Authorization: Bearer ak_live_...
{
"programId": "prog_abc123",
"productId": "prod_xyz789",
"destinationUrl": "https://merchant.com/products/widget",
"sourceTag": "homepage-hero"
}
Verified live response shape:
{
"id": "4724a679-2503-4389-b333-4ed9058ceec1",
"affiliateId": "cd33c7e9-3941-4c1b-beee-3902151221f7",
"programId": "48e96302-5057-4f71-bca9-ef50c4839ed9",
"productId": null,
"code": "QiON_e0gsS",
"destinationUrl": "https://tilos.com/products/m1-mask",
"clicks": 0,
"conversions": 0,
"sourceTag": null
}
Important: the live API currently returns code in the response.
List Tracking Links
GET /affiliate/links
Authorization: Bearer ak_live_...
Events
Record Click
POST /affiliate/events/click
Authorization: Bearer ak_live_...
{
"trackingCode": "QiON_e0gsS",
"ipHash": "test-ip-hash-001",
"userAgent": "Mozilla/5.0 (affiliate-test)",
"country": "US",
"deviceType": "desktop",
"referrerContext": "affiliate-side-test"
}
Verified response shape:
{
"id": "5baeaf04-2246-4fa8-afe8-f0cd44a93345",
"type": "click",
"trackingLinkId": "4724a679-2503-4389-b333-4ed9058ceec1",
"affiliateId": "cd33c7e9-3941-4c1b-beee-3902151221f7",
"programId": "48e96302-5057-4f71-bca9-ef50c4839ed9",
"productId": null,
"clickId": null,
"referrerContext": "affiliate-side-test"
}
Record Conversion
POST /affiliate/events/conversion
Authorization: Bearer ak_live_...
{
"trackingCode": "QiON_e0gsS",
"orderId": "affiliate-side-test-order-001",
"saleAmount": 79.99,
"currency": "USD",
"attributionMethod": "tracking_code",
"referrerContext": "affiliate-side-test"
}
Verified response shape:
{
"id": "157f2af1-c5ee-418b-a90e-86481c199961",
"type": "conversion",
"trackingLinkId": "4724a679-2503-4389-b333-4ed9058ceec1",
"affiliateId": "cd33c7e9-3941-4c1b-beee-3902151221f7",
"programId": "48e96302-5057-4f71-bca9-ef50c4839ed9",
"productId": null,
"attributionMethod": "tracking_code",
"orderId": "affiliate-side-test-order-001",
"saleAmount": "79.99",
"commissionAmount": "8.00",
"commissionStatus": "pending"
}
Reports
Earnings Report
GET /affiliate/reports/earnings?from=2026-03-01&to=2026-03-31
Authorization: Bearer ak_live_...
Click Report
GET /affiliate/reports/clicks
Authorization: Bearer ak_live_...
Conversion Report
GET /affiliate/reports/conversions
Authorization: Bearer ak_live_...
Profile
Get Profile
GET /affiliate/me
Authorization: Bearer ak_live_...
Update Profile
PUT /affiliate/me
Authorization: Bearer ak_live_...
Get Balance
GET /affiliate/me/balance
Authorization: Bearer ak_live_...
Get Payout History
GET /affiliate/me/payouts
Authorization: Bearer ak_live_...
Payment Rails
Syndicate Links supports multiple payout methods:
| Rail | Currency | Settlement | Minimum |
|---|---|---|---|
| Stripe Connect | USD | 2-5 days | $25 |
| Lightning Network | BTC | Instant | $5 |
| USDC on Base | USDC | Minutes | $0.01 |
Configure your preferred payout method in affiliate settings.
Webhooks
Merchants can receive real-time notifications for:
conversion.created— New conversion recordedaffiliate.applied— Affiliate applied to your programpayout.completed— Payout sent to affiliate
Configure webhook URL in merchant settings. All webhooks include HMAC-SHA256 signature in X-Signature header.
Rate Limits
| Tier | Requests/min | Requests/day |
|---|---|---|
| Free | 60 | 1,000 |
| Pro | 300 | 10,000 |
| Enterprise | Custom | Custom |
Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
Quick Start (30 seconds)
For Agents
# 1. Register
curl -X POST https://api.syndicatelinks.co/affiliate/register \
-H "Content-Type: application/json" \
-d '{"email":"agent@example.com","name":"My Agent"}'
# 2. Discover programs
curl https://api.syndicatelinks.co/affiliate/programs \
-H "Authorization: Bearer ak_live_YOUR_KEY"
# 3. Join a program
curl -X POST https://api.syndicatelinks.co/affiliate/programs/PROG_ID/apply \
-H "Authorization: Bearer ak_live_YOUR_KEY"
# 4. Generate tracking link
curl -X POST https://api.syndicatelinks.co/affiliate/links \
-H "Authorization: Bearer ak_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"programId":"PROG_ID","destinationUrl":"https://merchant.com/products/widget"}'
# 5. Check earnings
curl https://api.syndicatelinks.co/affiliate/me/balance \
-H "Authorization: Bearer ak_live_YOUR_KEY"
For Merchants
# 1. Register
curl -X POST https://api.syndicatelinks.co/merchant/register \
-H "Content-Type: application/json" \
-d '{"name":"My Store","email":"store@example.com","website":"https://mystore.com"}'
# 2. Create a program
curl -X POST https://api.syndicatelinks.co/merchant/programs \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Main Program","defaultCommissionPct":10,"autoApprove":true,"category":"general"}'
# 3. Record a conversion
curl -X POST https://api.syndicatelinks.co/merchant/conversions \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"trackingCode":"trk_abc123","orderId":"order_123","saleAmount":99.99,"currency":"USD"}'
Support
- Email: hello@syndicatelinks.co
- Website: https://syndicatelinks.co
- X: @SyndicateLinks