Multi Platform Social Posts and Comments
Pricing
from $1.70 / 1,000 social rows
Multi Platform Social Posts and Comments
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.
Pricing
from $1.70 / 1,000 social rows
Rating
0.0
(0)
Developer
Mamba Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Features
Share
Give keywords or post addresses. The actor returns public posts and comments from Bluesky, Hacker News, Mastodon, Lemmy, Reddit, and YouTube, in one row layout, so one table holds all 6. You pay per row returned. Mamba Labs pays the platform costs of the run.
Instagram, X, Facebook, TikTok, and LinkedIn are not covered. See Limitations.
Features
- One row layout across 6 platforms: platform, text, author, address, date, and counts.
- Keyword search, with the comments on each post found.
- Comments on post addresses you give, such as your own posts.
- One free status row per query and platform, which says what was returned or why a platform was blocked.
How the data is read
Each platform is read from its public route on the Apify proxy default pool, with no login, no key, and no other developer's actor: the Bluesky public API, the Hacker News Algolia API, the Mastodon and Lemmy instance APIs, Reddit Atom feeds, and the YouTube search and watch pages. Read each platform's terms before you use the data; some restrict automated access or republishing.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
queries | array | Keywords to search on each platform, up to 20. Mastodon reads a query as a hashtag, so crm tools becomes #crmtools. | |
post_urls | array | Addresses of posts to read comments from, such as your own posts, up to 100. Bluesky, Hacker News, Mastodon, Lemmy, Reddit, and YouTube. | |
platforms | array | Any of bluesky, hackernews, mastodon, lemmy, reddit, youtube. Default all 6. Used for queries; a post address picks its own platform. | |
max_posts_per_platform | string | 25 | Up to 500. Default 25. YouTube returns its first results page, about 20 videos. |
include_comments | string | yes | yes or no. Default yes. Each comment is a charged row. |
max_comments_per_post | string | 20 | Up to 200. Default 20. YouTube returns its first comment page, about 20. |
since_date | string | Only posts from this date, such as 2026-10-01. YouTube gives relative dates only, so YouTube rows are not filtered. | |
mastodon_instance | string | mastodon.social | Host name to read hashtags from. Default mastodon.social. |
lemmy_instance | string | lemmy.world | Host name to search. Default lemmy.world. |
max_charge_usd | string | Optional. The run stops before a charge that would pass this amount. Summary rows are always returned. |
Output
| Field | Type | What it holds |
|---|---|---|
row_type | string | One of: post, comment, platform_status, run_summary. run_summary is the one free row written when the input is refused. |
row_key | string | Unique key for this row. |
platform | string | bluesky, hackernews, mastodon, lemmy, reddit, or youtube. |
query | string | The search query that found this row. Null for a post address input. |
query_in_text | boolean | Post rows from a search: whether the returned title or text holds the query. A platform search can match on something it does not return, so false is not always wrong. |
post_id | string | The platform ID of this post or comment. |
parent_id | string | Comment rows: the ID of the post or comment it answers, where the platform gives it. |
url | string | The public address of this post or comment. |
title | string | Post title where the platform has one. |
text | string | The post or comment text, or the video snippet on YouTube search rows. |
author | string | The public handle or name the platform shows. |
author_url | string | The author public page. |
created_at | string | UTC time. Null on YouTube, which gives only relative dates. |
published_text | string | YouTube relative date, such as 2 weeks ago. |
likes | integer | Likes, points, or upvotes. Null on Reddit feeds. |
replies | integer | Reply count where the platform gives it. |
reposts | integer | Reposts or boosts on Bluesky and Mastodon. |
views | integer | YouTube search rows: views. |
community | string | Subreddit or Lemmy community. |
posts_returned | integer | platform_status: post rows written for this query and platform. |
comments_returned | integer | platform_status: comment rows written. |
row_status | string | ok, or why this row carries no data: no_results, no_change, partial, blocked, or error. |
error_reason | string | Why the row is not ok. A refused input reads input_invalid: followed by what to fix. |
billable_events_json | string | What this row was billed as, for example {"social-row":1}. {} means free. |
scraped_at | string | When the row was written, UTC. |
Pricing
Pay per event. Summary rows and a refused input are free.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
social-row, one post or comment | $0.002 | $0.0019 | $0.0018 | $0.0017 |
apify-actor-start, once per run (one per GB of memory; the default 512 MB is one) | $0.007 | $0.007 | $0.007 | $0.007 |
Per 1,000 rows of social-row: $2.00 on the free plan, $1.70 on Gold.
Free plan cap: 1.50 USD of evaluation a month, about 750 rows. Any paid Apify plan removes the cap, and it resets on the 1st. The run stops before a charge that passes your maximum charge per run in Apify or your max_charge_usd input.
Mamba Labs pays the platform costs of your run, Apify proxy traffic included.
Usage examples
Clay. Number and on or off inputs are text fields, which is what Clay sends. A list input takes a JSON list, so put the column inside a one item list.
MCP. The Mamba Labs MCP server @mambalabsdev/mcp-multi-platform-social-posts-comments exposes this actor to Claude and other MCP clients.
Error handling
| Case | What you get |
|---|---|
| Missing or unreadable input | One free row, row_type run_summary, error_reason starting input_invalid: with what to fix. The run ends successfully and charges nothing but the run start |
| A platform refuses or finds nothing | One free platform_status row with row_status blocked, partial, or no_results, and the other platforms still run |
| The run is close to its timeout | The actor stops starting new work 90 seconds before the timeout and delivers what it has |
Limitations
- 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_textreads 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 emailbecomes#coldemailon mastodon.social unless you setmastodon_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 refused request is not retried on a new address and does not fall back to residential: it ends in a free
blockedorpartialstatus row. This applies to every platform the actor reads. 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_datedoes 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. - Bluesky authors who ask not to be shown to logged out viewers (the
!no-unauthenticatedlabel) are skipped, free, on search, replies, and post addresses, along with the replies under them. A post address by such an author returns a freeblockedstatus row. - Rows carry only what each platform shows publicly, such as a handle. No email or phone is looked up.
What changed
- 2026-11-08: a refused request (HTTP 403, 429, or 503) is no longer retried on a new proxy address. Before, each Reddit feed got one retry. The refusal now ends in a free status row at once. Prices did not change.
Mamba Labs actor suite
Built by Mamba Labs.