Multi Platform Social Posts and Comments

v1.0.1$0.002/rowSignal Detection

Last updated November 10, 2026

Search public posts and comments on Bluesky, Hacker News, Mastodon, Lemmy, Reddit, and YouTube, or read the comments on your own posts. One row layout for all 6, with no login and no key. Instagram, X, Facebook, TikTok, and LinkedIn are not covered.

Install

bash
npx @mambalabsdev/mcp-multi-platform-social-posts-comments

Every tool here also runs hosted, with no install at all, through Apify's MCP endpoint.

Features

  • One row layout across 6 platforms.
  • Keyword search, or comments on post addresses you give.
  • A free status row per query and platform says what was returned or blocked.
  • No login and no key.
  • Pay per event: Social row at $0.002.

Input

queriesarrayoptional

Keywords to search on each platform, up to 20. Mastodon reads a query as a hashtag, so crm tools becomes #crmtools.

post_urlsarrayoptional

Addresses of posts to read comments from, such as your own posts, up to 100. Bluesky, Hacker News, Mastodon, Lemmy, Reddit, and YouTube.

platformsarrayoptional

Any of bluesky, hackernews, mastodon, lemmy, reddit, youtube. Default all 6. Used for queries; a post address picks its own platform.

max_posts_per_platformstringoptional

Up to 500. Default 25. YouTube returns its first results page, about 20 videos.

include_commentsstringoptional

yes or no. Default yes. Each comment is a charged row.

max_comments_per_poststringoptional

Up to 200. Default 20. YouTube returns its first comment page, about 20.

since_datestringoptional

Only posts from this date, such as 2026-10-01. YouTube gives relative dates only, so YouTube rows are not filtered.

mastodon_instancestringoptional

Host name to read hashtags from. Default mastodon.social.

lemmy_instancestringoptional

Host name to search. Default lemmy.world.

max_charge_usdstringoptional

Optional. The run stops before a charge that would pass this amount. Summary rows are always returned.

Output schema

json
{
  "row_type": "string",
  "row_key": "string",
  "platform": "string",
  "query": "string",
  "query_in_text": "boolean",
  "post_id": "string",
  "parent_id": "string",
  "url": "string",
  "title": "string",
  "text": "string",
  "author": "string",
  "author_url": "string",
  "created_at": "string",
  "published_text": "string",
  "likes": "integer",
  "replies": "integer",
  "reposts": "integer",
  "views": "integer",
  "community": "string",
  "posts_returned": "integer",
  "comments_returned": "integer",
  "row_status": "string",
  "error_reason": "string",
  "billable_events_json": "string",
  "scraped_at": "string"
}

Pricing

$0.002per row
EventFree plan price
Social row$0.002
Actor Start$0.007

Pay per event on the Apify platform. Paid Apify plans pay less per event. No subscription, no seat license.

On the Apify free plan the actor stops at $1.50 of charges a month, about 750 rows. Any paid Apify plan removes the cap.

Limits

  • Instagram, X, Facebook, TikTok, and LinkedIn are not covered. Asking for one returns the free refusal row.
  • Each platform's own search decides what matches. Some match on fields they do not return, so query_in_text reads false on some rows. In one test run, 22 of 110 posts read false.
  • Mastodon reads a query as a hashtag on one instance, because keyword search there needs an account. cold email becomes #coldemail on mastodon.social unless you set mastodon_instance.
  • Lemmy searches one instance, lemmy.world by default, plus what that instance has federated.
  • Reddit rows come from public feeds, so they carry no score or comment count, and comments carry no parent ID finer than the post. Reddit can refuse requests from the shared proxy. A refusal gets one retry on a new address and then a free blocked or partial status row, with no residential fallback. In one test of 60 posts, comments on at least 1 post were refused.
  • YouTube returns its first results page, about 20 videos, and its first comment page, about 20 comments. Dates are relative, such as 2 weeks ago, so since_date does not filter YouTube rows. Videos with no word of the query are dropped, because YouTube fills an empty search with unrelated videos.
  • Replies are not guaranteed to be complete on any platform: the actor reads up to max_comments_per_post, and a platform can hide or omit a reply.
  • Rows carry only what each platform shows publicly, such as a handle. No email or phone is looked up.