curl --request POST \
--url https://api.eflow.team/v1/networks/reporting/entity/summary \
--header 'Content-Type: application/json' \
--header 'X-Eflow-Api-Key: <api-key>' \
--data '
{
"from": "2026-03-01",
"to": "2026-03-08",
"timezone_id": 90,
"currency_id": "USD",
"columns": [
{
"column": "offer"
}
]
}
'import requests
url = "https://api.eflow.team/v1/networks/reporting/entity/summary"
payload = {
"from": "2026-03-01",
"to": "2026-03-08",
"timezone_id": 90,
"currency_id": "USD",
"columns": [{ "column": "offer" }]
}
headers = {
"X-Eflow-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Eflow-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
from: '2026-03-01',
to: '2026-03-08',
timezone_id: 90,
currency_id: 'USD',
columns: [{column: 'offer'}]
})
};
fetch('https://api.eflow.team/v1/networks/reporting/entity/summary', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eflow.team/v1/networks/reporting/entity/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'from' => '2026-03-01',
'to' => '2026-03-08',
'timezone_id' => 90,
'currency_id' => 'USD',
'columns' => [
[
'column' => 'offer'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Eflow-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eflow.team/v1/networks/reporting/entity/summary"
payload := strings.NewReader("{\n \"from\": \"2026-03-01\",\n \"to\": \"2026-03-08\",\n \"timezone_id\": 90,\n \"currency_id\": \"USD\",\n \"columns\": [\n {\n \"column\": \"offer\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Eflow-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.eflow.team/v1/networks/reporting/entity/summary")
.header("X-Eflow-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"from\": \"2026-03-01\",\n \"to\": \"2026-03-08\",\n \"timezone_id\": 90,\n \"currency_id\": \"USD\",\n \"columns\": [\n {\n \"column\": \"offer\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eflow.team/v1/networks/reporting/entity/summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Eflow-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"from\": \"2026-03-01\",\n \"to\": \"2026-03-08\",\n \"timezone_id\": 90,\n \"currency_id\": \"USD\",\n \"columns\": [\n {\n \"column\": \"offer\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"imp": 123,
"total_click": 123,
"unique_click": 123,
"invalid_click": 123,
"duplicate_click": 123,
"gross_click": 123,
"ctr": 123,
"cv": 123,
"invalid_cv_scrub": 123,
"view_through_cv": 123,
"total_cv": 123,
"event": 123,
"cvr": 123,
"evr": 123,
"cpc": 123,
"cpm": 123,
"cpa": 123,
"epc": 123,
"rpc": 123,
"rpa": 123,
"rpm": 123,
"payout": 123,
"revenue": 123,
"event_revenue": 123,
"gross_sales": 123,
"profit": 123,
"margin": 123,
"roas": 123,
"avg_sale_value": 123,
"media_buying_cost": 123,
"on_hold_potential_revenue": 123,
"on_hold_potential_payout": 123,
"on_hold_conversion_count": 123,
"public_events": 123
}Get Reporting Summary
curl --request POST \
--url https://api.eflow.team/v1/networks/reporting/entity/summary \
--header 'Content-Type: application/json' \
--header 'X-Eflow-Api-Key: <api-key>' \
--data '
{
"from": "2026-03-01",
"to": "2026-03-08",
"timezone_id": 90,
"currency_id": "USD",
"columns": [
{
"column": "offer"
}
]
}
'import requests
url = "https://api.eflow.team/v1/networks/reporting/entity/summary"
payload = {
"from": "2026-03-01",
"to": "2026-03-08",
"timezone_id": 90,
"currency_id": "USD",
"columns": [{ "column": "offer" }]
}
headers = {
"X-Eflow-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Eflow-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
from: '2026-03-01',
to: '2026-03-08',
timezone_id: 90,
currency_id: 'USD',
columns: [{column: 'offer'}]
})
};
fetch('https://api.eflow.team/v1/networks/reporting/entity/summary', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eflow.team/v1/networks/reporting/entity/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'from' => '2026-03-01',
'to' => '2026-03-08',
'timezone_id' => 90,
'currency_id' => 'USD',
'columns' => [
[
'column' => 'offer'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Eflow-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eflow.team/v1/networks/reporting/entity/summary"
payload := strings.NewReader("{\n \"from\": \"2026-03-01\",\n \"to\": \"2026-03-08\",\n \"timezone_id\": 90,\n \"currency_id\": \"USD\",\n \"columns\": [\n {\n \"column\": \"offer\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Eflow-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.eflow.team/v1/networks/reporting/entity/summary")
.header("X-Eflow-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"from\": \"2026-03-01\",\n \"to\": \"2026-03-08\",\n \"timezone_id\": 90,\n \"currency_id\": \"USD\",\n \"columns\": [\n {\n \"column\": \"offer\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eflow.team/v1/networks/reporting/entity/summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Eflow-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"from\": \"2026-03-01\",\n \"to\": \"2026-03-08\",\n \"timezone_id\": 90,\n \"currency_id\": \"USD\",\n \"columns\": [\n {\n \"column\": \"offer\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"imp": 123,
"total_click": 123,
"unique_click": 123,
"invalid_click": 123,
"duplicate_click": 123,
"gross_click": 123,
"ctr": 123,
"cv": 123,
"invalid_cv_scrub": 123,
"view_through_cv": 123,
"total_cv": 123,
"event": 123,
"cvr": 123,
"evr": 123,
"cpc": 123,
"cpm": 123,
"cpa": 123,
"epc": 123,
"rpc": 123,
"rpa": 123,
"rpm": 123,
"payout": 123,
"revenue": 123,
"event_revenue": 123,
"gross_sales": 123,
"profit": 123,
"margin": 123,
"roas": 123,
"avg_sale_value": 123,
"media_buying_cost": 123,
"on_hold_potential_revenue": 123,
"on_hold_potential_payout": 123,
"on_hold_conversion_count": 123,
"public_events": 123
}Authorizations
The Everflow API key generated from the Control Center > Security.
Body
Start date (format: YYYY-MM-DD).
End date (format: YYYY-MM-DD).
Timezone ID for the report.
Currency code for reporting metrics.
Columns to group/pivot data by. The summary totals are not affected by the columns value; however, filters and metric_filters still apply. This field is optional but typically included when using this endpoint alongside the entity/table endpoint.
Show child attributes
Show child attributes
Optional filters to narrow the report scope.
Response
Total impressions.
Total clicks.
Unique clicks.
Invalid clicks.
Duplicate clicks.
Gross clicks (total + invalid + duplicate).
Click-through rate.
Total conversions.
Scrubbed/throttled conversions.
View-through conversions.
Total conversions including scrubbed and view-through.
Total events.
Conversion rate.
Event rate.
Cost per click.
Cost per mille (thousand impressions).
Cost per action.
Earnings per click.
Revenue per click.
Revenue per action.
Revenue per mille (thousand impressions).
Total payout.
Total revenue.
Revenue from events.
Gross sales amount.
Total profit.
Profit margin percentage.
Return on ad spend.
Average sale value.
Media buying cost.
Potential revenue from on-hold conversions.
Potential payout from on-hold conversions.
Number of on-hold conversions.
Total public events.
Was this page helpful?
