Data Supplements
The endpoints documented in this section allow you to fetch and manipulate data supplements via the API.
You can learn more about learn more about what data supplements are at the following link: https://helpdesk.everflow.io/customer/data-supplement
Fetch Data Supplements
This endpoint retrieves a structured table of Data Supplements, which represent manual or automated (via integrations) reporting adjustments applied to your network data. Supplements are typically used to correct discrepancies, reconcile billing, or inject offline data into your aggregated reporting statistics.
/v1/networks/supplements/table
Optional query filters can be added to the call
Paging
This endpoint supports paging. Refer to our User Guide for usage.
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.
{
"query": {
"filters": {
"network_affiliate_ids": [
10
],
"network_offer_ids": [
1,
2
],
"source_ids": [],
"supplement_source": "generic"
},
//...
}
}
translates to “Pull data supplements associated to offer_id 1 OR offer_id 2 AND network_affiliate_id 10 AND from the supplement_source of Generic”.
In addition to these filters json source details can be queried for as well
{
"query": {
//...,
"search_terms": [
{
"search_type": "json_text",
"value": "Manual: 1"
}
]
}
}
The above query will look for data supplements with a “source_details_json” value of “manual”: 1.
Body Params
Date from which you want to pull data supplements from. In the format “YYYY-MM-DD”
Date to which you want to pull data supplements from. In the format “YYYY-MM-DD”
Timezone from which you would like your interval to be pulled from
Request Example
cURL
curl --request GET 'https://api.eflow.team/v1/networks/supplements/table' \
--header 'X-Eflow-API-Key: <INSERT API KEY>' \
--header 'Content-Type: application/json' \
Payload
{
"to": "2026-02-10",
"from": "2026-02-01",
"timezone_id": 80,
"query": {
"filters": {
"network_affiliate_ids": [],
"network_offer_ids": [],
"source_ids": []
},
"search_terms": [
{
"search_type": "json_text",
"value": "parameter1: 1"
}
]
}
}
Response
{
"network_data_supplement_id": 1,
"network_id": 5,
"unix_timestamp": 1768032000,
"supplement_source": "generic",
"network_offer_id": 1,
"network_affiliate_id": 10,
"source_id": "source_id",
"sub1": "sub1",
"sub2": "sub2",
"sub3": "sub3",
"sub4": "sub4",
"sub5": "sub5",
"adv1": "adv1",
"adv2": "adv2",
"adv3": "adv3",
"adv4": "adv4",
"adv5": "adv5",
"currency_id": "USD",
"reporting": {
"imp": 15000,
"total_click": 350,
"unique_click": 300,
"invalid_click": 10,
"duplicate_click": 40,
"gross_click": 350,
"ctr": 2.333,
"cv": 15,
"invalid_cv_scrub": 0,
"view_through_cv": 1,
"total_cv": 16,
"event": 5,
"cvr": 4.571,
"evr": 31.25,
"cpc": 0.429,
"cpm": 10,
"cpa": 9.375,
"epc": 0.286,
"rpc": 0.714,
"rpa": 15.625,
"rpm": 16.667,
"payout": 150,
"revenue": 250,
"event_revenue": 50,
"gross_sales": 500,
"profit": 100,
"margin": 40,
"roas": 2,
"avg_sale_value": 31.25,
"media_buying_cost": 120,
"on_hold_potential_revenue": 0,
"on_hold_potential_payout": 0,
"on_hold_conversion_count": 0,
"public_events": 0
},
"network_offer_payout_revenue_id": 0,
"source_details_json": "{\"parameter1\": 1, \"parameter2\": 2}",
"time_created": 1770766284
}
Export Data Supplements
This endpoint behaves similarly to the endpoint above with 2 caveats:
- This endpoint doesn’t deal with paging so will return all data supplements from the query
- The data returned from this endpoint will be formatted in either csv or json.
This endpoint takes all the fields from the endpoint listed above with the addition of a format field which will either be csv or json.
/v1/networks/supplements/table/stream
Examples
cURL
curl --request GET 'https://api.eflow.team/v1/networks/supplements/table/stream' \
--header 'X-Eflow-API-Key: <INSERT API KEY>' \
--header 'Content-Type: application/json' \
Example : Pull all data supplements associated with offer_id 1 and affiliate_id 10 in JSON format.
{
"format": "json",
"from": "2026-01-11",
"query": {
"filters": {
"network_affiliate_ids": [
10
],
"network_offer_ids": [
1
],
"source_ids": []
},
"search_terms": []
},
"timezone_id": 80,
"to": "2026-02-11"
}
Create Data supplements
This endpoint allows you to programmatically inject/ create reporting adjustments into your network’s data.
/v1/networks/supplements
Body Params
The timestamp in which you would like the data to be placed in your reporting
This tells us what source this data supplement is coming from. The allowed value to be coming form the API is “generic”.
This field will take a json object used to give more context surrounding the data supplement being added. If left empty or emitted will be given the value {}.
The Id of the offer you would like this data supplement to be applied to.
The Id of the affiliate you would like this data supplement to be applied to.
The source_id that will be associated to the data supplement being created. If left empty or emitted will be given the value “".
The sub1 that will be associated to the data supplement being created. If left empty or emitted will be given the value “".
The sub2 that will be associated to the data supplement being created. If left empty or emitted will be given the value “".
The sub3 that will be associated to the data supplement being created. If left empty or emitted will be given the value “".
The sub4 that will be associated to the data supplement being created. If left empty or emitted will be given the value “".
The sub5 that will be associated to the data supplement being created. If left empty or emitted will be given the value “".
The adv1 that will be associated to the data supplement being created. If left empty or emitted will be given the value “".
The adv1 that will be associated to the data supplement being created. If left empty or emitted will be given the value “".
The adv1 that will be associated to the data supplement being created. If left empty or emitted will be given the value “".
The adv1 that will be associated to the data supplement being created. If left empty or emitted will be given the value “".
The adv1 that will be associated to the data supplement being created. If left empty or emitted will be given the value “".
The impression data to be added in reporting. If left empty or emitted will be given the value 0.
The total_clicks to be added in reporting. If left empty or emitted will be given the value 0.
The unique_click total to be added in reporting. If left empty or emitted will be given the value 0.
The invalid_click total to be added in reporting. If left empty or emitted will be given the value 0.
The duplicate_click total to be added in reporting. If left empty or emitted will be given the value 0.
The gross_click total to be added in reporting. If left empty or emitted will be given the value 0.
The conversion total to be added in reporting. If left empty or emitted will be given the value 0.
The conversion total that was scrubbed/throttled to be added in reporting. If left empty or emitted will be given the value 0.
The conversion total that came from view-through traffic to be added in reporting. If left empty or emitted will be given the value 0.
The events total to be added in reporting. If left empty or emitted will be given the value 0.
The public_events total to be added in reporting, this won’t be displayed back into the response but is recorded in reporting. If left empty or emitted will be given the value 0.
The payout total to be added in reporting. If left empty or emitted will be given the value 0.
The revenue total to be added in reporting. If left empty or emitted will be given the value 0.
The event_revenue total to be added in reporting. If left empty or emitted will be given the value 0.
The gross_sale total to be added in reporting. If left empty or emitted will be given the value 0.
The the media buying spend total to be added in reporting. If left empty or emitted will be given the value 0.
Request Example
cURL
curl --request GET 'https://api.eflow.team/v1/networks/supplements' \
--header 'X-Eflow-API-Key: <INSERT API KEY>' \
--header 'Content-Type: application/json' \
{
"unix_timestamp": 1768032000,
"supplement_source": "generic",
"network_offer_id": 1,
"network_affiliate_id": 10,
"source_id": "source_id",
"currency_id": "USD",
"source_details_json": "{\"parameter1\": 1, \"parameter2\": 2}",
"sub1": "sub1",
"sub2": "sub2",
"sub3": "sub3",
"sub4": "sub4",
"sub5": "sub5",
"adv1": "adv1",
"adv2": "adv2",
"adv3": "adv3",
"adv4": "adv4",
"adv5": "adv5",
"reporting": {
"imp": 15000,
"total_click": 350,
"unique_click": 300,
"invalid_click": 10,
"duplicate_click": 40,
"gross_click": 350,
"cv": 15,
"invalid_cv_scrub": 0,
"view_through_cv": 1,
"event": 5,
"public_events": 4,
"payout": 150.00,
"revenue": 200.00,
"event_revenue": 50.00,
"gross_sales": 500.00,
"media_buying_cost": 120.00
}
}
Response
{
"network_data_supplement_id": 1,
"network_id": 5,
"unix_timestamp": 1768032000,
"supplement_source": "generic",
"network_offer_id": 1,
"network_affiliate_id": 10,
"source_id": "source_id",
"sub1": "sub1",
"sub2": "sub2",
"sub3": "sub3",
"sub4": "sub4",
"sub5": "sub5",
"adv1": "adv1",
"adv2": "adv2",
"adv3": "adv3",
"adv4": "adv4",
"adv5": "adv5",
"currency_id": "USD",
"reporting": {
"imp": 15000,
"total_click": 350,
"unique_click": 300,
"invalid_click": 10,
"duplicate_click": 40,
"gross_click": 350,
"ctr": 2.333,
"cv": 15,
"invalid_cv_scrub": 0,
"view_through_cv": 1,
"total_cv": 16,
"event": 5,
"cvr": 4.571,
"evr": 31.25,
"cpc": 0.429,
"cpm": 10,
"cpa": 9.375,
"epc": 0.286,
"rpc": 0.714,
"rpa": 15.625,
"rpm": 16.667,
"payout": 150,
"revenue": 250,
"event_revenue": 50,
"gross_sales": 500,
"profit": 100,
"margin": 40,
"roas": 2,
"avg_sale_value": 31.25,
"media_buying_cost": 120,
"on_hold_potential_revenue": 0,
"on_hold_potential_payout": 0,
"on_hold_conversion_count": 0,
"public_events": 0
},
"network_offer_payout_revenue_id": 0,
"source_details_json": "{\"parameter1\": 1, \"parameter2\": 2}",
"time_created": 1770766284
}
Revert Data Supplements
This endpoint allows you to undo or negate previously applied reporting adjustments. By triggering a reversal, you ensure that specific data supplements are removed from your reporting aggregates, effectively restoring the data to its state prior to the adjustment.
/v1/networks/supplements/revert
Request Example
cURL
curl --request GET 'https://api.eflow.team/v1/networks/supplements/revert' \
--header 'X-Eflow-API-Key: <INSERT API KEY>' \
--header 'Content-Type: application/json' \
Example Payload
{
"data_supplement_ids": [
1,
2,
3,
...
]
}
Response
{
"result": true
}