Athena Social Orchestrator
Pricing
Pay per usage
Athena Social Orchestrator
Detects the platform of each public URL (X/Twitter, Instagram, TikTok, Facebook, Reddit, LinkedIn, YouTube, Medium), calls public Apify Store actors in a fallback chain, filters placeholder rows and emits the shared normalized post output.
Pricing
Pay per usage
Rating
5.0
(1)
Developer
Rani-L
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
22 days ago
Last modified
Categories
Share
Scrape public posts from 8 social networks with one Actor and one output format: X (Twitter), Instagram, TikTok, Facebook, Reddit, LinkedIn, YouTube and Medium.
Give it a list of public URLs (profiles, pages, channels, subreddits, posts or videos). For each URL, Athena detects the platform and runs a curated chain of well-rated Apify Store Actors. If one fails, returns nothing or returns placeholder/error rows, it tries the next one. Every result is converted to one normalized post schema, whichever Actor produced it.
Why use it
- One input, one output. You don't have to learn eight different input and output schemas.
- Fallback chains. Each platform has a curated list of Actors, tried in order. The list was chosen from live test runs.
- No fake successes. Placeholder rows such as
{"noResults": true},{"demo": true}or{"error": "no_items", ...}are discarded, and the next Actor is tried. - Honest data. Unknown counts are
null, never0. Dates are ISO 8601 ornull, never epoch numbers.urlalways points to the post, never to a media file. - Transparent runs. A
RUN_SUMMARYrecord lists, for every URL, which Actors were tried, how long each took and why each one failed.
Supported platforms and Actor chains
The Actors are tried in this order. Entries marked (last resort) run only after every other Actor for that platform has failed.
| Platform | Actors |
|---|---|
| X / Twitter | apidojo/tweet-scraper, apidojo/twitter-scraper-lite, xquik/x-tweet-scraper |
apify/instagram-scraper, apify/instagram-api-scraper | |
| TikTok | clockworks/tiktok-scraper (profile URLs are sent as a handle), apidojo/tiktok-scraper, apidojo/tiktok-scraper-api |
apify/facebook-posts-scraper, apify/facebook-groups-scraper | |
harshmaur/reddit-scraper, fatihtahta/reddit-scraper-search-fast, practicaltools/apify-reddit-api, trudax/reddit-scraper-lite (last resort) | |
harvestapi/linkedin-profile-posts, supreme_coder/linkedin-post, harvestapi/linkedin-profile-scraper (last resort, returns the profile record) | |
| YouTube | streamers/youtube-scraper, apidojo/youtube-scraper, streamers/youtube-channel-scraper (last resort) |
| Medium | automation-lab/medium-scraper (author, publication and tag pages), apify/website-content-crawler (last resort) |
old.reddit.com URLs are rewritten to www.reddit.com. Any other host is reported as unsupported; Athena never guesses the platform.
Input
| Field | Type | Default | Description |
|---|---|---|---|
urls | array of strings | required | 1 to 100 public URLs. |
maxItemsPerUrl | integer | 20 | Maximum posts per URL (1 to 100). |
concurrency | integer | 3 | How many URLs are processed at the same time (1 to 10). |
childTimeoutSecs | integer | 120 | Timeout for each Store Actor run. It is also capped to this run's remaining time. |
childMemoryMbytes | integer | 1024 | Memory for each Store Actor run, in MB. Must be a power of 2 from 128 to 32768. |
maxChargeUsdPerChildRun | number | 0.50 | Cost cap for each Store Actor run, in USD. clockworks/tiktok-scraper refuses caps below $0.50. |
proxyConfiguration | object | Apify Proxy | Ignored by this Actor. It exists only so both Athena Actors share the same input. |
Example:
{"urls": ["https://x.com/nasa","https://www.instagram.com/nasa/","https://www.reddit.com/r/golang/","https://www.youtube.com/@GoogleDevelopers"],"maxItemsPerUrl": 10}
Output
Each dataset item is one post:
{"platform": "reddit","inputUrl": "https://www.reddit.com/r/golang/","id": "1wmm0au","url": "https://www.reddit.com/r/golang/comments/1wmm0au/small_projects/","text": "Small Projects\n\nThis is the weekly thread for small projects...","createdAt": "2026-09-21T13:00:31.000Z","author": { "username": "AutoModerator", "displayName": null, "url": null, "followers": null, "verified": null },"stats": { "likes": 12, "comments": 34, "shares": null, "views": null },"media": [],"source": { "kind": "store-actor", "name": "harshmaur~reddit-scraper" },"fetchedAt": "2026-09-24T02:40:51.123Z"}
The values above illustrate the shape; they are not taken from a real run.
The key-value store holds a RUN_SUMMARY record with totals and, for each URL:
- its platform and status (
succeeded,failedorunsupported); - the number of items and the latency;
- every attempt, with its source Actor, result, latency and error.
The record is also written while the run is in progress, so an aborted run still leaves a partial summary. Failures are reported only there and never become dataset rows.
Cost
This Actor runs with 256 MB of memory and spends most of its time waiting. Most of the cost comes from the Store Actors it calls. Those runs are billed to your account at their own prices (pay per result or pay per event). maxItemsPerUrl and maxChargeUsdPerChildRun limit how much each call can spend.
Limitations
- Public Store Actors must be allowed on your account. If your plan refuses them (
public-actor-disabled) or you reach your monthly usage limit, the run stops making calls after the first refusal. Every remaining URL is markedfailedwith that reason. - Some Actors have weaker test coverage.
apify/facebook-groups-scraperwas checked only against its input schema, not with a live run. - Medium article URLs usually fail. Only the last-resort crawler handles them, and it needs about 55 s.
- Results depend on third-party Actors. Their behaviour and pricing can change, and the platforms' own terms of service apply to the data you collect.