Skip to main content
MADIAD Hub exposes read-only reporting for the profiles and posts you own. Every endpoint is scoped to your account — profile metrics are keyed by your own profile_id, and post metrics require a request_id from one of your earlier publishes. These are GET requests and do not consume your upload or FFmpeg allowance.
Analytics covers ten channels: TikTok, Instagram, YouTube, Facebook, LinkedIn, X, Threads, Pinterest, Reddit and Bluesky. Google Business Profile and the manual-credential channels (Telegram, Discord, Slack, Mastodon, Nostr, Lemmy, dev.to, Hashnode, WordPress, Whop, listmonk) can be published to, but report no follower, reach, engagement or impression metrics — leave them out of the platforms list when requesting analytics. See Channels.

Profile analytics

Cross-platform follower, reach, and engagement metrics for a single profile.
The response wraps the per-platform metric payload under analytics:

Total impressions

Aggregated impressions for one profile over a date range or a named period.

Per-post analytics

Performance for a single post, identified by the request_id returned when you published it.
The request_id must belong to one of your own posts. Any other id returns 404 not_found.

Publish history

A paginated, newest-first list of everything you’ve published through MADIAD Hub.
status uses the same vocabulary as a publish response — completed, partial, failed or unknown — and error carries the reason when it is not completed. A post published asynchronously is recorded as accepted and settled to its real outcome once the platform answers, so a recent item can move from completed to partial or failed within the day. Use the request_id from a history item to fetch its per-post analytics or check its status.

Per-post metrics over 30 days

Platforms: Instagram · Facebook · YouTube · TikTok · LinkedIn · X · Threads · Pinterest · Reddit · Bluesky. One platform per call.
This answers “how did my recent posts do” — covering posts published through the Hub and posts you published by hand.
Optional: since, until, limit. A post published outside the Hub has no request_id to key on. Use the platform’s own id:

Audience — when they are online

Platforms: TikTok only. Others return 400 platform_not_supported naming what is supported. A TikTok account connected before this permission existed must be reconnected.
Not a generic best-time-to-post table: the number of your own followers connected in each hour of the day.
Returns country, gender and device breakdowns plus activity_by_hour. Optional start_date, end_date, benchmark_category.
Render the range in the response, not the one you asked for. The platform refuses a window ending today or later and keeps only 60 days, so your request may be trimmed before it runs — the two windows are not always the same.

Hashtag and keyword suggestions

Platforms: TikTok only. type=keywords additionally needs a reconnected TikTok account; type=hashtags works on any recently connected one.
type=hashtags gives the tags to pair with the keyword; type=keywords gives what people search around it.
Only TikTok answers these today; other platforms return 400 with error_code platform_not_supported.A TikTok account connected before this permission existed answers 400 with tiktok_reconnect_required. Reconnect TikTok from Connections and it works — this is not a fault on either side; the permission is granted at the moment the account is connected.