Ghost Explore Scraper avatar

Ghost Explore Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Ghost Explore Scraper

Ghost Explore Scraper

Scrape the Ghost Explore newsletter directory: publications, member counts, revenue signals and staff contacts. Keyless, HTTP-only, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Aurenic

Aurenic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Categories

Security

Limited permissions

Share

Scrape the Ghost Explore newsletter directory: publications, member counts, revenue signals and staff contacts — keyless, HTTP-only, no login.

What does Ghost Explore Scraper do?

Ghost Explore (explore.ghost.org) is the first-party discovery directory that Ghost runs for publications built on its platform. Every listing carries a complete structured payload embedded in the page as HTML data-* attributes: publication name, description, external newsletter URL, icon, accent color, subscriber count, staff roster with social links, owner testimonial with revenue figures, and ActivityPub handle. No API key, no login, no JavaScript rendering.

This actor reads that payload, plus the public per-site RSS JSON endpoint, and returns one row per publication per ranking page.

Output fields

FieldTypeDescription
slugstringGhost Explore identifier, e.g. tangle
namestringPublication display name
descriptionstringPublication description
newsletter_urlstringExternal newsletter URL (with ?ref=ghost-explore)
profile_urlstringGhost Explore profile page URL
icon_urlstringPublication logo
accent_colorstringBrand accent color (hex)
member_countintegerSubscriber count when published publicly
show_membersbooleanWhether the publication displays its member count
is_top_100booleanWhether the publication is in Ghost Explore's top 100
ap_handlestringActivityPub / social web handle
ap_follower_countintegerActivityPub follower count
ap_following_countintegerActivityPub following count
staff_usersarrayStaff roster with name, role, posts, bio, profile image, Twitter, LinkedIn, Instagram, YouTube, TikTok, Mastodon, Bluesky, Threads, Facebook, website
staff_countintegerNumber of staff listed
testimonialobjectOwner quote with revenue and subscriber signals
categorystringCategory or ranking page that produced this row
ranking_liststringSource page slug
rankintegerPosition on the source page (1-based)
source_page_urlstringURL of the source page
rss_postsarrayRecent posts (when includeRssPosts is on): title, url, published_at, author, image
latest_post_datestringMost recent post date (when RSS is on)
scraped_atstringISO timestamp

Who is it for?

  • Sponsorship sales prospecting Ghost newsletters by category, reach and revenue signal
  • PR and media relations building writer contact lists from the staff roster
  • Market research ranking the Ghost newsletter ecosystem by subscriber count
  • Competitive intelligence tracking which publications enter the Top 100 and Trending lists
  • CRM enrichment auto-filling publication contacts and social links
  • AI agents and MCP users pulling structured creator data for analysis

Pricing

Pay per result: $1.00 per 1,000 publications.

Charged only for records actually written to the dataset.

How to use it

  1. Open the actor in Apify Console.
  2. Choose the categories and ranking pages to crawl. Defaults to the four main ranking pages: Top Members, Top Revenue, Trending, Recent.
  3. Optionally set a language filter.
  4. Optionally turn on Include recent RSS posts to attach the most recent posts per publication.
  5. Click Start and export as JSON, CSV or Excel.

Output example

{
"record_type": "ghost_explore_publication",
"slug": "tangle",
"name": "Tangle",
"description": "Summarizing the best arguments from across the political spectrum. 100% independent, subscriber-supported, and non-partisan.",
"newsletter_url": "https://www.readtangle.com",
"profile_url": "https://explore.ghost.org/p/tangle",
"icon_url": "https://fls-9e7c60dc-a2b4-4b4b-872e-862c515a14da.laravel.cloud/icons/af03a256-3922-42d6-bb76-fc3bcdabf330-0fc9be73.webp",
"accent_color": "#951867",
"member_count": 881000,
"show_members": true,
"is_top_100": true,
"ap_handle": null,
"staff_users": [
{
"name": "Isaac Saul",
"role": "Owner",
"posts": 2307,
"bio": "I'm a politics reporter who grew up in Bucks County, PA...",
"twitter": "https://twitter.com/Ike_Saul",
"linkedin": null,
"website": null
}
],
"staff_count": 5,
"testimonial": {
"quote": "It has now been one year since I quit my full-time job to go all in on Tangle. Today, we have [75,000] paying subscribers. That's roughly [$4M] in gross yearly revenue",
"author": "Isaac Saul"
},
"category": "top-members",
"ranking_list": "top-members",
"rank": 1,
"source_page_url": "https://explore.ghost.org/top-members",
"rss_posts": null,
"scraped_at": "2026-10-03T12:00:00.000Z"
}

Technical details

  • Stack: Node.js 24, apify SDK, native fetch, cheerio.
  • Source: https://explore.ghost.org/{category} — server-rendered HTML. No JavaScript execution required.
  • Extraction: each publication is an <a data-site-slug="..."> anchor carrying the full payload as data-* attributes. data-staff-users and data-testimonial are HTML-entity-encoded JSON objects, decoded automatically by cheerio.
  • RSS enrichment: https://explore.ghost.org/api/sites/{slug}/rss returns a JSON array of recent posts. Optional.
  • Categories: ranking pages (top, top-members, top-revenue, trending, recent, social-web, personal) plus 30+ topic pages (tech, business, programming, news, finance, culture, travel, education, art, faith-spirituality, health, literature, sport, entertainment, productivity, design, food-drink, music, crypto, science, fiction, gaming, nature-outdoors, house-home, fashion-beauty, podcasts, gear-gadgets, history, parenting, climate, youtubers).
  • Language filter: query string ?lang=en (supports en, fr, es, de, it, pt, ja, pl, nl, ko).
  • Retries: 429 and 5xx responses are retried up to three times with backoff.
  • Proxy: defaults to the Apify datacenter pool.

Known limits

  • ~52 publications per page. Ghost Explore curates roughly 52 sites per ranking page. There is no server-side pagination on the category page. To cover more publications, crawl more categories.
  • Member counts are opt-in. Publications choose whether to display their member count. When show_members is false, member_count is null.
  • The directory is curated, not exhaustive. Ghost Explore lists a curated subset of Ghost publications, not every Ghost site in existence.
  • Revenue figures come from testimonials. When a publication supplies a testimonial with revenue or subscriber figures, they appear in testimonial. This is self-reported.
  • Duplicate publications across categories. The same publication appears on multiple pages (e.g. Top Members and Tech). Each occurrence is written with its own category and rank.

FAQ

Do I need an API key? No. The directory is public HTML and the RSS endpoint is public JSON.

How many publications are in Ghost Explore? The directory lists a curated subset of Ghost publications across its category pages. Crawling all 35+ categories yields the widest coverage.

What is the difference between top and top-members? top is Ghost's editorial top pick. top-members ranks by subscriber count. top-revenue ranks by revenue.

Can I get the author's contact email? The staff roster carries social links but not email addresses. Ghost Explore does not publish emails.

What does the testimonial field contain? The owner's quote, which frequently includes subscriber counts and revenue figures — for example "we have 75,000 paying subscribers, roughly $4M in gross yearly revenue".

Why does the same site appear multiple times? Because it ranks on multiple category pages. Each row records its own category and rank. Filter by category for a deduplicated per-page view.

Support

Open an issue on the Actor's page for bugs or feature requests.

Changelog

0.1 — 2026-10-03

  • Initial build. Keyless extraction of the Ghost Explore newsletter directory.
  • Parses the data-* payload embedded in each a[data-site-slug] anchor: name, description, external URL, icon, accent color, member count, staff roster, testimonial, ActivityPub handle.
  • 35+ supported category and ranking pages plus a language filter.
  • Optional RSS enrichment via the public /api/sites/{slug}/rss JSON endpoint.
  • Rank and source page recorded per row so the same publication can be compared across rankings.
  • Retries on 429 and 5xx with backoff.
  • No login, no API key, no JavaScript rendering.