Docs

Socialytics docs

Live trend data from 27 platforms through 5 tools, over MCP in your AI assistant or the REST API in your code. One key for both.

MCP, sign inhttps://socialytics.dev/mcpClaude, ChatGPT: sign in, no key to paste
MCP, API keyhttps://api.trendsmcp.ai/mcpCursor, VS Code and other clients
RESTPOST https://api.trendsmcp.ai/apiJSON body with mode

From zero to your first answer

Get a free API key

Email and an 8-digit code. No password, no card. 100 requests a month on Free.

Get my free API key

No credit cardInstant delivery100 free requests/mo
LIVE17,105,811API calls served
Loved by developers

Connect your AI, or call the API

Pick your assistant to add Socialytics as an MCP server, or copy a request for your code.

MCPIn your AI assistant

Ask Claude, ChatGPT or Cursor about trends in plain language. They fetch the data from Socialytics for you. No code.

Connect with your Socialytics account. No API key to copy.

  1. Add the connector below. The name and URL are prefilled.
  2. Sign in to Socialytics and approve access.
  3. Start a chat with Socialytics enabled and ask a trend question.
Add to Claude ↗

Using Claude Code? Run this in your terminal, then type /mcp in Claude Code to sign in.

claude mcp add --transport http --scope user socialytics https://socialytics.dev/mcp
Set up manually

In Claude, open Settings → Connectors and add a custom connector named Socialytics. Enter this URL, then connect and sign in.

https://socialytics.dev/mcp
Full setup guide →
Test your connection

Once connected, paste this into your AI and check that it uses Socialytics to fetch results.

Using Socialytics, what is trending on Google right now?

API key setup / other AI clients

Two addresses, same data. Clients that sign in (Claude, ChatGPT, Claude Code) use https://socialytics.dev/mcp. Clients that send an API key (Cursor, VS Code, others) use https://api.trendsmcp.ai/mcp with the config below.

{"mcpServers": {"socialytics": {"url": "https://api.trendsmcp.ai/mcp","headers": {"Authorization": "Bearer YOUR_API_KEY"}}}}

APIIn your own code

Send requests from Python, JavaScript or any HTTP tool with your API key, and get JSON back.

import requestsresponse = requests.post("https://api.trendsmcp.ai/api",headers={"Authorization": "Bearer YOUR_API_KEY"},json={"mode": "","source": ,"keyword": "artificial intelligence","window": []})print(response.json())

Ask

In your assistant: “How has interest in electric vehicles changed over the last 5 years?” It picks the tool and the source. In code, pick a tool below.

One key for MCP and REST

Send your key in the Authorization header: Bearer YOUR_API_KEY (the bare key works too). Claude and ChatGPT connectors sign in through https://socialytics.dev/mcp instead, so there is no key to paste.

Keep the key on the server side: never in browser code or a public repository. If it leaks, make a new one on your account page.

Time Series

1 request per call

get_time_series · Full history for one topic.

About five years of weekly history for one keyword on one source, as a 0 to 100 index plus volume where the source has it.

Parameters

NameTypeDescription
mode RESTstringget_time_series. MCP clients call the tool by name instead.
keyword requiredstringFormat depends on the source.
source requiredstringExactly one keyword source.
country optionalstringISO 3166-1 alpha-2 country code (US, GB, JP). Boards and TikTok default to US; Google time series and growth default to worldwide.Works with Google Search, Google Images, Google News, Google Shopping, YouTube, TikTok, Pinterest.
language optionalstringWikipedia language edition (en, de, ja, pt); defaults to en.Works with Wikipedia.
resolution optionalstring'weekly' (about 5 years, default) or 'daily' (last 90 days, fetched live).Works with Google Search, Google Images, Google News, Google Shopping, YouTube.
Works with 14 data setsSee them all →

Example

curl -X POST https://api.trendsmcp.ai/api \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode": "get_time_series", "keyword": "electric vehicles", "source": "Google Search"}'

Response

A list of points, oldest first (weekly for most sources, daily or monthly for some). About 260 weekly points (5 years) per call.

FieldTypeDescription
datestringISO 8601 date of the point, e.g. 2026-03-21.
valuenumberInterest on a 0 to 100 index.
volumenumber | nullAbsolute volume where the source has it (searches, views, downloads).
keywordstringThe keyword you asked for.
sourcestringThe source used.
Example response (inside body)
[
  {
    "date": "2026-10-17",
    "value": 47,
    "volume": 25853617,
    "keyword": "bitcoin",
    "source": "google search"
  },
  {
    "date": "2026-10-24",
    "value": 52,
    "volume": 28012440,
    "keyword": "bitcoin",
    "source": "google search"
  }
]

Growth

1 request per call, every window included

get_growth · How fast something is rising.

Point-to-point growth over one or more windows, on one source or several in the same call.

Parameters

NameTypeDescription
mode RESTstringget_growth. MCP clients call the tool by name instead.
keyword requiredstringFormat depends on the source.
source requiredstringOne source, or several separated by commas.
percent_growth optionalstring[]Window presets such as 3M, 12M or YTD. Default 12M.
country optionalstringISO 3166-1 alpha-2 country code (US, GB, JP). Boards and TikTok default to US; Google time series and growth default to worldwide.Works with Google Search, Google Images, Google News, Google Shopping, YouTube, TikTok, Pinterest.
language optionalstringWikipedia language edition (en, de, ja, pt); defaults to en.Works with Wikipedia.
resolution optionalstring'weekly' (about 5 years, default) or 'daily' (last 90 days, fetched live).Works with Google Search, Google Images, Google News, Google Shopping, YouTube.

Windows

Any number with D, W, M or Y up to 5 years, plus MTD, QTD and YTD. Default 12M. Common:

7D1W14D2W30D1M2M3M6M9M12M1Y18M24M2Y36M3Y48M4Y60M5YMTDQTDYTD

REST also takes a custom range: an object in percent_growth with

namestringOptional label, returned as period.
recentstringThe more recent date, YYYY-MM-DD.
baselinestringThe date to compare with, YYYY-MM-DD.
Works with 14 data setsSee them all →

Example

curl -X POST https://api.trendsmcp.ai/api \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode": "get_growth", "keyword": "electric vehicles", "source": "Google Search", "percent_growth": ["3M", "12M"]}'

Response

One result per window you asked for.

FieldTypeDescription
search_termstringThe keyword you asked for.
data_sourcestringThe source used.
results[].periodstringThe window, e.g. 12M, or your custom name.
results[].growthnumberChange in percent, positive or negative.
results[].directionstringincrease or decrease.
results[].recent_date / baseline_datestringThe two dates compared.
results[].recent_value / baseline_valuenumberThe 0 to 100 index at those dates.
results[].volume_growthnumber | nullChange in absolute volume, where the source has volume.
Example response (inside body)
{
  "search_term": "nike",
  "data_source": "google search",
  "results": [
    {
      "period": "12M",
      "growth": -12.31,
      "direction": "decrease",
      "recent_date": "2026-10-24",
      "baseline_date": "2025-10-25",
      "recent_value": 57,
      "baseline_value": 65,
      "volume_growth": -12.31
    }
  ]
}

Context

MCP: 1 request per source, at most 5 per call. REST: one source per call, 1 request

get_context · What people are saying.

What people are posting, reading and betting about a keyword right now: posts, videos, stories, comments and markets from each source, with engagement.

Parameters

NameTypeDescription
mode RESTstringget_context. MCP clients call the tool by name instead.
keyword requiredstringAny name or phrase.
source requiredstringOne source, or up to 5 separated by commas.
days optionalintegerLook back 1 to 30 days. Default 7.
limit optionalintegerItems per source, 1 to 20. Default 10.
comments optionalintegerTop comments or replies for the first N items of each source (0 to 5, default 2).Works with YouTube, TikTok, Instagram, X, Reddit, Bluesky, Hacker News.
Works with 10 data setsSee them all →

Example

curl -X POST https://api.trendsmcp.ai/api \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode": "get_context", "keyword": "nvidia", "source": "News"}'

Response

Per source, the posts, videos, stories and markets about the keyword, best first.

FieldTypeDescription
keywordstringThe keyword you asked for.
window_daysnumberHow far back it looked.
sources[].sourcestringThe source.
sources[].items[]arrayEach item: kind, url, title, text, author, published, engagement (views, likes, comments, shares, score…), top_comments.
sources[].errorstring | nullWhy a source returned nothing, when it failed.
Example response (inside body)
{
  "keyword": "nintendo switch 2",
  "window_days": 7,
  "count": 1,
  "sources": [
    {
      "source": "YouTube",
      "count": 1,
      "error": null,
      "items": [
        {
          "kind": "video",
          "title": "Switch 2 review",
          "url": "https://youtube.com/watch?v=\u2026",
          "published": "2026-10-22T09:39:22Z",
          "engagement": {
            "views": 91542,
            "likes": 5997,
            "comments": 527
          }
        }
      ]
    }
  ]
}

Top Posts

1 request per call🔒 Business plan

get_top_posts · Top posts for one hashtag.

Live top posts for one hashtag, fetched on every call. Business plan.

Parameters

NameTypeDescription
mode RESTstringget_top_posts. MCP clients call the tool by name instead.
keyword requiredstringThe hashtag, with or without #.
source requiredstringTikTok or Instagram.
limit optionalinteger1 to 20. Default 20.
Works with 2 data setsSee them all →

Example

curl -X POST https://api.trendsmcp.ai/api \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode": "get_top_posts", "keyword": "booktok", "source": "TikTok"}'

Response

The top posts for the hashtag right now, fetched live on every call.

FieldTypeDescription
keywordstringThe hashtag, without #.
sourcestringtiktok or instagram.
posts[].ranknumberPosition on the hashtag page.
posts[].captionstringThe post's text.
posts[].authorstring | nullThe account, where available.
posts[].plays / likes / commentsnumber | nullEngagement, where the source has it.
posts[].postedstringWhen it was posted.
posts[].urlstringLink to the post.
Example response (inside body)
{
  "keyword": "booktok",
  "source": "tiktok",
  "count": 1,
  "posts": [
    {
      "rank": 1,
      "caption": "5 books that wrecked me",
      "author": "readwithme",
      "plays": 1840221,
      "likes": 220114,
      "posted": "2026-10-25",
      "url": "https://www.tiktok.com/@readwithme/video/\u2026"
    }
  ]
}

Requests and plans

Every plan has a monthly pool of requests. Only successful calls count: errors are free.

ToolCost
get_time_series1 request per call
get_growth1 request per call, every window included
get_top_trendsMCP: 1 request per 10 rows, at most 10 per call. REST: 1 request per call
get_contextMCP: 1 request per source, at most 5 per call. REST: one source per call, 1 request
get_top_posts1 request per call · Business plan
get_usageFree. MCP only: your plan, requests used and left, reset date.

Plans

FreeStarterProBusiness
Requests a month1001,0005,00025,000
Keyword alerts–1050250
Top trends rowsTop 10, 24h delayTop 25Top 100Full board
Top Posts–––✓

Prices and yearly billing: Pricing. When the monthly pool is used up, calls return a plan-limit message until the next month or an upgrade.

Errors

REST answers HTTP 200 with an envelope: {"statusCode": 400, "body": "…"}. Read statusCode, then parse body. A missing or wrong key is the exception: HTTP 401 (missing_api_key) or 403 (invalid_api_key), with the error object as the body. Errors carry an error code and a message. Over MCP, a failed call sets isError on the tool result.

CodeMeaning
missing_parameterA required field is missing, e.g. type on get_top_trends.
invalid_sourceThe source or type is not one we serve; the message lists the allowed values.
invalid_modeThe mode is not one of the tools.
invalid_requestThe body is malformed or a parameter value is not allowed.
no_dataNothing matched this keyword on this source.
plan_requiredThe tool needs a higher plan (Top Posts: Business).
source_unavailableThe upstream source did not answer; try again later.
growth_calculation_failedGrowth could not be computed for that window (e.g. not enough history).
internal_errorUnexpected error. The body has a request_id; send it to support.
missing_api_keyNo key was sent. Send it in the Authorization header as Bearer <key>. REST answers HTTP 401.
invalid_api_keyThe key is mistyped or was regenerated. Get or copy your key on /account. REST answers HTTP 403.
monthly_limit_reachedThe plan's monthly requests are used and there are no credits left. The message has links to buy credits (they never expire) or pick a plan. Over MCP the tool result has isError with the same text. get_usage shows what is left.
Error envelope
{
  "statusCode": 400,
  "body": "{\"error\": \"missing_parameter\", \"message\": \"The 'type' parameter is required\"}"
}