Athena Social Orchestrator avatar

Athena Social Orchestrator

Pricing

Pay per usage

Go to Apify Store
Athena Social Orchestrator

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

Rani-L

Maintained by Community

Actor 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, never 0. Dates are ISO 8601 or null, never epoch numbers. url always points to the post, never to a media file.
  • Transparent runs. A RUN_SUMMARY record 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.

PlatformActors
X / Twitterapidojo/tweet-scraper, apidojo/twitter-scraper-lite, xquik/x-tweet-scraper
Instagramapify/instagram-scraper, apify/instagram-api-scraper
TikTokclockworks/tiktok-scraper (profile URLs are sent as a handle), apidojo/tiktok-scraper, apidojo/tiktok-scraper-api
Facebookapify/facebook-posts-scraper, apify/facebook-groups-scraper
Redditharshmaur/reddit-scraper, fatihtahta/reddit-scraper-search-fast, practicaltools/apify-reddit-api, trudax/reddit-scraper-lite (last resort)
LinkedInharvestapi/linkedin-profile-posts, supreme_coder/linkedin-post, harvestapi/linkedin-profile-scraper (last resort, returns the profile record)
YouTubestreamers/youtube-scraper, apidojo/youtube-scraper, streamers/youtube-channel-scraper (last resort)
Mediumautomation-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

FieldTypeDefaultDescription
urlsarray of stringsrequired1 to 100 public URLs.
maxItemsPerUrlinteger20Maximum posts per URL (1 to 100).
concurrencyinteger3How many URLs are processed at the same time (1 to 10).
childTimeoutSecsinteger120Timeout for each Store Actor run. It is also capped to this run's remaining time.
childMemoryMbytesinteger1024Memory for each Store Actor run, in MB. Must be a power of 2 from 128 to 32768.
maxChargeUsdPerChildRunnumber0.50Cost cap for each Store Actor run, in USD. clockworks/tiktok-scraper refuses caps below $0.50.
proxyConfigurationobjectApify ProxyIgnored 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, failed or unsupported);
  • 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 marked failed with that reason.
  • Some Actors have weaker test coverage. apify/facebook-groups-scraper was 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.