Overview

Public social media data from 10 platforms, 62 actions, one API — profiles, posts, comments, followers and search as JSON

Social Media Data gives you public data from TikTok, Instagram, X (Twitter), LinkedIn, Facebook, YouTube, Reddit, Threads, Pinterest and Snapchat through one API. Profiles, posts, comments, followers, videos, jobs, ads and search — each a single call that returns structured JSON with parsed fields, not HTML.

No scrapers to maintain, no proxies, no logins. Every action here reads public data, so you never hand us an account.

Platforms

PlatformActionsWhat you get
TikTok6Profiles, videos, comments, keyword search and transcripts.
Instagram6Profiles, posts, post detail, comments, hashtag search and followers.
X (Twitter)4Profiles, user tweets, tweet detail and keyword search.
LinkedIn14People, companies, posts, comments, jobs, ads and people search.
Facebook4Pages, page posts, comments and the Meta Ad Library.
YouTube6Search, video details, channels, comments, related videos and suggestions.
Reddit7Post search, subreddit feeds, post details with comments, subreddit and user info.
Threads9Profiles, posts, replies, thread details, account search and the public feed.
Pinterest4Profiles, pin detail, board pins and search.
Snapchat2Public profiles and Spotlight videos.

See every action with its action_id, credits and a real response.

Explore

How it works

Each action is a Wire action you call with one endpoint. Three steps:

  1. Get an API key — from Settings → API Keys in the dashboard. Pass it as X-API-Key on every request.
  2. Submit a call — POST /v1/wire/task with the action's action_id and params. It returns a job_id right away.
  3. Collect the result — GET /v1/wire/jobs/{job_id} until status: "completed", or add a webhook_url and receive a signed wire.job.completed event. Most social calls finish in 5–20 seconds.
curl -X POST https://api.anakin.io/v1/wire/task \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"action_id": "tiktok_profile", "params": {"username": "khaby.lame"}}'

What comes back

The job result wraps the action's output in a fixed envelope. data.status tells you whether the action succeeded; data.data holds the fields documented on each action.

{
  "status": "completed",
  "credits_used": 2,
  "execution_ms": 3182,
  "data": {
    "status": "ok",
    "data": {
      "username": "khaby.lame",
      "nickname": "Khabane lame",
      "user_id": "127905465618821121",
      "bio": "Se vuoi ridere sei nel posto giusto😎 If u wanna laugh u r in the right place😎",
      "verified": true,
      "followers": 163000000,
      "following": 81,
      "likes": 2700000000,
      "videos": 1358,
      "avatar_url": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/08987e23b94057953fd4f1738694bf5f~tplv-tiktokx-cropcenter:1080:1080.jpeg?…",
      "profile_url": "https://www.tiktok.com/@khaby.lame"
    },
    "files": [],
    "error": null,
    "meta": {
      "action_id": "tiktok_profile",
      "catalog_slug": "tiktok",
      "execution_ms": 3058,
      "envelope_version": "v1"
    }
  }
}
FieldTypeDescription
statusstringJob status: processing, completed or failed
credits_usednumberCredits charged for this call (0 when it failed)
data.statusstring"ok", or "error" with data.error set
data.dataobjectThe action's output — see the action for its fields
data.errorstring | nullA short message when the action could not get the data (private account, not found, rate-limited)
data.metaobjectaction_id, catalog_slug and the envelope version

Paging, limits and cost

  • Paged actions (feeds, comments, search) return one page per call plus next_cursor. Pass it back as cursor for the next page; it's null when there are no more. Reddit uses after the same way; LinkedIn people search uses page.
  • limit actions let you ask for more than the default page in one call. The price grows with limit — the formula is on each action and on Pricing.
  • A standard lookup is 2 credits — one profile, one post, one page. Credits come from your social data plan and your one Anakin balance; see Pricing.
  • Only successful calls are charged. A failed job refunds its credits automatically.

Errors

Submit-time errors (bad action_id, not enough credits) come back as HTTP errors from POST /v1/wire/task. Data-time problems — a private or deleted account, a post that no longer exists — complete the job with data.status: "error" and a one-line data.error, and are not charged.