# com.honesthook/social-data

> Instagram, TikTok, Threads, Bluesky and 8 more: one API, one key, one JSON shape

- name: com.honesthook/social-data
- version: 1.0.1
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 81/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.honesthook%2Fsocial-data
- tools: https://api.protogrid.dev/v1/servers/com.honesthook%2Fsocial-data/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "social-data": {
      "type": "http",
      "url": "https://honesthook.com/api/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-16d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 81/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list carries no ttlMs, so clients re-fetch it

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- warn `tools.annotations`: only 6 of 12 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_platforms (destructiveHint, idempotentHint, openWorldHint); pricing (destructiveHint, idempotentHint, openWorldHint); list_endpoints (destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 2,419 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 19 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 12, about 2,419 tokens to load them all
- tool set hash: bcc85fb763b7805a66734ac7dd31cc62
- tools last changed: 2026-10-05T12:13:03.709Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.honesthook/social-data.svg)](https://protogrid.dev/servers/com.honesthook/social-data)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-05 `profile_history` changed (inputSchema)
- 2026-10-05 `fetch_posts` changed (description, inputSchema)
  - before: Read the recent posts of one public profile: the text, likes, replies, reposts, quotes, the post URL and when it was published. Threads, Bluesky and Mastodon. Boosts and reposts of other people are filtered out — you get what the account itself wrote, its replies included. `limit` is optional on Bluesky and Mastodon, and each has its own range: a value outside it is rejected rather than silently trimmed. Threads does not accept `limit` at all and answers 400 if you send it — its posts arrive inside the same document as the profile, so there is no upstream to ask for a count. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit.
  - after: Read the recent posts of one public profile: the text, likes, replies, reposts, quotes, the post URL and when it was published. Threads, Bluesky, Mastodon and Telegram. Boosts and reposts of other people are filtered out — you get what the account itself wrote, its replies included. `limit` is optional on Bluesky and Mastodon, and each has its own range: a value outside it is rejected rather than silently trimmed. Threads does not accept `limit` at all and answers 400 if you send it — its posts arrive inside the same document as the profile, so there is no upstream to ask for a count. Telegram ignores `limit`: it returns every post in the public preview page, with no login and no bot token. Telegram's `followers` is always null on this endpoint — the preview page only prints the subscriber count abbreviated, not exact. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit.
- 2026-10-05 `fetch_profile` changed (description, inputSchema)
  - before: Read one public profile and get the numbers back: follower count, following count, posts count, bio, verified flag and avatar. Works on Instagram, TikTok, Threads, Bluesky, Mastodon, GitHub, Pinterest, SoundCloud, Linktree and Medium. Mastodon handles are always `user@instance` — the local name alone identifies nobody. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit.
  - after: Read one public profile and get the numbers back: follower count, following count, posts count, bio, verified flag and avatar. Works on Instagram, TikTok, Threads, Bluesky, Mastodon, GitHub, Pinterest, SoundCloud, Linktree, Medium and Telegram. Mastodon handles are always `user@instance` — the local name alone identifies nobody. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit.
- 2026-10-05 `list_platforms` changed (description)
  - before: List every social platform HonestHook can read right now — the platforms you'd otherwise write a scraper for: Instagram, TikTok, Threads, Bluesky, Mastodon, GitHub, Pinterest, SoundCloud, Linktree, Medium — and what a handle looks like on each one. Use this before asking for a profile, to check the platform is covered and the handle format is right. No API key needed, and it costs 0 credits.
  - after: List every social platform HonestHook can read right now — the platforms you'd otherwise write a scraper for: Instagram, TikTok, Threads, Bluesky, Mastodon, GitHub, Pinterest, SoundCloud, Linktree, Medium, Telegram — and what a handle looks like on each one. Use this before asking for a profile, to check the platform is covered and the handle format is right. No API key needed, and it costs 0 credits.
- 2026-09-25 `github_repos` added
  - The public repositories of one GitHub account, with stars and forks. GitHub only — this is the one platform whose repositories we read. `limit` is optional: 30 by default, which is GitHub's own page size, and 100 at most, which is GitHub's ceiling. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit.
- 2026-09-25 `profile_history` added
  - The daily history of one public profile we have already archived: how its follower count moved, day by day. ⚠️ It only covers what was captured after somebody first asked for that profile — the series starts the day of the first call and never earlier, and the response says so in `covered_from`. A handle nobody ever asked for comes back with an empty series, which means 'we never looked', never 'nothing changed'. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit — free when nothing is found.
- 2026-09-25 `archive_trends` added
  - How a niche moved over a window we have already archived, grouped by item: where each account stood then and where it stands now. This is the question nobody can answer after the fact — nobody photographs the past retroactively. Call `archive_coverage` first for the valid niche ids and how far back the archive goes. `from` and `to` are ISO 8601; without them you get the last 7 days, and the archive caps any window at 90 days. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit — charged even when the result is empty.
- 2026-09-25 `archive_movers` added
  - Who grew and who shrank most in a niche, over a window we have already archived — the comparison done for you, ranked. Call `archive_coverage` first: it lists the valid niche ids and how far back each one goes. `hours` is 1 to 720 (30 days) and defaults to 24; `limit` is 1 to 100 and defaults to 20. A value outside the range is rejected rather than silently trimmed. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 10 credits — free when nothing moved.
- 2026-09-25 `fetch_posts` changed (title, description, inputSchema)
  - before: Read the recent posts of one public profile: the text, likes, replies, reposts, quotes, the post URL and when it was published. Threads, Bluesky and Mastodon. Boosts and reposts of other people are filtered out — you get what the account itself wrote, its replies included. `limit` is optional and each platform has its own range: a value outside it is rejected rather than silently trimmed, and Threads ignores `limit` entirely, because its posts arrive inside the same document as the profile. Requires an API key sent as `Authorization: Bearer <key>`; costs 1 credit.
  - after: Read the recent posts of one public profile: the text, likes, replies, reposts, quotes, the post URL and when it was published. Threads, Bluesky and Mastodon. Boosts and reposts of other people are filtered out — you get what the account itself wrote, its replies included. `limit` is optional on Bluesky and Mastodon, and each has its own range: a value outside it is rejected rather than silently trimmed. Threads does not accept `limit` at all and answers 400 if you send it — its posts arrive inside the same document as the profile, so there is no upstream to ask for a count. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit.
- 2026-09-25 `fetch_profile` changed (title, description)
  - before: Read one public profile and get the numbers back: follower count, following count, posts count, bio, verified flag and avatar. Works on Instagram, TikTok, Threads, Bluesky, Mastodon, GitHub, Pinterest, SoundCloud, Linktree and Medium. Mastodon handles are always `user@instance` — the local name alone identifies nobody. Requires an API key sent as `Authorization: Bearer <key>`; costs 1 credit.
  - after: Read one public profile and get the numbers back: follower count, following count, posts count, bio, verified flag and avatar. Works on Instagram, TikTok, Threads, Bluesky, Mastodon, GitHub, Pinterest, SoundCloud, Linktree and Medium. Mastodon handles are always `user@instance` — the local name alone identifies nobody. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit.

Full history: https://api.protogrid.dev/v1/servers/com.honesthook%2Fsocial-data/changes

## Remotes

- https://honesthook.com/api/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (12)

- `archive_coverage`: How much trend history HonestHook already holds, by niche — AI agents, developer tools, indie SaaS — with the most recent hourly window captured. Use this to check whether the archive goes back far enough for your question before you build on it. No API key needed, and it costs 0 credits.
- `archive_movers`: Who grew and who shrank most in a niche, over a window we have already archived — the comparison done for you, ranked. Call `archive_coverage` first: it lists the valid niche ids and how far back each one goes. `hours` is 1 to 720 (30 days) and defaults to 24; `limit` is 1 to 100 and defaults to 20. A value outside the range is rejected rather than silently trimmed. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 10 credits — free when nothing moved.
- `archive_trends`: How a niche moved over a window we have already archived, grouped by item: where each account stood then and where it stands now. This is the question nobody can answer after the fact — nobody photographs the past retroactively. Call `archive_coverage` first for the valid niche ids and how far back the archive goes. `from` and `to` are ISO 8601; without them you get the last 7 days, and the archive caps any window at 90 days. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit — charged even when the result is empty.
- `check_balance`: How many credits are left on your HonestHook API key: the free monthly allowance, the purchased balance, when the allowance renews, and what this cycle spent, broken down by endpoint. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key. Checking the balance costs 0 credits — reading it never changes it.
- `fetch_posts`: Read the recent posts of one public profile: the text, likes, replies, reposts, quotes, the post URL and when it was published. Threads, Bluesky, Mastodon and Telegram. Boosts and reposts of other people are filtered out — you get what the account itself wrote, its replies included. `limit` is optional on Bluesky and Mastodon, and each has its own range: a value outside it is rejected rather than silently trimmed. Threads does not accept `limit` at all and answers 400 if you send it — its posts arrive inside the same document as the profile, so there is no upstream to ask for a count. Telegram ignores `limit`: it returns every post in the public preview page, with no login and no bot token. Telegram's `followers` is always null on this endpoint — the preview page only prints the subscriber count abbreviated, not exact. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit.
- `fetch_profile`: Read one public profile and get the numbers back: follower count, following count, posts count, bio, verified flag and avatar. Works on Instagram, TikTok, Threads, Bluesky, Mastodon, GitHub, Pinterest, SoundCloud, Linktree, Medium and Telegram. Mastodon handles are always `user@instance` — the local name alone identifies nobody. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit.
- `get_docs`: How to authenticate, how the response envelope is shaped, what happens when credits run out, and where to get a free key with 1,000 credits a month and no card. Read this before writing code against the API. No API key needed, and it costs 0 credits.
- `github_repos`: The public repositories of one GitHub account, with stars and forks. GitHub only — this is the one platform whose repositories we read. `limit` is optional: 30 by default, which is GitHub's own page size, and 100 at most, which is GitHub's ceiling. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit.
- `list_endpoints`: List every HonestHook API endpoint: public profiles (followers, following, posts count, bio, verified), recent posts, the historical trend archive, and per-profile history. Returns the URL and the query parameters for each, and says which ones you can call as a tool on this server — profiles through `fetch_profile`, posts through `fetch_posts` — and which are HTTP only. No API key needed, and it costs 0 credits.
- `list_platforms`: List every social platform HonestHook can read right now — the platforms you'd otherwise write a scraper for: Instagram, TikTok, Threads, Bluesky, Mastodon, GitHub, Pinterest, SoundCloud, Linktree, Medium, Telegram — and what a handle looks like on each one. Use this before asking for a profile, to check the platform is covered and the handle format is right. No API key needed, and it costs 0 credits.
- `pricing`: What each HonestHook call costs in credits, and which calls are free when they find nothing. Includes the free monthly allowance that every key gets with no card, at https://honesthook.com/docs#key. Use this to estimate cost before building. No API key needed, and it costs 0 credits.
- `profile_history`: The daily history of one public profile we have already archived: how its follower count moved, day by day. ⚠️ It only covers what was captured after somebody first asked for that profile — the series starts the day of the first call and never earlier, and the response says so in `covered_from`. A handle nobody ever asked for comes back with an empty series, which means 'we never looked', never 'nothing changed'. Requires an API key sent as `Authorization: Bearer <key>` — free key at https://honesthook.com/docs#key; costs 1 credit — free when nothing is found.
