Skip to main content
POST
/
partners
/
reporting
/
entity
Get Aggregated Reporting Data
curl --request POST \
  --url https://api.eflow.team/v1/partners/reporting/entity \
  --header 'Content-Type: application/json' \
  --header 'X-Eflow-Api-Key: <api-key>' \
  --data '
{
  "from": "2026-03-01",
  "to": "2026-04-01",
  "timezone_id": 85,
  "currency_id": "USD",
  "columns": [
    {
      "column": "advertiser"
    },
    {
      "column": "offer"
    }
  ],
  "query": {
    "filters": [
      {
        "resource_type": "advertiser",
        "filter_id_value": "3539"
      }
    ]
  }
}
'
import requests

url = "https://api.eflow.team/v1/partners/reporting/entity"

payload = {
"from": "2026-03-01",
"to": "2026-04-01",
"timezone_id": 85,
"currency_id": "USD",
"columns": [{ "column": "advertiser" }, { "column": "offer" }],
"query": { "filters": [
{
"resource_type": "advertiser",
"filter_id_value": "3539"
}
] }
}
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-04-01',
timezone_id: 85,
currency_id: 'USD',
columns: [{column: 'advertiser'}, {column: 'offer'}],
query: {filters: [{resource_type: 'advertiser', filter_id_value: '3539'}]}
})
};

fetch('https://api.eflow.team/v1/partners/reporting/entity', 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/partners/reporting/entity",
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-04-01',
'timezone_id' => 85,
'currency_id' => 'USD',
'columns' => [
[
'column' => 'advertiser'
],
[
'column' => 'offer'
]
],
'query' => [
'filters' => [
[
'resource_type' => 'advertiser',
'filter_id_value' => '3539'
]
]
]
]),
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/partners/reporting/entity"

payload := strings.NewReader("{\n \"from\": \"2026-03-01\",\n \"to\": \"2026-04-01\",\n \"timezone_id\": 85,\n \"currency_id\": \"USD\",\n \"columns\": [\n {\n \"column\": \"advertiser\"\n },\n {\n \"column\": \"offer\"\n }\n ],\n \"query\": {\n \"filters\": [\n {\n \"resource_type\": \"advertiser\",\n \"filter_id_value\": \"3539\"\n }\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/partners/reporting/entity")
.header("X-Eflow-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"from\": \"2026-03-01\",\n \"to\": \"2026-04-01\",\n \"timezone_id\": 85,\n \"currency_id\": \"USD\",\n \"columns\": [\n {\n \"column\": \"advertiser\"\n },\n {\n \"column\": \"offer\"\n }\n ],\n \"query\": {\n \"filters\": [\n {\n \"resource_type\": \"advertiser\",\n \"filter_id_value\": \"3539\"\n }\n ]\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.eflow.team/v1/partners/reporting/entity")

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-04-01\",\n \"timezone_id\": 85,\n \"currency_id\": \"USD\",\n \"columns\": [\n {\n \"column\": \"advertiser\"\n },\n {\n \"column\": \"offer\"\n }\n ],\n \"query\": {\n \"filters\": [\n {\n \"resource_type\": \"advertiser\",\n \"filter_id_value\": \"3539\"\n }\n ]\n }\n}"

response = http.request(request)
puts response.read_body
{
  "summary": {
    "imp": 123,
    "total_click": 123,
    "unique_click": 123,
    "invalid_click": 123,
    "duplicate_click": 123,
    "ctr": 123,
    "cv": 123,
    "view_through_cv": 123,
    "event": 123,
    "cvr": 123,
    "evr": 123,
    "rpc": 123,
    "rpm": 123,
    "revenue": 123,
    "redirect_traffic_revenue": 123,
    "referral_revenue": 123
  },
  "performance": [
    {
      "unix": 123,
      "reporting": {
        "imp": 123,
        "total_click": 123,
        "unique_click": 123,
        "invalid_click": 123,
        "duplicate_click": 123,
        "ctr": 123,
        "cv": 123,
        "view_through_cv": 123,
        "event": 123,
        "cvr": 123,
        "evr": 123,
        "rpc": 123,
        "rpm": 123,
        "revenue": 123,
        "redirect_traffic_revenue": 123,
        "referral_revenue": 123
      }
    }
  ],
  "table": {
    "rows": [
      {
        "columns": [
          {
            "column_type": "<string>",
            "id": "<string>",
            "label": "<string>"
          }
        ],
        "reporting": {
          "imp": 123,
          "total_click": 123,
          "unique_click": 123,
          "invalid_click": 123,
          "duplicate_click": 123,
          "ctr": 123,
          "cv": 123,
          "view_through_cv": 123,
          "event": 123,
          "cvr": 123,
          "evr": 123,
          "rpc": 123,
          "rpm": 123,
          "revenue": 123,
          "redirect_traffic_revenue": 123,
          "referral_revenue": 123
        }
      }
    ]
  },
  "incomplete_results": true,
  "has_all_impression_packages": true
}
Returns aggregated reporting data across all brand connections. The response includes a summary of totals, a daily performance breakdown, and a table of rows grouped by the requested columns. Only the advertiser filter is supported for narrowing results.

Authorizations

X-Eflow-Api-Key
string
header
required

The Marketplace API key found in My Account > API on partners.everflow.io.

Body

application/json
from
string
required

Start date (format: YYYY-MM-DD).

to
string
required

End date (format: YYYY-MM-DD).

timezone_id
integer
required

Timezone ID for the report. Can be found using the metadata API.

currency_id
string
required

Currency code for reporting metrics (e.g. USD).

columns
object[]
required

Columns to group/pivot data by. At least one column must be specified.

query
object

Optional query filters.

Response

200 - application/json

Aggregated reporting data, daily performance breakdown, and grouped table data for the requested columns and filters.

summary
object

Aggregated totals across all matching data.

performance
object[]

Daily performance breakdown. Each entry represents one day within the requested date range.

table
object

Grouped reporting data broken down by the requested columns.

incomplete_results
boolean

Whether the result set was truncated due to row limits.

has_all_impression_packages
boolean

Whether all impression packages are included in the results.