Skip to main content

Links API

Create, list, and manage affiliate tracking links programmatically. Requires authentication via JWT token.

curl https://api.affilync.com/api/links \
-H "Authorization: Bearer YOUR_TOKEN"

Query Parameters:

ParameterTypeDefaultDescription
searchstring--Search links by name or URL
statusstring--Filter by status: active, inactive
pageint1Page number
per_pageint20Results per page (max 100)
sort_bystringcreated_atSort field
orderstringdescSort order: asc or desc

Response (200):

{
"success": true,
"data": {
"links": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Spring Collection Link",
"destination_url": "https://example.com/spring",
"tracking_url": "https://track.affilync.com/c/abc123def456",
"short_url": "https://afl.ink/abc123",
"status": "active",
"category": "promotional",
"tags": ["spring", "sale"],
"utm_source": "email",
"utm_medium": "newsletter",
"utm_campaign": "spring-2026",
"utm_term": null,
"utm_content": null,
"commission_rate": 5.5,
"clicks": 1423,
"conversions": 87,
"revenue": 5200.50,
"created_at": "2026-03-10T08:15:00Z",
"updated_at": "2026-03-15T14:30:00Z"
}
],
"total": 156,
"page": 1,
"total_pages": 8
},
"pagination": {
"page": 1,
"per_page": 20,
"total": 156,
"total_pages": 8,
"has_next": true,
"has_prev": false
}
}
curl -X POST https://api.affilync.com/api/links/generate \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"campaignId": "550e8400-e29b-41d4-a716-446655440000",
"title": "Spring Collection Link",
"destinationUrl": "https://example.com/spring",
"utmParams": {
"utm_source": "email",
"utm_medium": "newsletter",
"utm_campaign": "spring-2026"
}
}'

Request Body:

FieldTypeRequiredDescription
campaignIdUUID stringNoCampaign ID (optional for custom links)
titlestringNoLink name/title
destinationUrlstringYesTarget URL
utmParamsobjectNoUTM tracking parameters
customParamsobjectNoCustom metadata

Response (201):

{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Spring Collection Link",
"destination_url": "https://example.com/spring",
"tracking_url": "https://track.affilync.com/c/abc123def456",
"short_url": "https://afl.ink/abc123",
"status": "active",
"utm_source": "email",
"utm_medium": "newsletter",
"utm_campaign": "spring-2026",
"created_at": "2026-03-21T14:30:00Z"
},
"message": "Link generated successfully"
}

Generate multiple links in one request:

curl -X POST https://api.affilync.com/api/batch/links/generate \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"links": [
{
"destination_url": "https://example.com/twitter",
"campaign_id": "550e8400-e29b-41d4-a716-446655440000",
"utm_source": "twitter",
"utm_medium": "social"
},
{
"destination_url": "https://example.com/instagram",
"campaign_id": "550e8400-e29b-41d4-a716-446655440000",
"utm_source": "instagram",
"utm_medium": "social"
},
{
"destination_url": "https://example.com/blog",
"utm_source": "blog",
"utm_medium": "organic"
}
],
"validate_urls": true
}'

Response (201):

{
"success": true,
"data": {
"created_count": 3,
"failed_count": 0,
"links": [
{
"id": "550e8400-e29b-41d4-a716-446655440010",
"tracking_url": "https://track.affilync.com/c/abc123def456",
"short_url": "https://afl.ink/abc123"
},
{
"id": "550e8400-e29b-41d4-a716-446655440011",
"tracking_url": "https://track.affilync.com/c/def456ghi789",
"short_url": "https://afl.ink/def456"
},
{
"id": "550e8400-e29b-41d4-a716-446655440012",
"tracking_url": "https://track.affilync.com/c/ghi789jkl012",
"short_url": "https://afl.ink/ghi789"
}
],
"errors": [],
"processing_time_ms": 245
}
}

Maximum 100 links per bulk request.

Single-link operations use the /api/affiliate-links/{id} path.

curl https://api.affilync.com/api/affiliate-links/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer YOUR_TOKEN"

Response (200):

{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Spring Collection Link",
"destination_url": "https://example.com/spring",
"tracking_url": "https://track.affilync.com/c/abc123def456",
"short_url": "https://afl.ink/abc123",
"status": "active",
"category": "promotional",
"utm_source": "email",
"utm_medium": "newsletter",
"utm_campaign": "spring-2026",
"commission_rate": 5.5,
"created_at": "2026-03-10T08:15:00Z"
}
}
curl -X PUT https://api.affilync.com/api/affiliate-links/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "inactive",
"utm_source": "updated-source"
}'

To deactivate a link, send a PUT to /api/affiliate-links/{id} with status set to inactive — there is no dedicated deactivate verb.

curl -X PUT https://api.affilync.com/api/affiliate-links/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "status": "inactive" }'

Deactivated links return a 404 page instead of redirecting to the destination URL.

curl -X DELETE https://api.affilync.com/api/affiliate-links/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer YOUR_TOKEN"
FieldTypeDescription
idUUIDUnique link identifier
namestringLink name/title
destination_urlstringTarget URL that the link redirects to
tracking_urlstringFull tracking URL (includes tracking code)
short_urlstringShortened URL for sharing
tracking_codestringUnique tracking code for click tracking
affilync_idstringUser-friendly ID (e.g., AFF-A7B2F4C9-001)
qr_code_urlstringGenerated QR code image URL
categorystringOptional link category
tagsarrayList of tags for organization
statusstringactive or inactive
campaign_idUUIDParent campaign ID (if applicable)
network_idUUIDAffiliate network ID (if applicable)
utm_sourcestringUTM source parameter
utm_mediumstringUTM medium parameter
utm_campaignstringUTM campaign parameter
utm_termstringUTM term parameter
utm_contentstringUTM content parameter
commission_ratedecimalCommission rate as percentage
notesstringInternal notes about the link
created_atISO 8601Creation timestamp
updated_atISO 8601Last update timestamp

Statistics

When fetching link analytics data, you can access click and conversion statistics:

FieldTypeDescription
clicksintegerTotal number of clicks
unique_clicksintegerNumber of unique visitors
conversionsintegerNumber of conversions attributed to this link
revenuedecimalTotal revenue generated
commissiondecimalCommission earned
ctrdecimalClick-through rate
crdecimalConversion rate
epcdecimalEarnings per click

Error Responses

All errors follow this format:

{
"success": false,
"message": "Error description",
"error_code": "error_code_value",
"request_id": "correlation-id-for-support"
}

Common error codes:

  • user_unidentified - User not authenticated
  • invalid_campaign_id - Invalid campaign ID format
  • missing_destination_url - Destination URL required for custom links
  • link_conflict - Link already exists
  • database_error - Database error occurred

Next Steps