curl --request GET \
--url https://api.madiad.com/v1/analytics/posts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.madiad.com/v1/analytics/posts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.madiad.com/v1/analytics/posts', 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.madiad.com/v1/analytics/posts",
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.madiad.com/v1/analytics/posts"
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.madiad.com/v1/analytics/posts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.madiad.com/v1/analytics/posts")
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{}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}Số liệu các bài gần đây
Các bài một hồ sơ đã đăng trên một kênh trong khoảng 30 ngày gần đây, mới nhất trước, kèm số liệu đã biết của từng bài. Bài đăng qua API này có trong danh sách khi kênh đã trả về mã bài (100 bài mới nhất của mỗi kênh trong khoảng). Bài chưa được đọc số liệu thì metrics là null; mỗi lần gọi đọc tối đa 6 bài như vậy trong chính danh sách trả về, bài mới nhất trước. Bài mà kênh không cho số liệu thì vẫn là null và được để yên khoảng 30 phút. seed=false thì bỏ qua bước đọc đó. Bài đăng ngoài API có trong danh sách sau khi số liệu của nó được đọc bằng GET /v1/analytics/post-organic. limit (mặc định 50, tối đa 200), since và until để thu hẹp kết quả. limit và has_more nói về chính kết quả này (không có con trỏ trang: muốn xem thêm thì tăng limit); cached_posts_in_range và published_posts_in_range là bộ đếm của kho số liệu, không phải của danh sách. Muốn biết các bài gần đây chạy ra sao thì dùng lệnh này.
curl --request GET \
--url https://api.madiad.com/v1/analytics/posts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.madiad.com/v1/analytics/posts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.madiad.com/v1/analytics/posts', 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.madiad.com/v1/analytics/posts",
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.madiad.com/v1/analytics/posts"
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.madiad.com/v1/analytics/posts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.madiad.com/v1/analytics/posts")
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{}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}Ủy quyền
API key của bạn, gửi ở header Authorization: Bearer <key>. Một key quản lý mọi hồ sơ trong tài khoản.
Tham số truy vấn
Id của hồ sơ thương hiệu cần thao tác. Lấy danh sách bằng GET /v1/profiles.
Một mã kênh.
tiktok, instagram, linkedin, youtube, facebook, x, threads, pinterest, reddit, bluesky, google_business, telegram, discord, slack, mastodon, nostr, lemmy, devto, hashnode, wordpress, whop, listmonk Mốc đầu của khoảng thời gian.
Mốc cuối của khoảng thời gian.
Số dòng tối đa trả về.
false thì chỉ liệt kê bài, không đọc số liệu của bài nào từ kênh trong lần gọi này. Mặc định true.
Phản hồi
Thành công.
Lớp vỏ phản hồi thì ổn định — một profile_id kèm phần nội dung — nhưng các trường bên trong chưa được ghim chặt trong tài liệu này.

