API DOCUMENTATION

Track API Reference

Integrate IP Snare into your job board or aggregator with a single API call. Send click events to the /track endpoint and get real-time traffic verification.

Authentication

All API requests require a Bearer token in the Authorization header. Get your API key from the Settings page after signing up.

Header
Authorization: Bearer YOUR_API_KEY

Endpoint

POSThttps://api.ipsnare.com/v1/track

Content-Type must be application/json.

Required Parameters

FieldTypeDescription
source_idstringIdentifier for the traffic source
source_click_idstringUnique click ID from the source
user_ipstringIP address of the end user
job_idstringIdentifier for the job listing
click_idstringYour unique identifier for this click event
user_agentstringBrowser user-agent string
job_countrystringCountry of the job listing (ISO 3166-1 alpha-2)
user_countrystringCountry of the user (ISO 3166-1 alpha-2)
click_timestringTimestamp of the click (ISO 8601 datetime)
expiredbooleanWhether the click has expired
is_botbooleanWhether the click is from a bot
is_finalbooleanWhether this is the final state of the click
expired_atstring | nullWhen the click expired (ISO 8601 datetime). Can be null or empty string.
destination_idstringIdentifier for the destination

Code Examples

curl -X POST https://api.ipsnare.com/v1/track \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "source_id": "example_source",
  "source_click_id": "click_abc123",
  "user_ip": "203.0.113.42",
  "job_id": "job_12345",
  "click_id": "uid_xyz789",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
  "job_country": "GB",
  "user_country": "GB",
  "click_time": "2026-03-11T12:00:00Z",
  "expired": false,
  "is_bot": false,
  "is_final": true,
  "expired_at": null,
  "destination_id": "dest_001"
}'

Responses

200 Success

Response
{
  "success": true
}

401 Invalid API Key

Response
{
  "success": false,
  "errors": [
    {
      "field": "api_key",
      "message": "Invalid API key"
    }
  ]
}

422 Missing Parameters

Response
{
  "success": false,
  "errors": [
    {
      "field": "source_id",
      "message": "Missing required parameter"
    }
  ]
}

422 Invalid Parameters

For example, sending country codes that are not ISO 3166-1 alpha-2 codes:

Response
{
  "success": false,
  "errors": [
    {
      "field": "job_country",
      "message": "Invalid country code"
    },
    {
      "field": "user_country",
      "message": "Invalid country code"
    }
  ]
}

500 Server Error

Response
{
  "success": false,
  "errors": [
    {
      "field": "",
      "message": "Internal server error"
    }
  ]
}

Postman Collection

Import the collection into Postman to test all endpoints with pre-configured environments.

Download Collection