Skip to main content
Which reporting tool should I use?
  • Aggregated stats (totals, trends, breakdowns) → run_performance_report or run_network_summary
  • Raw event records (individual clicks or conversions over a window) → search_activity (set type to click or conversion)
  • Single event by ID (attribution troubleshooting, dispute resolution) → get_entity with type="click", type="conversion", or type="transaction" (full attribution chain). See Events & Attribution.

get_report_schema

Returns the complete list of valid dimension keys, filter keys, and metric names for run_performance_report, plus an authoritative definition for every metric. Call this first if you’re unsure which keys to use — the exact strings returned here are the accepted values for dimensions, filters, and sort_by. It is also the source of truth for “what metrics are available?”, “how is <metric> calculated?”, and “what custom metrics do I have?”. Parameters: None. Response fields:
FieldTypeDescription
columnsarrayValid dimension keys for the dimensions parameter
filtersarrayValid filter keys for the filters parameter
metricsarrayValid metric names for sort_by — also returned in every report row
metric_definitionsarrayOne entry per metric, each { name, description, unit, formula, is_custom }
The metric_definitions entries describe how each metric is computed. unit is one of count, currency, percent, or ratio (see the percent note under run_performance_report). Entries with is_custom: true are this network’s user-defined custom metrics, returned with their formula — these are distinct from the custom_payout_revenue entity.

run_performance_report

Queries aggregated performance data grouped by one or more dimensions. The primary tool for campaign analysis, partner comparison, and revenue reporting. Parameters:
ParameterTypeRequiredDescription
fromstringYesStart date (YYYY-MM-DD)
tostringYesEnd date (YYYY-MM-DD)
dimensionsstringYesComma-separated dimensions (see below) — max 256 chars
filtersstringNoComma-separated inclusive type:value pairs — e.g. offer:123,affiliate:456 — max 4,096 chars total; sub-param values (sub1sub10, adv1adv10, source_id) max 600 chars each. Match several IDs for one ID filter by separating them with | — e.g. offer:1|2|5. Only inclusive filters are supported — there is no exclusion syntax.
metric_filtersstringNoNumeric conditions on the aggregated metric values — comma-separated, ANDed, max 10. E.g. clicks>100,cvr<2 or invalid_clicks<=0. Operators: >, >=, <, <=. The left side must be a metric name (not a dimension); use conversions, not cv. Applied after aggregation, before sorting and pagination. — max 1,024 chars
sort_bystringNoMetric name to sort by (see metrics accordion below) — max 128 chars
sort_directionstringNoasc or desc (default: desc) — max 8 chars
timezonestringNoIANA timezone name. Defaults to the network timezone (matches the Everflow portal) — max 64 chars
currencystringNoCurrency code. Defaults to the network’s base currency — max 8 chars
page_sizenumberNoRows per page (1–100, default 50)
cursorstringNoPagination cursor from a prior response — max 1,024 chars
The filters parameter uses comma-separated type:value strings — for example offer:123,affiliate:456,country_code:US. To match multiple values for the same ID filter, separate them with a pipe — offer:1|2|5 returns all three offers in a single query instead of running a separate report per offer. This differs from list_entities, which accepts a JSON object. See the filters accordion below for all valid keys.
filters and metric_filters are different axes. filters narrows by dimension/entity values (offer, affiliate, country, sub1, …); metric_filters narrows by metric values (clicks, conversions, invalid_clicks, revenue, cvr, …). A metric name is not a valid filters key, and vice-versa.Percent metrics: cvr, ctr, and margin are expressed as percentages (e.g. 2.84 means 2.84%), not 0–1 fractions. In metric_filters, write cvr<2 to mean “CVR under 2%”. For “no invalid traffic”, use invalid_clicks<=0.
Response envelope:
run_performance_report uses total_rows (not total_matching) in its pagination envelope, which differs from list tools like list_offers and list_affiliates.
FieldTypeDescription
next_cursorstringPass as cursor to retrieve the next page. Absent when there are no further pages.
rows_returnednumberNumber of rows in this page
total_rowsnumberThe true number of rows matching the query, before any cap. When result_capped is true this exceeds the number you can page to.
has_morebooleantrue when more pages exist for this query — fetch them by passing next_cursor back as cursor. This is ordinary pagination, not missing data.
result_cappedbooleantrue when the query matched more than the hard row limit and rows were dropped. Unlike has_more, paging every page will not return them — narrow the date range, add filters, or use fewer dimensions.
row_limitnumberPresent only when result_capped is true — the maximum rows the tool will return for one query (the cap that dropped rows).
has_more and result_capped are independent. has_more: true alone just means “page for the rest.” result_capped: true means the result is genuinely incomplete — to get complete data, narrow the date range, add more specific filters (e.g. a single affiliate or offer), or split the request into multiple smaller queries.
Pass one or more of these keys as a comma-separated dimensions string.Time
DimensionDescription
dateDay (YYYY-MM-DD)
hourHour of day (0–23)
hourlyFull datetime rounded to the hour
weekISO week
monthMonth (YYYY-MM)
yearYear
day_of_weekDay of week (0 = Sunday … 6 = Saturday)
Entities
DimensionDescription
offerOffer name
offer_idOffer ID
affiliateAffiliate name
affiliate_idAffiliate ID
advertiserAdvertiser name
advertiser_idAdvertiser ID
campaignSmart link / campaign name
campaign_idCampaign ID
creativeCreative name
creative_idCreative ID
offer_groupOffer group name
offer_group_idOffer group ID
offer_urlOffer URL
offer_statusOffer status
affiliate_statusAffiliate status
originating_offerOriginating offer in a redirect chain
categoryOffer category
networkNetwork identifier
source_idTraffic source ID
event_nameConversion event name
advertiser_event_nameAdvertiser-side event name
advertiser_campaign_nameAdvertiser campaign name
Geo
DimensionDescription
countryCountry name
country_codeISO 2-letter country code
regionRegion / state
cityCity
dmaDesignated market area (US only)
postal_codePostal code
Device & Technology
DimensionDescription
browserBrowser name
platformOS platform
device_typeDevice type (desktop, mobile, tablet)
device_makeDevice manufacturer
device_modelDevice model
os_versionOS version string
languageBrowser language
connection_typeConnection type (wifi, cellular, etc.)
carrierMobile carrier
ispInternet service provider
is_proxyWhether traffic came through a proxy
meta_platformMeta / Facebook platform
Tracking & Attribution
DimensionDescription
tracking_domainCustom tracking domain
transaction_idRaw transaction ID
attribution_methodAttribution method
order_idOrder ID passed on conversion
coupon_codeCoupon code
refererReferring URL
click_error_codeClick error code
conversion_error_codeConversion error code
People & Managers
DimensionDescription
affiliate_managerAffiliate manager name
account_managerAccount manager name
sales_managerSales manager name
account_executiveAccount executive name
customer_support_managerCustomer support manager name
admin_account_managerAdmin account manager name
Payout & Revenue
DimensionDescription
payout_typePayout model (CPA, CPC, etc.)
payout_amountPayout amount
revenue_typeRevenue model
revenue_amountRevenue amount
currencyCurrency code
custom_payout_revenueCustom payout/revenue rule name
custom_payout_revenue_idCustom payout/revenue rule ID
Sub-Parameters
DimensionDescription
sub1sub10Affiliate sub parameters (pass separately: sub1, sub2, …)
adv1adv10Advertiser sub parameters (pass separately: adv1, adv2, …)
App
DimensionDescription
project_idApp project ID
app_identifierApp identifier
bundle_idApp bundle ID
Pass filters as comma-separated inclusive type:value pairs — e.g. offer:123,affiliate:456,country_code:US. Only inclusive filters are supported — there is no exclusion syntax. status is not a supported filter or dimension on this tool; to filter conversions by status, use search_activity(type="conversion") instead.Multiple values (OR): for any ID filter, separate IDs with a pipe to match any of them in one query — offer:1|2|5 returns offers 1, 2, and 5 together. Repeating a key (offer:1,offer:2) does the same. Supported on the ID filters: offer, offer_group, affiliate, advertiser, creative, campaign, category, network, tracking_domain, channel. Prefer one multi-value query over many single-ID queries.Entities
FilterValue formatExample
offerNumeric offer IDoffer:123
offer_groupNumeric offer group IDoffer_group:45
affiliateNumeric affiliate IDaffiliate:678
advertiserNumeric advertiser IDadvertiser:99
creativeNumeric creative IDcreative:12
campaignNumeric campaign IDcampaign:7
categoryNumeric category IDcategory:3
networkNumeric network IDnetwork:1
source_idStringsource_id:google
event_nameStringevent_name:purchase
offer_urlNumeric URL IDoffer_url:8
offer_statusactive, paused, pending, deletedoffer_status:active
originating_offerNumeric offer IDoriginating_offer:123
transaction_id32-char hex stringtransaction_id:abc123...
error_codeNumeric error codeerror_code:0
coupon_codeStringcoupon_code:SUMMER20
tracking_domainNumeric domain IDtracking_domain:5
channelNumeric channel IDchannel:2
Georegion/city take internal numeric IDs; resolve a name to its ID with list_entities (type=region / type=city, and type=country for the country_id that scopes a region lookup).
FilterValue formatExample
countryISO 2-letter code (resolve names via list_entities type=country)country:US
country_codeISO 2-letter codecountry_code:US
regionNumeric region ID (resolve via list_entities type=region)region:1140
cityNumeric city ID (resolve via list_entities type=city, which requires region_id)city:534
Device & Technology
FilterValue formatExample
browserBrowser namebrowser:Chrome
device_typedesktop, mobile, tabletdevice_type:mobile
device_platformPlatform stringdevice_platform:iOS
device_makeManufacturer namedevice_make:Apple
device_modelModel namedevice_model:iPhone 15
carrierCarrier namecarrier:Verizon
languageBrowser language codelanguage:en-US
connection_typeConnection type stringconnection_type:wifi
People & Managers — numeric employee IDs; resolve a name with list_entities type=employee.
FilterValue formatExample
account_managerNumeric employee IDaccount_manager:55
affiliate_managerNumeric employee IDaffiliate_manager:12
sales_managerNumeric employee IDsales_manager:8
account_executiveNumeric employee IDaccount_executive:3
Sub-Parameters
FilterValue formatExample
sub1sub10Stringsub1:source_a
adv1adv10Stringadv1:campaign_x
Billing & Labels
FilterValue formatExample
labelLabel namelabel:top_affiliate
business_unitBusiness unit namebusiness_unit:retail
affiliate_tierTier nameaffiliate_tier:gold
billing_frequencyFrequency stringbilling_frequency:monthly
advertiser_billing_frequencyBilling frequencyadvertiser_billing_frequency:weekly
These are also the valid values for the sort_by parameter. Call get_report_schema for the same definitions in machine-readable form (metric_definitions), including any network-specific custom metrics.Volume
MetricDescription
impressionsAd impressions served
gross_clicksAll clicks before dedup/validation
clicksTotal valid clicks (post-dedup)
unique_clicksDistinct clicks within the dedup window
duplicate_clicksClicks dropped as duplicates
invalid_clicksClicks rejected by validation (geo, cap, fraud, …)
conversionsBase conversions; excludes scrubbed and view-through
total_conversions / total_cvConversions + scrubbed + view-through (does not include events)
eventsAdditional conversion events beyond the base conversion
Revenue & Cost
MetricDescription
payoutAmount paid to partners
revenueRevenue from advertisers, including event revenue
profitrevenue − payout
gross_salesSale amount attributed to conversions
media_buying_costPartner-reported media buying cost
Rates & Efficiency
MetricDescription
ctrClick-through rate = clicks ÷ impressions (percent)
cvrConversion rate = total conversions ÷ clicks (percent)
epcEarnings per click = (revenue − payout) ÷ clicks
rpcRevenue per click = revenue ÷ clicks
cpaCost per acquisition = payout ÷ conversion
cpcCost per click = payout ÷ clicks
cpmCost per thousand impressions = payout × 1000 ÷ impressions
roasReturn on ad spend = gross_sales ÷ revenue (ratio)
margin(revenue − payout) ÷ revenue (percent)
cvr, ctr, and margin are percentages (e.g. 2.84 = 2.84%), and roas is a ratio. This matters in metric_filters: cvr<2 means “under 2%“.

run_network_summary

Returns headline performance totals for a date range — no grouping, just aggregate numbers. Optionally includes a comparison against the prior equivalent period, and can be scoped to specific entities. Parameters:
ParameterTypeRequiredDescription
fromstringYesStart date (YYYY-MM-DD)
tostringYesEnd date (YYYY-MM-DD)
timezonestringNoIANA timezone name. Defaults to the network timezone (matches the Everflow portal) — max 64 chars
currencystringNoCurrency code. Defaults to the network’s base currency — max 8 chars
includestringNocomparison — adds prior-period metrics for delta analysis — max 256 chars
filtersstringNoScope the totals to specific entities — comma-separated type:value pairs. Supported keys: offer, affiliate, advertiser, creative, campaign (pipe for OR, e.g. offer:1|2). Applied to the comparison period too. — max 4,096 chars
filters enables a filtered period comparison — pair it with include=comparison to answer “is offer 91 up or down vs last week?”. Only the entity keys above are supported here; for breakdowns by country / device / sub-parameter / error-code, use run_performance_report instead — those dimensions are not available on the summary.

search_activity

Searches raw event records within a date-time window. Set type to choose the event stream:
  • type="click" — raw click events. Maximum 14-day window, up to 1,000 records.
  • type="conversion" — conversion events. Minimum reliable window is one full day in the network timezone, up to 500 records.
This tool is not paginated. It returns a single capped result set, sorted by most recent first, with a capped_at field indicating the ceiling (1,000 for clicks, 500 for conversions). For aggregated counts instead of raw records, use run_performance_report.
Results are automatically filtered by affiliate visibility. If your account has a limited affiliate scope, rows for affiliates outside that scope are silently excluded — counts may be lower than expected when querying without an affiliate_id filter.
Common parameters:
ParameterTypeRequiredDescription
typestringYesclick or conversion — selects the event stream
fromstringYesStart datetime (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS)
tostringYesEnd datetime
offer_idstringNoFilter by offer ID — max 64 chars
affiliate_idstringNoFilter by affiliate ID — max 64 chars
advertiser_idstringNoFilter by advertiser ID — max 64 chars
countrystringNoFilter by 2-letter ISO country code — max 64 chars
sub1sub10stringNoFilter by sub parameter value — max 600 chars each
source_idstringNoFilter by traffic source ID — max 600 chars
Type-specific parameters:
ParameterApplies toDescription
error_codetype="click"Filter by click error code
statustype="conversion"approved, pending, rejected, invalid
adv1adv10type="conversion"Filter by advertiser sub parameter value — max 600 chars each
The window is interpreted in the network’s timezone (matching run_performance_report / run_network_summary). For type="click" the maximum window is 14 days. For type="conversion" the minimum reliable window is one full day (YYYY-MM-DD 00:00:00 to YYYY-MM-DD 23:59:59); shorter windows may return an error. Passing a filter that doesn’t apply to the chosen type (e.g. status with type="click") returns an error.
Response envelope:
FieldTypeDescription
clicks / conversionsarrayArray of records, keyed by the requested type
totalnumberNumber of records returned
capped_atnumberHard ceiling applied — 1000 for clicks, 500 for conversions
truncatedbooleanPresent and true when more records matched than were returned (the result hit the cap)
total_matchingnumbertype="click" only — the true number of matching clicks when truncated (so you know how far over the cap you are)
notestringPresent when truncated — guidance to narrow filters/window, or use run_performance_report (e.g. dimensions=click_error_code / conversion_error_code) for counts and breakdowns instead of paging raw events
Per-record fields (type="click"): transaction_id, timestamp, offer_id, affiliate_id, advertiser_id, error_code, is_unique, payout, revenue, currency, country, sub1sub10, source_id. Per-record fields (type="conversion"): conversion_id, transaction_id, timestamp, click_timestamp, status, error_code, offer_id, offer_name, affiliate_id, affiliate_name, advertiser_id, advertiser_name, payout, revenue, sale_amount, event_id, order_id, country, sub1sub10, source_id. Fields that are empty/zero are omitted — coupon_code, is_scrub, event_name, and adv1adv10 appear only when populated.

Single-event & transaction lookup

Single-event lookups are served by the generic get_entity tool (type="click", type="conversion", or type="transaction" for the full attribution chain). Response fields, listing filters, and guidance on choosing between these and search_activity are on Events & Attribution.