APIs and webhooks

Build attribution into your own data workflows

Pull campaign reports, look up attributed users and manage links from your backend. Use webhooks for install and sign-up events, or exports for bulk reporting.

API reference

api.linkrunner.io/api/v1
GET/reporting/campaigns
curl 'https://api.linkrunner.io/api/v1/reporting/campaigns ?from=2026-10-01&to=2026-10-19&network=meta&limit=20' \ -H 'linkrunner-key: YOUR_API_KEY'
200· 182 ms
{ "status": 200, "data": { "campaigns": [ { "name": "Diwali installs", "installs": "3,201", "sign-ups": "1,148", "spend": "$4,820.00", "revenue": "$12,540.50", "roas": "2.60", }, … ], "display_currency": "USD" } }

Join 400+ growth teams using Linkrunner.

    • ABCoffee logo
    • Alle logo
    • AugustAI logo
    • Bounce Daily logo
    • Buku Warung logo
    • CraftMyPlate logo
    • Eira Club logo
    • Elefant logo
    • Fold logo
    • Fuaark logo
    • Grapevine logo
    • HashFame logo
    • Hypd logo
    • IPF logo
    • Karobar App logo
    • Kulfi logo
    • Lingopanda logo
    • Matiks logo
    • Meatigo logo
    • Omli Kids logo
    • Playo logo
    • Pocketful logo
    • Richie Club logo
    • Saras logo
    • Shopping logo
    • Sid's Farm logo
    • Stratzy logo
    • Stylezen logo
    • Tal Boss logo
    • The Tatva logo
    • Utsav logo
    • Zave logo
What you can build

Choose the interface that fits the job

Reporting, attribution lookup, campaign management and event capture have separate endpoints. Keep server credentials on your backend.

Installs and signups pushed to your backend

A JSON POST for every attributed install and signup, retried up to 3 times from two static IPs.

Webhook deliveries

POST · JSON
  • 09:42:43signupSearch, brand terms200
  • 09:42:36installStory ads, Q4200
  • 09:42:29installCreator spark ads200
  • 09:42:22signupDiwali installs200

Limits you can plan a job around

30 requests a second on the Data APIs, 10 a second on campaign create.

Data APIs30/s
Create campaign10/s

One server key

Every endpoint reads the linkrunner-key header. Keep it on your server.

Server keySettings, Data APIs
headerlinkrunner-key: ••••••••••••

Your warehouse, when CSV isn't enough

Delivery to BigQuery, Redshift or Snowflake is set up on request, alongside emailed CSV exports.

Your projectinstalls, events, revenue
BigQueryRedshiftSnowflakeSet up on request
Getting started

From server key to first request

  1. 01

    Copy your server key

    Find it under Settings, then Data APIs, and keep it on your server. It never belongs in client code.

  2. 02

    Call an endpoint or add a webhook URL

    Point your BI job at the Reporting API, or paste your endpoint under Settings, then Data Export, then Webhooks and send a test.

  3. 03

    Move bigger jobs to delivery

    Need longer export ranges or data in BigQuery, Redshift or Snowflake? Warehouse delivery is set up on request.

Webhook payload

What lands on your server after an install

Join the install and signup webhooks on lr_install_id.

POST https://your-server.com/linkrunner-webhook
Content-Type: application/json
linkrunner-key: YOUR_PRIVATE_KEY

{
  "event_type": "install",
  "lr_install_id": "e1c0f4a2-5b7d-4c19-9a3f-2d8e6b1c7a04",
  "campaign_id": "camp_XYZ123",
  "campaign_name": "Diwali installs",
  "network_name": "META",
  "ad_channel": "META",
  "attributed_on": "2026-10-19T08:11:00.464Z",
  "installed_at": "2026-10-19T08:11:00.464Z",
  "link": "https://dl.linkrunner.io/?c=camp_XYZ123",
  "app_version": "2.4.1",
  "gaid": "38400000-8cf0-11bd-b23e-10b96e40000d",
  "meta_campaign_details": {
    "ad_set_name": "Lookalike 1%",
    "ad_creative_name": "Festive offer video",
    "publisher_platform": "instagram",
    "platform_position": "reels"
  },
  "device_data": {
    "manufacturer": "samsung",
    "os_version": "14",
    "connectivity": "wifi"
  },
  "location_data": {
    "country": "India",
    "state": "Karnataka",
    "city": "Bengaluru"
  }
}
Events
install, signup
Retries
Up to 3 attempts
Source IPs
8.234.94.188, 8.234.80.204
Organic users
Opt in per project
Hear from our customers

Trusted by teams that care about more than attribution.

“The level of customisation that Linkrunner was able to offer was unmatched by any of the other competitors we looked at. Their team took the time to understand our exact requirements and delivered a solution that felt tailored to our needs, rather than forcing us into a fixed framework. That flexibility made a significant difference for us and was one of the key reasons Linkrunner stood out.”
Ronald M Thomas

Ronald M Thomas

Digital Marketing, Playo

Playo

34%

CPI reduction in 3 months

₹20.30 → ₹13.39

Google Ads CPI drop (Dec '25 → Feb '26)

Read customer story
Coming from AppsFlyer

How AppsFlyer's data names map to Linkrunner

AppsFlyer Push API sends attribution events to your server. In Linkrunner that job is done by webhooks, which cover installs and signups out of the box, with webhooks for every other event on request.

AppsFlyer Pull API gives you report files over HTTP. The Linkrunner Reporting API returns the same campaign analytics as JSON, and CSV exports cover campaign and user level files.

AppsFlyer Data Locker delivers raw data to cloud storage. Linkrunner delivers to BigQuery, Redshift or Snowflake on request, and Bring Your Own Cloud runs the whole stack in your own cloud.

Frequently asked questions

Endpoints, limits and delivery, answered.

Make your first attribution API call

Use a server-side integration to read a campaign report or receive a test webhook. The API reference covers request fields and limits.