Read post measurement history
curl --request GET \
--url https://api.dev.postinger.dev/public/v1/analytics/posts/{postId}/{accountId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.dev.postinger.dev/public/v1/analytics/posts/{postId}/{accountId}"
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/posts/{postId}/{accountId}', 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/posts/{postId}/{accountId}",
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/posts/{postId}/{accountId}"
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/posts/{postId}/{accountId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.postinger.dev/public/v1/analytics/posts/{postId}/{accountId}")
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": {
"postId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"accountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"items": [
{
"metrics": {
"views": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"reach": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"likes": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"comments": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"shares": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"saves": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"replies": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"watch_time_seconds": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"average_watch_time_seconds": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
}
},
"collectedAt": "2023-11-07T05:31:56Z"
}
]
},
"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>"
}
}Analytics
Read post measurement history
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. Returns up to the latest 1000 retained observations, oldest first. Recent 30 days keep raw observations; older history uses daily closing observations. Values are cumulative counters, not interval deltas. Empty items means no measurements yet. Another project’s post/account pair returns 404.
GET
/
analytics
/
posts
/
{postId}
/
{accountId}
Read post measurement history
curl --request GET \
--url https://api.dev.postinger.dev/public/v1/analytics/posts/{postId}/{accountId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.dev.postinger.dev/public/v1/analytics/posts/{postId}/{accountId}"
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/posts/{postId}/{accountId}', 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/posts/{postId}/{accountId}",
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/posts/{postId}/{accountId}"
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/posts/{postId}/{accountId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.postinger.dev/public/v1/analytics/posts/{postId}/{accountId}")
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": {
"postId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"accountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"items": [
{
"metrics": {
"views": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"reach": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"likes": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"comments": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"shares": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"saves": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"replies": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"watch_time_seconds": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
},
"average_watch_time_seconds": {
"value": "<string>",
"status": "available",
"collectedAt": "2023-11-07T05:31:56Z"
}
},
"collectedAt": "2023-11-07T05:31:56Z"
}
]
},
"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.
Was this page helpful?