Conversions API

Register conversions when users complete desired actions.

Endpoint

POST https://api.gettrack.link/api/conversions

This endpoint does not require authentication. Anyone with a valid click_id can register a conversion.

Request Body

FieldTypeRequiredDescription
click_idstringYesThe click_id from the tracked link URL
external_user_idstringNoYour internal user/customer ID
user_namestringNoThe user's name
user_emailstringNoThe user's email address

Example Request

curl -X POST "https://api.gettrack.link/api/conversions" \
  -H "Content-Type: application/json" \
  -d '{
    "click_id": "abc123-def456-ghi789",
    "external_user_id": "cust_12345",
    "user_name": "Jane Smith",
    "user_email": "[email protected]"
  }'

Success Response

Status: 201 Created
{
  "success": true,
  "conversion": {
    "id": "conv_xyz789",
    "click_id": "abc123-def456-ghi789",
    "external_user_id": "cust_12345",
    "user_name": "Jane Smith",
    "user_email": "[email protected]",
    "created_at": "2025-12-17T15:30:00Z"
  }
}

Error Responses

400 Bad Request

Missing required click_id field.

{
  "statusCode": 400,
  "message": "click_id is required"
}

404 Not Found

The click_id does not exist.

{
  "statusCode": 404,
  "message": "Click not found"
}

409 Conflict

A conversion already exists for this click.

{
  "statusCode": 409,
  "message": "Conversion already registered for this click"
}

JavaScript Example

async function registerConversion(clickId, user) {
  const response = await fetch('https://api.gettrack.link/api/conversions', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      click_id: clickId,
      external_user_id: user.id,
      user_name: user.name,
      user_email: user.email,
    }),
  });

  if (!response.ok) {
    const error = await response.json();
    throw new Error(error.message);
  }

  return response.json();
}

// Usage
const clickId = localStorage.getItem('tracklink_click_id');
if (clickId) {
  await registerConversion(clickId, {
    id: 'cust_123',
    name: 'John Doe',
    email: '[email protected]'
  });
  localStorage.removeItem('tracklink_click_id');
}

Conversion Object

{
  "id": "conv_xyz789",
  "click_id": "abc123-def456-ghi789",
  "external_user_id": "cust_12345",
  "user_name": "Jane Smith",
  "user_email": "[email protected]",
  "host": "example.com",
  "page_url": "https://example.com/checkout/success",
  "created_at": "2025-12-17T15:30:00Z"
}

Notes

  • Each click can only have one conversion registered
  • Conversion data is visible in the link detail page
  • Conversion rate is calculated as: (conversions / unique clicks) * 100
  • The click_id is passed as a query parameter when users click tracked links