Get follower stats
curl --request GET \
--url https://api.aisa.one/apis/v1/social/accounts/follower-stats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/social/accounts/follower-stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/social/accounts/follower-stats', 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.aisa.one/apis/v1/social/accounts/follower-stats",
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.aisa.one/apis/v1/social/accounts/follower-stats"
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.aisa.one/apis/v1/social/accounts/follower-stats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/social/accounts/follower-stats")
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{
"accounts": [
{
"_id": "<string>",
"isActive": true,
"platform": "tiktok",
"profileId": "<string>",
"accountStats": {
"boardCount": 123,
"followingCount": 123,
"likesCount": 123,
"listedCount": 123,
"mediaCount": 123,
"monthlyViews": 123,
"pinCount": 123,
"postsCount": 123,
"totalViews": 123,
"tweetCount": 123,
"videoCount": 123
},
"currentFollowers": 123,
"dataPoints": 123,
"displayName": "<string>",
"enabled": true,
"followersCount": 123,
"followersLastUpdated": "2023-11-07T05:31:56Z",
"growth": 123,
"growthPercentage": 123,
"lastUpdated": "2023-11-07T05:31:56Z",
"metadata": {},
"needsReconnection": true,
"parentAccountId": "<string>",
"platformUserId": "<string>",
"profilePicture": "<string>",
"profileUrl": "<string>",
"rateLimitedUntil": "2023-11-07T05:31:56Z",
"scopeAreas": [
"<string>"
],
"tiktokAccountType": "business",
"username": "<string>"
}
],
"dateRange": {
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z"
},
"granularity": "<string>",
"pagination": {
"limit": 123,
"nextCursor": "<string>"
},
"stats": {}
}{
"error": {
"code": "<string>",
"details": {},
"message": "<string>",
"param": "<string>",
"retryHint": "never",
"retryable": true,
"type": "<string>"
}
}AIsa Social
Get follower stats
Accounts. Read only; needs social:read. Ids are yours: accounts acc_..., profiles prf_..., posts pst_...; every other object id is checked against your accounts before the call. Without profileId or accountId it reads your default profile.
Returns follower count history and growth metrics for connected accounts.
Requires analytics add-on subscription. Follower counts are refreshed once per day.
<!-- aisa-pricing:start -->
A request reference price is not currently available; use a request quote where supported. Account-specific pricing and final settlement may differ.
<!-- aisa-pricing:end -->
GET
https://api.aisa.one
/
apis
/
v1
/
social
/
accounts
/
follower-stats
Get follower stats
curl --request GET \
--url https://api.aisa.one/apis/v1/social/accounts/follower-stats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/social/accounts/follower-stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/social/accounts/follower-stats', 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.aisa.one/apis/v1/social/accounts/follower-stats",
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.aisa.one/apis/v1/social/accounts/follower-stats"
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.aisa.one/apis/v1/social/accounts/follower-stats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/social/accounts/follower-stats")
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{
"accounts": [
{
"_id": "<string>",
"isActive": true,
"platform": "tiktok",
"profileId": "<string>",
"accountStats": {
"boardCount": 123,
"followingCount": 123,
"likesCount": 123,
"listedCount": 123,
"mediaCount": 123,
"monthlyViews": 123,
"pinCount": 123,
"postsCount": 123,
"totalViews": 123,
"tweetCount": 123,
"videoCount": 123
},
"currentFollowers": 123,
"dataPoints": 123,
"displayName": "<string>",
"enabled": true,
"followersCount": 123,
"followersLastUpdated": "2023-11-07T05:31:56Z",
"growth": 123,
"growthPercentage": 123,
"lastUpdated": "2023-11-07T05:31:56Z",
"metadata": {},
"needsReconnection": true,
"parentAccountId": "<string>",
"platformUserId": "<string>",
"profilePicture": "<string>",
"profileUrl": "<string>",
"rateLimitedUntil": "2023-11-07T05:31:56Z",
"scopeAreas": [
"<string>"
],
"tiktokAccountType": "business",
"username": "<string>"
}
],
"dateRange": {
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z"
},
"granularity": "<string>",
"pagination": {
"limit": 123,
"nextCursor": "<string>"
},
"stats": {}
}{
"error": {
"code": "<string>",
"details": {},
"message": "<string>",
"param": "<string>",
"retryHint": "never",
"retryable": true,
"type": "<string>"
}
}Request contract
- Method and path: GET /apis/v1/social/accounts/follower-stats
- Availability: enabled
- Request URL template:
https://api.aisa.one/apis/v1/social/accounts/follower-stats - accountIds: query; optional
- profileId: query; optional
- fromDate: query; optional
- toDate: query; optional
- granularity: query; optional
- limit: query; optional
- cursor: query; optional
- Runtime facts: 99acb5bddbedc8d3352e7c4fef86c3e6d8852c14772bcd18dbcf415237a642bd
{
"operationId": "get_aisa_social_apis_v1_social_accounts_follower_stats",
"method": "GET",
"path": "/apis/v1/social/accounts/follower-stats",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [
{
"description": "Your social accounts (acc_...). Comma-separated.",
"in": "query",
"name": "accountIds",
"required": false,
"schema": {
"description": "Comma-separated.",
"type": "string"
}
},
{
"description": "One of your profiles (prf_...). Defaults to your default profile when neither profileId nor accountId is sent.",
"in": "query",
"name": "profileId",
"required": false,
"schema": {
"pattern": "^prf_[0-9A-Za-z]{22}$",
"type": "string"
}
},
{
"description": "Start date in YYYY-MM-DD format (defaults to 30 days ago)",
"in": "query",
"name": "fromDate",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "End date in YYYY-MM-DD format (defaults to today)",
"in": "query",
"name": "toDate",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "Data aggregation level",
"in": "query",
"name": "granularity",
"required": false,
"schema": {
"default": "daily",
"enum": [
"daily",
"weekly",
"monthly"
],
"type": "string"
}
},
{
"description": "Accounts per page, ordered by account id. Send it to page through accounts; the response then carries `pagination.nextCursor`. Without limit or cursor every matching account is returned.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"maximum": 25,
"minimum": 1,
"type": "integer"
}
},
{
"description": "Opaque cursor from a previous response's `pagination.nextCursor`; returns the next page of `limit` accounts (25 when limit is omitted). A cursor we cannot parse returns 400.",
"in": "query",
"name": "cursor",
"required": false,
"schema": {
"type": "string"
}
}
],
"security": [
{
"bearerAuth": []
}
],
"x-aisa-status": "enabled",
"x-aisa-pricing": {
"description": "Included with your connected social accounts: AIsa does not charge per call.",
"kind": "no_customer_charge"
},
"components": {
"securitySchemes": {
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
}
}
Cost and request rules
A request reference price is not currently available; use a request quote where supported. Account-specific pricing and final settlement may differ. Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Comma-separated.
One of your profiles (prf_...). Defaults to your default profile when neither profileId nor accountId is sent.
Pattern:
^prf_[0-9A-Za-z]{22}$Start date in YYYY-MM-DD format (defaults to 30 days ago)
End date in YYYY-MM-DD format (defaults to today)
Data aggregation level
Available options:
daily, weekly, monthly Accounts per page, ordered by account id. Send it to page through accounts; the response then carries pagination.nextCursor. Without limit or cursor every matching account is returned.
Required range:
1 <= x <= 25Opaque cursor from a previous response's pagination.nextCursor; returns the next page of limit accounts (25 when limit is omitted). A cursor we cannot parse returns 400.