curl --request GET \
--url https://api.dev.postinger.dev/public/v1/analytics/report \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.dev.postinger.dev/public/v1/analytics/report"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.dev.postinger.dev/public/v1/analytics/report', 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.dev.postinger.dev/public/v1/analytics/report",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.dev.postinger.dev/public/v1/analytics/report"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.dev.postinger.dev/public/v1/analytics/report")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.postinger.dev/public/v1/analytics/report")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"from": "2023-12-25",
"to": "2023-12-25",
"timezone": "UTC",
"generatedAt": "2023-11-07T05:31:56Z",
"selection": {
"platforms": [
"instagram"
]
},
"comparison": {
"from": "2023-12-25",
"to": "2023-12-25",
"days": 0
},
"previous": {
"from": "2023-12-25",
"to": "2023-12-25"
},
"metrics": {
"followers": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
},
"views": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
},
"likes": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
},
"comments": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
},
"shares": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
},
"saves": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
}
},
"freshness": {
"collectedAt": "2023-11-07T05:31:56Z",
"accountsObserved": 0,
"accountsTotal": 0
}
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}Read account analytics report
Required permissions: analytics-read. Reads stored measurements only; never triggers collection. Counters are decimal strings; null means missing data, not zero. generatedAt is the response time, collectedAt is the measurement time. Optionally filter by accountId and platform. Unsupported or disabled platforms return 400. Disconnected accounts are excluded; needs_reauth accounts retain stored history. Report freshness uses the oldest latest daily collection in the selected range; use accountsObserved/accountsTotal to detect incomplete coverage. partial and comparisonReason explain missing coverage. Followers value is the last observed total; its chart points are daily changes. Other metrics are daily activity totals.
curl --request GET \
--url https://api.dev.postinger.dev/public/v1/analytics/report \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.dev.postinger.dev/public/v1/analytics/report"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.dev.postinger.dev/public/v1/analytics/report', 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.dev.postinger.dev/public/v1/analytics/report",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.dev.postinger.dev/public/v1/analytics/report"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.dev.postinger.dev/public/v1/analytics/report")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.postinger.dev/public/v1/analytics/report")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"from": "2023-12-25",
"to": "2023-12-25",
"timezone": "UTC",
"generatedAt": "2023-11-07T05:31:56Z",
"selection": {
"platforms": [
"instagram"
]
},
"comparison": {
"from": "2023-12-25",
"to": "2023-12-25",
"days": 0
},
"previous": {
"from": "2023-12-25",
"to": "2023-12-25"
},
"metrics": {
"followers": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
},
"views": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
},
"likes": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
},
"comments": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
},
"shares": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
},
"saves": {
"points": [
{
"time": "2023-11-07T05:31:56Z",
"value": "<string>",
"partial": true
}
],
"value": "<string>",
"partial": true,
"comparisonValue": "<string>",
"previousValue": "<string>",
"change": 123,
"comparisonReason": "incomplete_period"
}
},
"freshness": {
"collectedAt": "2023-11-07T05:31:56Z",
"accountsObserved": 0,
"accountsTotal": 0
}
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Inclusive UTC date. Both dates are required; at most 366 days.
Inclusive UTC date. Both dates are required; at most 366 days.
instagram, facebook, youtube, tiktok Was this page helpful?