Social Media Data API and MCP: Facebook, Instagram and YouTube for Agents
A social media data API returns public Facebook, Instagram and YouTube data as JSON over REST or MCP. See the 16 sources, what they return and what they cost.
By the NeuralVerge team · 14 min read · Updated October 2026
▸On this page
A social media data API takes a handle, page, video link or keyword and returns what is publicly visible on the platform as structured JSON, so software can read profiles, posts, comments and videos without anyone opening a browser. NeuralVerge offers 16 such sources across Facebook, Instagram and YouTube, reachable over REST or as MCP tools an AI agent can call.
The short version
- —What it is. Sixteen public-data sources, each with one job: pages, posts, comments, reviews, profiles, reels, videos and search. Each returns typed JSON with a trace id and the points charged.
- —Who it is for. Teams and agents that need to read pages and channels they do not own: competitors, prospects, creators and brands. It is not a tool for your own analytics.
- —What it does not return. Private accounts, content behind a login, and owner-only numbers such as reach or audience demographics.
- —What it costs. Points, at a rate per source. An Instagram profile is 5 points, a Facebook page 15, a YouTube comment 2. One point is $0.001 on the source pages.
- —Where the details live. The source pages are the reference for exact fields, request shape and prices. The Instagram profile page is the one used as the worked request below.
What it is, and what it is not
Social platforms publish a lot in public: brand pages, posts and reactions, comments under videos, reviews on business pages. A social media data API turns that public surface into fields. The unit is a lookup: give it an input, get back records. Three things are easy to confuse with it.
Versus a platform's official API
An official platform API is designed around your own presence: your pages, your posts, your ad accounts, your analytics. That makes it the right tool for publishing, answering your own comments and reading your own reach. It is a poor fit for reading a competitor's page or a prospect's channel, because those are not yours. The Instagram profile source page puts the trade plainly: Meta's Graph API needs a business account, app review and permissions, and its business discovery covers business and creator accounts through your own connected account.
A source like Instagram profile works the other way round. You pass a public username you do not own and get the public profile back. The trade is stated on the same page: public counts only, no audience demographics or reach.
Versus a social listening dashboard
A listening or analytics dashboard is an application for people: charts, alerts, a seat licence. A data API is for software: records you can drop into a warehouse, a CRM or an agent's context window. If nobody will ever script against the data, a dashboard may be enough.
Versus building your own collection
Writing and maintaining your own collection code is possible, and plenty of teams do it. The ongoing cost is easy to underestimate: pages and formats change, and someone has to keep the thing working. The question is whether that maintenance is work you want to own.
How a lookup works
The mechanics are the same for every source, which is what makes the set easy to build on.
1. Pick the source that matches your input
Start from what you have. A username points to Instagram profile or posts, a keyword to a search source, a video URL to YouTube comments, and a page you want to contact to Facebook page contacts.
2. Send one request
You send the input, plus any limits, to the source's endpoint. Volume-based sources take a cap such as max_items, and some take date filters. Parameters are on the source pages and at docs.neuralverge.ai.
3. Get the answer in the same response
Every Data Source endpoint is synchronous. The lookup runs inside the request and the result comes back in the same response, with no polling. If a lookup hits its time budget before finishing, the response sets partial: true and returns the records collected so far. Re-run with a smaller max_items for a complete result.
4. Read typed JSON
Records arrive as typed fields: numbers are numbers, flags are booleans and missing values are null. Every response also carries a session_id and the total_points charged.
5. Chain the sources
Real work usually takes two or three calls: search finds pages or accounts, a profile source vets them, and a posts, reels or comments source reads what they published. Each step is a separate, priced lookup, so you decide how deep to go.
The 16 sources
Each source is a separate endpoint with one clear job. The pattern is the same across all of them: a typed input, a JSON body of items under machine, a session_id for tracing, and a total_points field showing what the call cost.
| Platform | Source | Input | Points |
|---|---|---|---|
| Pages | Page URL, name or ID | 15 per page | |
| Page contacts | Page URL, name or ID | 15 per page | |
| Posts | Page URL, name or single post URL | 5 per post | |
| Comments | Public post, photo, video or reel URL | 5 per comment | |
| Groups | Public group URL or ID | 10 per post | |
| Reviews | Page URL, name or ID | 5 per review | |
| Search | Keyword, optional location | 10 per result | |
| Profile | Username or profile URL | 5 per profile | |
| Posts | Username, profile or post URL | 5 per post | |
| Reels | Username, profile or reel URL | 5 per reel | |
| Mentions | Username or profile URL | 5 per post | |
| Search | Keyword, profiles or places | 5 per result | |
| YouTube | Channel | Channel handle, URL, playlist or video | 5 per video |
| YouTube | Comments | Video URL | 2 per comment |
| YouTube | Search | Keyword with filters | 5 per result |
| YouTube | Shorts | Channel handle or URL | 2 per short |
These figures are the per-unit rates from the individual source pages, at the time of writing. One point is $0.001 on those pages, so 5 points is $5 per 1,000 items.
- —Facebook pages returns the page profile with categories, audience, rating, contacts and ad status.
- —Facebook page contacts returns email, phone, websites and address from the page's profile fields.
- —Facebook posts returns posts from a public page, or one post by URL, with text, time, engagement counts, reactions broken down by type and attached media. You can filter by date and cap the volume.
- —Facebook comments returns the comments, and optionally replies, under a public post, photo, video or reel.
- —Facebook reviews returns reviews on a page with the recommendation, text, date, author and any replies.
- —Facebook groups returns posts from a public group with text, author, engagement and top comments.
- —Facebook search finds pages, profiles, posts or reels from a keyword and an optional location, to build the list the other sources then read.
- —Instagram profile returns the public profile: name, bio, links, follower and following counts, and verified, private and business flags.
- —Instagram posts returns what an account has published, with caption, hashtags, mentions, engagement, media and date.
- —Instagram reels narrows that to short video, with plays, likes, comments, duration and audio.
- —Instagram mentions goes the other way and returns posts from other accounts that tag a given account, with author, caption and engagement.
- —Instagram search finds profiles by keyword, or places with address and coordinates, so you can discover accounts before you profile them.
YouTube
- —YouTube channel returns videos, shorts and streams from a channel, playlist or single video, with stats and the channel's totals.
- —YouTube search returns matching videos, shorts and streams for a keyword, with date, type, length and feature filters, plus channel subscriber counts.
- —YouTube comments returns comments and replies under a video with author, text, likes and reply count.
- —YouTube shorts returns a channel's shorts with title, views, likes, comments, hashtags and date.
If you are specifically weighing YouTube access options, the separate article on alternatives to the YouTube Data API covers that comparison.
REST and MCP: one real request
The same lookup is reachable two ways. Every source is a REST endpoint, and each one also has a matching MCP tool on the hosted MCP server. Use REST from a script and MCP from an agent. The examples use the Instagram profile source for the public account natgeo.
The REST call and its response
This is the REST call from the source page:
curl -X POST https://api.neuralverge.ai/functions/v1/run-instagram-profile \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "username": "natgeo" }'
And this is the captured sample response from the same source page, unchanged:
And this is the captured sample response from the same source page, unchanged:
{
"session_id": "b972bdf2-d22c-4334-be99-8b932399bc00",
"kind": "instagram_profile",
"username": "natgeo",
"partial": false,
"machine": {
"total_items": 1,
"items": [
{
"id": "787132",
"username": "natgeo",
"full_name": "National Geographic",
"url": "https://www.instagram.com/natgeo",
"biography": "Step into wonder and find your inner explorer with National Geographic 🌎",
"external_url": "http://visitstore.bio/natgeo",
"external_urls": [
{ "title": null, "url": "http://visitstore.bio/natgeo" },
{ "title": "Subscribe Here!", "url": "https://ngmdomsubs.nationalgeographic.com/servlet/OrdersGateway?cds_mag_code=NGM&cds_page_id=283562&cds_response_key=I5FX10002" }
],
"followers_count": 268279340,
"follows_count": 195,
"is_verified": true,
"is_private": false,
"is_business_account": true,
"business_category": null,
"joined_recently": false,
"related_profiles": [],
"latest_posts": []
}
],
"errors": []
},
"total_points": 5
}
A few things to notice in that response.
- —The cost is on the response.
total_pointsis 5, the flat rate for one resolved Instagram profile, which the page prices at $5 per 1,000 profiles. - —Flags answer vetting questions directly.
is_verified,is_privateandis_business_accountare booleans, so a filter can be a single condition rather than a judgement call on text. - —The bio links tell you where the account sends people. The
external_urlsarray holds each link and its title, which is useful when the destination is a shop, a booking page or a campaign. - —Absent values are explicit.
business_categoryisnullbecause this account shows none, andfollowers_countis a snapshot taken at request time.
The same lookup as an MCP tool
The tool name is the endpoint name with underscores in place of hyphens, so the Instagram profile source is run_instagram_profile. The REST endpoints and the MCP tools take the same arguments, and the tool call looks like this:
{ "tool": "run_instagram_profile", "arguments": { "username": "natgeo" } }
Other tools follow the same pattern, such as run_facebook_posts and run_youtube_comments. An agent with the tools available can decide for itself to search first, then profile, then read posts, which is the chaining described above. For connecting the hosted server to Claude, see the MCP server setup guide.
Cost and limits
Cost in points
Social sources are billed in points and the rate depends on the source. Using only the per-unit rates in the table:
- —100 posts from a Facebook page, at 5 points each, is 500 points.
- —200 Instagram profiles, at 5 points each, is 1,000 points.
- —1,000 YouTube comments, at 2 points each, is 2,000 points.
- —One Facebook page record, at 15 points, costs three times an Instagram profile.
Most volume-based sources let you cap the count per request (up to 1,000 on many of them, 250 on Instagram search), so the ceiling on any one call is something you set. The source pages say that per-item sources bill for items actually returned, and that an empty result costs nothing: a page that cannot be found, a private Instagram account, a video with comments turned off, a search that matches nothing. The pricing page lists the monthly plans.
Limits to plan around
- —Public only. Private Instagram accounts return the basic profile, and their posts are not readable. Facebook groups must be public.
- —No owner-only analytics. Reach, impressions and audience demographics belong to the account owner and are not returned. Counts you get are public counts.
- —Snapshots, not history. Data is read at request time. For a trend line, take snapshots on a schedule and store them.
- —Counts are not quality. Follower counts include inactive and fake accounts, so treat them as reach on paper rather than engaged audience.
Compliance and terms
This is not legal advice, and none of this replaces counsel who knows your situation. The sources return content an account published publicly, stamped with the URL it was read from. But public does not mean unrestricted. Accounts can belong to individuals as well as brands, and data about an identifiable person is personal data in many jurisdictions. Platforms also publish their own terms, which may restrict how their content is accessed and used. Which rules apply depends on where you operate, what you collect and why.
A sensible posture for most teams:
- —Use the data for a legitimate business purpose you can state in a sentence, under your own lawful basis.
- —Prefer brand and business accounts to private individuals when the question allows it, and collect only the fields you need.
- —Read the platform terms and the NeuralVerge acceptable use policy.
- —Ask counsel before building a product on social data.
How to decide
Consider an illustrative case: Acme Oy, a Finnish company, wants to understand how three competitors present themselves on social platforms before a launch. Work through these questions for your own case.
- —Is the data public and about accounts you do not own? If you need your own reach or audience demographics, use the platform's official analytics instead.
- —Which job is it? Typical jobs map to sources:
- —Competitor content tracking: read Facebook and Instagram posts for a window and compare cadence and reactions.
- —Influencer and partner vetting: profile a shortlist of Instagram accounts and filter on the verified, public and business flags.
- —Reputation monitoring: pull Facebook reviews and Instagram mentions for a brand.
- —Voice of customer: read YouTube and Facebook comments under product videos and summarise the themes with a model.
- —Local lead research: search Facebook pages by keyword and location, then read page contacts.
- —Enrichment: add a Facebook rating or an Instagram audience figure to company records you already keep.
- —Agent research tasks: let an agent search YouTube for a topic, find the channels covering it and summarise recent videos.
- —Is the pricing per item and published? You should be able to compute the cost of a job before running it, for your realistic monthly volume rather than the sample call.
- —What happens when a lookup returns nothing? Check whether a miss, a private account or an empty result is billed.
- —Is the response shape typed and honest? Look for typed fields, explicit nulls, a trace id and a charge on every response, and ask for a real sample, not a mock.
- —Does the provider say what it does not return, and how large requests behave? A clear list of gaps and a flagged partial result at the time limit are good signs.
- —Can you chain lookups and call them from an agent? Search, profile, content and comments should connect, over REST for scripts and MCP for agents.
Social is rarely the only source. It sits next to registry, firmographic and contact data in the wider data sources catalog.
Frequently asked questions
What is a social media data API?
A social media data API takes a handle, page, video link or keyword and returns what is publicly visible on the platform as structured JSON: profile details, posts, comments, reviews, videos and their engagement counts. You send a request and get fields back, instead of opening each page and copying numbers by hand.
Does it return private accounts or content behind a login?
No. The Facebook, Instagram and YouTube sources return content that is publicly visible. Private Instagram accounts return the basic profile only and their posts are not readable, and Facebook groups have to be public. Reach, impressions and audience demographics are private to the account owner and are not returned.
How much does a lookup cost?
Each source has its own rate in points, and one point is $0.001 on the source pages. An Instagram profile is a flat 5 points, a Facebook page is 15 points, a Facebook or Instagram post is 5 points, and a YouTube comment or short is 2 points. Per-item sources bill only for items actually returned, and the source pages state that a lookup that returns nothing costs nothing.
Can an AI agent call these sources directly?
Yes, in two ways. Every source is a REST endpoint, and each one also has a matching MCP tool, such as run_instagram_profile, so an agent can call it as a tool.
Is it legal to collect this data?
This is not legal advice, and the answer depends on your jurisdiction, what you collect and why you use it. The sources return public content, but accounts can belong to individuals as well as brands, so you still need your own lawful basis, should follow the platforms' terms and applicable privacy law, and should check the acceptable use policy. Ask counsel about your specific use.
How is this different from the official platform APIs?
Official APIs are built around your own accounts and apps, and often need app review and permissions. For example, Meta's business discovery covers business and creator accounts through your own connected account. These sources take a public handle or URL you do not own and return public data for a flat per-item price. They do not return owner-only analytics.
Related articles
A YouTube Data API alternative for reading public channels, videos, comments and shorts as JSON over REST or MCP, billed per returned result in points.
A google maps places api alternative for local business data: search by keyword and area, get ratings, phones and websites as JSON over API or MCP.
A b2b data api for finding leads, employees, emails and phones over REST or MCP: what each lookup needs as input, real JSON and what each step costs in points.
About NeuralVerge
Give your agents structured, cited, real-world data from 300+ sources and the open web — through one API or MCP server.
Data Sources on the NeuralVerge blog.