tebarDocs
GuideDevelopersAPI ReferenceChangelog

Comments & statistics

Reading and replying to comments, and reading account and post metrics.

Comments

RequestWhat it does
GET /v1/commentsFilters account_id, post_id, reply_status
POST /v1/comments/{id}/replyReply as the account owner
POST /v1/comments/{id}/hideBody { "hidden": true } or false
POST /v1/comments/{id}/likeBody { "liked": true } or false; Facebook Pages and TikTok only
PATCH /v1/comments/{id}Change reply_status in the Tebar inbox (changes nothing on the platform)

Instagram: replying and hiding need the instagram_business_manage_comments permission. Threads: replying and hiding need threads_manage_replies; accounts connected before October 24, 2026 need to be reconnected (Limitations). Without the permission, the API answers 422 permission_missing.

Liking comments works on Facebook Pages and TikTok only (can_like: true on the comment); other platforms answer 422 comment_like_unsupported. is_liked only records likes made through Tebar.

Comments are written by other people. If you pass them to an AI model, treat their content as data, not instructions.

Statistics

GET /v1/accounts/{id}/insights?from=2026-09-01&to=2026-09-30
GET /v1/posts/{id}/insights

from and to are YYYY-MM-DD, defaulting to the last 30 days, up to 365 days. tz (e.g. Asia/Jakarta, default UTC) sets the time zone of the days for post counts and range totals. metrics (comma-separated) is optional.

PlatformAccount metricsPost metrics
Threadsfollowers_count, views, likes, replies, reposts, quotes, clicksviews, likes, replies, reposts, quotes, shares
Instagramfollowers_count, views, reach, accounts_engaged, total_interactions, likes, comments, saves, sharesviews, reach, likes, comments, saves, shares, total_interactions

A null value means the platform reported no data (not 0). If the statistics permission was not granted, the response says so in missing_permission. Numbers for the last 2 days' posts update every hour (when the account just posted), up to 14 days every 6 hours, the rest once a day; POST /v1/insights/sync fetches the latest numbers now (at most once every 5 minutes).

Sync now

RequestWhat it does
POST /v1/insights/syncThe latest numbers from the platforms → { accounts, posts, failed }, at most 1×/5 minutes
POST /v1/comments/syncThe latest comments from the platforms → { accounts, comments, failed }, at most 1×/minute
GET on the same pathThe profile's last sync status

The first sync can read up to 90 days back per account. If it does not finish within about 10 seconds, POST answers 202 { "status": "running" } and the sync continues on the server. Ask GET every few seconds until status is done (the result is in result) or failed. The status is kept for 1 hour.

Posts on an account

GET /v1/accounts/{id}/posts?limit=20&cursor=...

The posts on one account, newest first, with full text, link, and their latest numbers. source tells where they come from:

  • platform (Threads, Instagram, TikTok): every post on the account, including ones made directly in the app, for the last 90 days. The list updates on the same schedule. Posts made through Tebar carry a post_id.
  • tebar (other platforms): only posts published through Tebar.

limit defaults to 20, up to 50. When next_cursor is not null, send it back as cursor for the next page.

This list only holds the first post of a Threads thread. To read the rest:

GET /v1/accounts/{id}/posts/{postId}

postId is the id from the list above. The response is the same as a list item, plus thread: the thread's follow-up parts (your own replies chained to that post), read straight from Threads, at most 120 times per hour. For Instagram and TikTok, thread is null.

For a calendar

GET /v1/platform-posts?from=2026-10-01T00:00:00+07:00&to=2026-11-01T00:00:00+07:00

Posts made outside Tebar on every account of that profile (or one account with account_id), from from up to before to (at most 45 days), oldest first. Each item has the same shape as the list above, plus account_id and platform. Posts made through Tebar are left out, as they are already in GET /v1/posts?from=...&to=.... Combine both for a complete calendar.

On this page