TL;DR
- Social data reads public social media: posts, profiles, comments, followers, hashtags and trends on 21 networks, from X, Instagram, TikTok, YouTube and Reddit to Douyin, Xiaohongshu and Weibo.
- No connected account is needed. The agent is reading what anyone can see, not posting as you.
- It is a catalogue of about 940 ready endpoints today, and it grows on its own. Every agent searches, describes and runs it with the three data tools.
- Developers get the same catalogue over REST, the TypeScript SDK, the CLI and the dashboard, under Settings → Data.
- Search and describe are free. A run costs the price the tool lists, most are $0.0039 per call, it is billed from prepaid credits, and a failed run is normally not charged.
The research is on social, and the agent could not see it
A lot of the work people hand to agents starts with a question about social media. What is a competitor posting this month, and which posts landed? Which hashtags are rising in a niche before we publish into it? Who are the creators a campaign should talk to, and how big are their audiences really? What are people saying in the comments under a post we do not own?
Until now an agent answering those questions had two bad options: scrape pages through a browser, which is slow and breaks, or guess. Today we are launching social data: a read-only catalogue of public social media endpoints that every agent in Naive Managed Agents can search and run, and that developers can call directly. It is the social domain of Data Gateway, which launches with it. The Social data primitive page summarizes the surface; the API reference has every field.
Twenty-one networks, one catalogue
Social data reads the public side of 21 networks. It covers posts, profiles, comments, followers, hashtags and trends, in whatever shape each network offers them.
| Region | Networks |
|---|---|
| Global | X, Instagram, TikTok, YouTube, Reddit, Facebook, Threads, Telegram, Snapchat, Lemon8, professional profiles |
| China | Douyin, Xiaohongshu, Weibo, Bilibili, Zhihu, Kuaishou, WeChat, Toutiao, Xigua, Pipixia |
No connected account is needed. The agent is reading what anyone can see, not acting as you, so there is no login to manage and nothing to revoke. When you want to publish as your brand, that is the separate Social primitive.
The catalogue is large: about 940 ready endpoints today, from "an Instagram profile by username" to "comments on a YouTube video" to "the posts under a TikTok hashtag". It grows automatically as new endpoints become available, so the set an agent can reach next month is larger than the one it reaches today, with no change on your side.
Three tools on every agent
A catalogue of 940 endpoints does not fit in a prompt, and it should not have to. Every agent gets the three Data Gateway tools, which let it find what it needs at the moment it needs it.
| Tool | What it does | Cost |
|---|---|---|
data_search | Finds tools for a short query; domain: social and a platform narrow it to one network | Free |
data_describe | Returns a tool's input schema and its price | Free |
data_run | Runs the tool and returns the network's data as JSON; asks you first by default | The tool's listed price |
The loop is the one a person would follow. The agent searches for "instagram profile", reads the description of the best match to see which inputs it takes and what it costs, then runs it with username: nasa. None of the three changes anything on a network. Because search and describe are free, an agent can look around the catalogue as much as it likes and only pays when it actually fetches data.
Calling it yourself
The same catalogue is a primitive you can call without an agent: from a script, a backend job or a notebook. The REST routes are three.
GET /v1/social_data/tools?query=instagram%20profile&platform=instagram
GET /v1/social_data/tools/:id
POST /v1/social_data/runs { "tool_id": "…", "query": { "username": "nasa" } }The TypeScript SDK is one method per route.
const { data: tools } = await vetta.socialData.searchTools({
query: "instagram profile",
platform: "instagram",
});
const tool = await vetta.socialData.getTool(tools[0].id);
// tool.input is the JSON Schema for path, query and body; tool.price is what a run costs
const run = await vetta.socialData.run({
tool_id: tool.id,
query: { username: "nasa" },
});
// run.data is the profile; run.cost_micro_usd is what was billedThe CLI covers the same three steps, which makes it easy to try an endpoint before wiring it into code.
vetta social-data search "instagram profile"
vetta social-data describe <tool_id>
vetta social-data run <tool_id> --query username=nasaTool ids are opaque: pass back the one search gave you, unchanged. Details: API, SDK, CLI, and the agent tools in the tools reference.
Try it in the dashboard
Under Settings → Data in the dashboard, the Social chip has the whole catalogue: search it, open a tool to see its inputs and price, fill in the inputs and run it. The data comes back on the page next to what the run cost. That is the quickest way to check that an endpoint returns what you need before an agent depends on it.
What it costs
Searching the catalogue and describing a tool are free. A run costs the price the tool lists, which describe and search both show before you run anything. Most tools are $0.0039 per call; some are priced per result returned, and say so in their price. Each run is capped at 25 results and admitted at the most it can cost.
Runs are billed from the same prepaid credits as everything else, on the search spend component of an agent's breakdown, beside web search and fetch. A failed run is normally not charged. A run waits for its answer for up to two minutes; one that takes longer is stopped and normally not billed, except that a tool priced per result costs what it gathered before the stop.
What it is, and what it is not
Being clear about the edges:
- No logins. Social data never signs in to a network. It cannot see private accounts, direct messages or anything behind a login.
- On-demand reads, not a stream. Each run answers one question when you ask it. To watch a hashtag or an account over time, run it on a schedule with a cron deployment.
- Read-only. Nothing is posted, liked or followed. Publishing is the Social primitive.
Get started
Every agent already has the data tools; ask one to research a competitor's last month of posts and watch it search the catalogue. To call it yourself, open Settings → Data in the dashboard, or run vetta social-data search. The full surface is in the social data reference.
Three ways to get started with Managed Agents
Paste one prompt into Claude Code, Codex, or Cursor and it sets Managed Agents up in your project.
Create agents, run sessions, stream events, and see cost from the terminal.
FAQ
- What is social data in Naive Managed Agents?
- A read-only catalogue of public social media endpoints. An agent or a developer finds the endpoint for the question, such as an Instagram profile or a TikTok hashtag, runs it, and gets the network's data back as JSON.
- Do I need to connect a social account?
- No. Social data only reads, so nothing is connected and nothing is posted. To publish as your brand, use the Social primitive instead.
- Which networks are covered?
- X, Instagram, TikTok, YouTube, Reddit, Facebook, Threads, Telegram, Snapchat, Lemon8 and a professional network, plus Douyin, Xiaohongshu, Weibo, Bilibili, Zhihu, Kuaishou, WeChat, Toutiao, Xigua and Pipixia.
- How much does it cost?
- Searching the catalogue and describing a tool are free. A run costs the price the tool lists; most are $0.0039 per call and some are priced per result. Runs draw on prepaid credits, and a failed run is normally not charged.
- Is this a live stream of every post?
- No. Each run is an on-demand read: you ask for a profile, a post's comments or a hashtag's posts and get the answer back; a run waits at most two minutes.