curl --request POST \
--url https://api.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pixel_id": "<string>",
"aggregation": "event_total_counts",
"start_time": 4503599627370495,
"end_time": 4503599627370495,
"event": "<string>",
"event_source": "<string>",
"agent": "<string>",
"limit": 25,
"after": "<string>"
}
'import requests
url = "https://api.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get"
payload = {
"pixel_id": "<string>",
"aggregation": "event_total_counts",
"start_time": 4503599627370495,
"end_time": 4503599627370495,
"event": "<string>",
"event_source": "<string>",
"agent": "<string>",
"limit": 25,
"after": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pixel_id: '<string>',
aggregation: 'event_total_counts',
start_time: 4503599627370495,
end_time: 4503599627370495,
event: '<string>',
event_source: '<string>',
agent: '<string>',
limit: 25,
after: '<string>'
})
};
fetch('https://api.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get', 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.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get",
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([
'pixel_id' => '<string>',
'aggregation' => 'event_total_counts',
'start_time' => 4503599627370495,
'end_time' => 4503599627370495,
'event' => '<string>',
'event_source' => '<string>',
'agent' => '<string>',
'limit' => 25,
'after' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get"
payload := strings.NewReader("{\n \"pixel_id\": \"<string>\",\n \"aggregation\": \"event_total_counts\",\n \"start_time\": 4503599627370495,\n \"end_time\": 4503599627370495,\n \"event\": \"<string>\",\n \"event_source\": \"<string>\",\n \"agent\": \"<string>\",\n \"limit\": 25,\n \"after\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pixel_id\": \"<string>\",\n \"aggregation\": \"event_total_counts\",\n \"start_time\": 4503599627370495,\n \"end_time\": 4503599627370495,\n \"event\": \"<string>\",\n \"event_source\": \"<string>\",\n \"agent\": \"<string>\",\n \"limit\": 25,\n \"after\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pixel_id\": \"<string>\",\n \"aggregation\": \"event_total_counts\",\n \"start_time\": 4503599627370495,\n \"end_time\": 4503599627370495,\n \"event\": \"<string>\",\n \"event_source\": \"<string>\",\n \"agent\": \"<string>\",\n \"limit\": 25,\n \"after\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyPixel-stats get
Read recent event activity directly from Meta’s pixel/dataset stats edge, even when no ad sets use it. Default event_total_counts lists standard and custom event names (in value) and counts. Supports all SDK aggregations plus exact event, event_source (WEB_ONLY/SERVER_ONLY), agent and UTC Unix time filters. Use this for prelaunch ‘is this dataset receiving Lead Generated?’ checks; adside meta insights get and warehouse conversions measure attributed ad results and cannot answer that question. Meta retains only seven days of stats. Results are aggregate diagnostics, not individual event payloads or Events Manager Test Events. diagnostics_hourly_last_timestamp is Meta’s diagnostic timestamp, not a guaranteed exact last firing time. Empty data means no results for this query, not never fired. Counts across different aggregations/sources may overlap; do not sum them.
CLI: adside meta pixel-stats get
curl --request POST \
--url https://api.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pixel_id": "<string>",
"aggregation": "event_total_counts",
"start_time": 4503599627370495,
"end_time": 4503599627370495,
"event": "<string>",
"event_source": "<string>",
"agent": "<string>",
"limit": 25,
"after": "<string>"
}
'import requests
url = "https://api.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get"
payload = {
"pixel_id": "<string>",
"aggregation": "event_total_counts",
"start_time": 4503599627370495,
"end_time": 4503599627370495,
"event": "<string>",
"event_source": "<string>",
"agent": "<string>",
"limit": 25,
"after": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pixel_id: '<string>',
aggregation: 'event_total_counts',
start_time: 4503599627370495,
end_time: 4503599627370495,
event: '<string>',
event_source: '<string>',
agent: '<string>',
limit: 25,
after: '<string>'
})
};
fetch('https://api.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get', 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.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get",
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([
'pixel_id' => '<string>',
'aggregation' => 'event_total_counts',
'start_time' => 4503599627370495,
'end_time' => 4503599627370495,
'event' => '<string>',
'event_source' => '<string>',
'agent' => '<string>',
'limit' => 25,
'after' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get"
payload := strings.NewReader("{\n \"pixel_id\": \"<string>\",\n \"aggregation\": \"event_total_counts\",\n \"start_time\": 4503599627370495,\n \"end_time\": 4503599627370495,\n \"event\": \"<string>\",\n \"event_source\": \"<string>\",\n \"agent\": \"<string>\",\n \"limit\": 25,\n \"after\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pixel_id\": \"<string>\",\n \"aggregation\": \"event_total_counts\",\n \"start_time\": 4503599627370495,\n \"end_time\": 4503599627370495,\n \"event\": \"<string>\",\n \"event_source\": \"<string>\",\n \"agent\": \"<string>\",\n \"limit\": 25,\n \"after\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.adside.ai/v1/workspaces/{workspaceId}/meta/pixel-stats/get")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pixel_id\": \"<string>\",\n \"aggregation\": \"event_total_counts\",\n \"start_time\": 4503599627370495,\n \"end_time\": 4503599627370495,\n \"event\": \"<string>\",\n \"event_source\": \"<string>\",\n \"agent\": \"<string>\",\n \"limit\": 25,\n \"after\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
A personal API key (adside_pat_…) or a token from adside login. Either carries the permissions of the person it belongs to.
Path Parameters
1Body
Pixel/dataset ID from adside meta account-pixels get; independent of ad-set attachment.
^\d+$event_total_counts lists standard/custom event names and counts; event for time buckets; event_source for browser/server mix; event_processing_results for diagnostics; host/url for origins; match_keys/had_pii for matching. Returns Meta's original aggregation/value/event fields.
browser_type, custom_data_field, device_os, device_type, event, event_detection_method, event_processing_results, event_source, event_total_counts, event_value_count, had_pii, host, match_keys, pixel_fire, url, url_by_rule UTC Unix seconds. Defaults to the earliest retained time (seven days before request time). Meta retains only the last seven days.
0 <= x <= 9007199254740991UTC Unix seconds, after start_time. Defaults to now.
0 <= x <= 9007199254740991Exact event name, including spaces/case, e.g. Lead Generated or Schedule.
1 - 256Meta event-source filter, e.g. WEB_ONLY or SERVER_ONLY. The SDK defines this as a string; Meta validates supported values.
1 - 100Optional SDK agent filter; omit unless diagnosing a specific integration agent.
1 - 256Maximum stats buckets requested per page; nested results also have a response-size cap.
1 <= x <= 100Next-page cursor; requires the same explicit start_time/end_time and filters as the original query. The requested window is preserved, but Meta's rolling retention may remove oldest data between pages.
1 - 4096Response
Success