Free · no signup · natural language

Ask social data in plain English. Get API JSON.

One question about TikTok, YouTube, Instagram, Reddit, and more. We route it and return live JSON.

Read the launch post →

POST/v1/ask
Ready

One question — name the platform if needed.

Protected by Cloudflare Turnstile · 1-credit lookups only

Quick start

How to ask social data in plain English

Not a chatbot. One HTTP-style question → one routed Social Fetch lookup with the full response envelope.

  1. 1

    Ask one clear question

    Name the platform when you can — e.g. TikTok followers for a handle, YouTube subscribers, Instagram profile, Reddit search.

  2. 2

    We route to a typed endpoint

    POST /v1/ask matches intent to a public API operation and extracts handles, URLs, or search terms.

  3. 3

    Get live JSON back

    The response includes routedOperation plus the nested lookup payload — same envelope as REST and MCP.

Why use it

Natural-language social API routing — without the docs hunt

POST /v1/ask is a natural-language router on top of our public API. You send a query string; we resolve the operation, execute the lookup, and return data.routedOperation plus the nested response.

01

No endpoint hunting

Describe the lookup in plain English — we pick the matching TikTok, YouTube, Instagram, Reddit, or other public API operation.

02

One shot, not a chat

Each submit runs one routed lookup and returns structured JSON. No thread, no memory, no multi-turn agent loop.

03

Same data as production

You get routedOperation, lookup data (including lookupStatus), and requestId — the same envelope REST and MCP return.

Under the hood

What happens when you submit a natural-language query

Plain English maps to a concrete OpenAPI operation — operationId, method, path template, and params — returned in data.routedOperation so you can pin the typed path in production.

1

Parse intent

Match platform and resource type — profile, channel, search, post, transcript, and more.

2

Extract params

Pull handles, URLs, and search terms from the question so you do not need the OpenAPI index first.

3

Run the lookup

Dispatch the typed operation. Routing costs 0 credits on the API; only the nested lookup bills.

Example: “How many TikTok followers does MrBeast have?” → GET /v1/tiktok/profiles/{handle}

Example questions

Plain-English social data questions that work well

Name the platform when you can — MrBeast exists on TikTok, YouTube, and Instagram. Clear intent beats vague “followers for handle” queries.

TikTok

How many TikTok followers does MrBeast have?

YouTube

How many YouTube subscribers does MrBeast have?

Instagram

Get the Instagram profile for @instagram

Reddit

Search Reddit for posts about switching from Notion

Twitter / X

Get the Twitter profile for @elonmusk

LinkedIn

Look up the LinkedIn company page for Nike

Free vs production

Same natural-language router — free demo vs API key

Try a question here. Ship with an API key — or skip routing once you know the typed path from routedOperation.

This page

Free browser demo with rate limits. Covers 1-credit lookups.

POST /v1/ask

Same router with an API key. Routing is free; the nested lookup bills.

Typed GET paths

Once you know the route, call the explicit endpoint for repeat work.

For agents

Use natural-language social lookups from Cursor or Claude (MCP)

Same router via the hosted MCP server — OAuth in the browser, no API key in config. Sanity-check a question here; wire MCP while you scaffold.

01

nl_ask_post in Cursor or Claude

Add the MCP server, OAuth once, then pass a query string.

02

Explore, then pin typed tools

Use natural language to find the route, then switch to the typed MCP tool.

03

Pair with llms.txt

Point agents at /llms.txt before wiring code. Docs tools are free.

For builders & automations

Call POST /v1/ask from your code

POST a query. Routing costs 0 credits; the nested lookup bills. Chain it into n8n, an agent loop, or the TypeScript SDK — then swap to typed routes once routedOperation is stable.

POST/v1/ask
All platforms
const result = await fetch(
"https://api.socialfetch.dev/v1/ask",
{ method: "POST", headers: { "x-api-key": "…" },
body: JSON.stringify({ query: "…" })
}
);

FAQ

Natural-language social API FAQ

Is this a chatbot?

No. One question, one routed lookup, structured JSON back. No thread or memory.

What can I ask on the free demo?

1-credit lookups — profiles, channel stats, simple searches. Heavier routes need an API key. Rate-limited and protected by Turnstile.

How does routing work?

We parse platform and intent, extract identifiers, pick the matching operation, and run it. The response includes `data.routedOperation` plus the live lookup. Routing is free; only the nested lookup bills.

Why should I mention the platform?

Creators like MrBeast exist on multiple networks. Naming the platform helps pick the right endpoint first try.

Can I use this from code or MCP?

Yes — POST /v1/ask with an API key, or use `nl_ask_post` via https://api.socialfetch.dev/mcp. Pin typed tools once you know the route.

What is lookupStatus?

`found`, `not_found`, `private`, `restricted`, or `hidden` on HTTP 200. A `not_found` is still a completed lookup, not a transport error.

How is this different from GET /v1/web/ask?

/v1/ask routes social platform lookups. /v1/web/ask answers questions about one public URL's page content.