This document provides an overview of the affiliate conversion API. The conversion report is the most flexible way to extract a list of conversions and post-conversion events. It allows you to fetch a list of conversions and post-conversion events while specifying filters to narrow down the scope of the set of data you are pulling.
In order to use this, please talk to your contact at Inflektion and obtain:
- An API Key (in the format of a Bearer Token that will be passed in the Authorization header)
- The hostname to use
Retrieve Conversions
API Endpoint
POST https://HOSTNAME/api/reporting/conversions
Each request must contain :
- from and to dates (format can be YYYY-MM-DD or YYYY-MM-DD HH:MM:SS)
- The timezone_id used for the request. Common IDs include:
- America/Los_Angeles - ID 90
- America/Phoenix - 89
- America/Denver - ID 87
- America/Chicago - ID 85
- America/New_York - ID 80
- UTC - ID 67
- A show_conversions boolean value that determines whether primary conversions are returned (true / false)
- A show_events boolean value that determines whether post-conversion events are returned (true / false)
Please note that the conversion report is limited to the prior 365 days only. Requests outside of this range will result in an error.
Pagination
The conversion report endpoint supports pagination. The response body will include the paging object like the one below
"paging": {
"page": 1,
"page_size": 2000,
"total_count": 29
}
To request a specific page or page size, you must use the page and page_size in the query string of your request.
Sample Request
curl --location 'https://HOSTNAME/api/reporting/conversions?page=1&page_size=5' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR KEY>' \
--data '{
"from": "2025-03-01",
"to": "2025-03-06",
"timezone_id": 90,
"show_conversions": true,
"show_events": false
}'
Sample Response
{
"conversions": [
{
"conversion_id": "b325f5e7ac5b40548bd4454598dfeab9",
"conversion_unix_timestamp": 1740855014,
"sub1": "",
"sub2": "",
"sub3": "",
"sub4": "",
"sub5": "",
"source_id": "",
"revenue_type": "CPA",
"revenue": 123.45,
"session_user_ip": "123.123.123.123",
"conversion_user_ip": "123.123.123.123",
"country": "United States",
"region": "Georgia",
"city": "Dallas",
"dma": 0,
"carrier": "",
"platform": "iOS",
"os_version": "18.3",
"device_type": "Mobile",
"brand": "Apple",
"browser": "Safari",
"language": "en",
"http_user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Mobile/15E148 Safari/604.1",
"is_event": false,
"event": "Purchase",
"transaction_id": "ec93125c91b942b7919c0b3d618dcdff",
"click_unix_timestamp": 1740853981,
"isp": "comcast cable communications inc.",
"referer": "",
"app_id": "",
"idfa": "",
"idfa_md5": "",
"idfa_sha1": "",
"google_ad_id": "",
"google_ad_id_md5": "",
"google_ad_id_sha1": "",
"android_id": "",
"android_id_md5": "",
"android_id_sha1": "",
"currency_id": "USD",
"is_view_through": false,
"order_id": "unique_order_id",
"adv1": "",
"adv2": "",
"adv3": "",
"adv4": "",
"adv5": "",
"relationship": {
"offer": {
"network_offer_id": 123,
"network_id": 888,
"name": "Offer Name",
"offer_status": "active",
"network_tracking_domain_id": 123
},
"events_count": 0
},
"sale_amount": 0,
"coupon_code": "COUPONCODE"
},
// ...
],
"paging": {
"page": 1,
"page_size": 2000,
"total_count": 29
}
}
Query Filters
Query filters allow you to limit the scope of the report returned by the API. You could create a filter to limit the reporting data to a single partner for example. You can use multiple filters in a request.
Filters that apply to the same resource_type will act as OR operators. Different resource_type work with an AND operator.
The resource_type used in the query filters can take the following values :
offer, offer_creative, transaction_id, campaign, sub1, sub2, sub3, sub4, sub5, source_id, country, offer_url, browser, carrier, coupon_code, dma, device_brand, device_type, language, os_version, platform, and region.
Example: Filter conversions by sub1 value
The example call below will return conversions which have “sub1” set to “email” from 2025-03-01 to 2025-03-06.
curl --location 'https://HOSTNAME/api/reporting/conversions?page=1&page_size=5' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR KEY>' \
--data '{
"from": "2025-03-01",
"to": "2025-03-06",
"timezone_id": 90,
"show_conversions": true,
"show_events": false,
"query": {
"filters": [{
"resource_type": "sub1",
"filter_id_value": "email"
}]
}
}'
Example: Filter conversions by country value
The example call below will return conversions which have “country” set to “United States” from 2025-03-01 to 2025-03-06.
curl --location 'https://HOSTNAME/api/reporting/conversions?page=1&page_size=5' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR KEY>' \
--data '{
"from": "2025-03-01",
"to": "2025-03-06",
"timezone_id": 90,
"show_conversions": true,
"show_events": false,
"query": {
"filters": [{
"resource_type": "country",
"filter_id_value": "United States"
}]
}
}'
Example: Filter conversions by multiple resource type
The example call below will return conversions which have “country” set to “United States” and “sub1” set to “email” from 2025-03-01 to 2025-03-06.
curl --location 'https://HOSTNAME/api/reporting/conversions?page=1&page_size=5' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR KEY>' \
--data '{
"from": "2025-03-01",
"to": "2025-03-06",
"timezone_id": 90,
"show_conversions": true,
"show_events": false,
"query": {
"filters": [{
"resource_type": "country",
"filter_id_value": "United States"
},
{
"resource_type": "sub1",
"filter_id_value": "email"
}]
}
}'
Example: Filter conversions by multiple similar resource types
Filters that apply to the same resource_type will act as OR operators so if we want to filter conversions by multiple country filters, in this case Canada or the United States, we would do the following:
curl --location 'https://HOSTNAME/api/reporting/conversions?page=1&page_size=5' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR KEY>' \
--data '{
"from": "2025-03-01",
"to": "2025-03-06",
"timezone_id": 90,
"show_conversions": true,
"show_events": false,
"query": {
"filters": [{
"resource_type": "country",
"filter_id_value": "United States"
},
{
"resource_type": "country",
"filter_id_value": "Canada"
}]
}
}'