CNN Search Scraper avatar

CNN Search Scraper

Pricing

from $2.10 / 1,000 results

Go to Apify Store
CNN Search Scraper

CNN Search Scraper

Runs keyword searches against CNN.com's own search index and returns matching articles, videos and photo galleries -- headline, URL, thumbnail, modified date and teaser, with optional full article body, author, section and publish date fetched from each result's page.

Pricing

from $2.10 / 1,000 results

Rating

0.0

(0)

Developer

Ibnu Adzim

Ibnu Adzim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Runs keyword searches against CNN.com's own search index and returns the matching articles, videos and photo galleries.

Coverswww.cnn.com only — see Limits
Content typesarticles, videos, photo galleries
Returnsheadline, URL, thumbnail, modified date, teaser; optionally full article body, author, section and publish date
MethodHTTP only, one unauthenticated JSON endpoint. No browser, no login, no API key

Example input

{
"queries": ["climate change", "artificial intelligence"],
"contentTypes": ["article", "video"],
"sort": "relevance",
"maxItemsPerQuery": 50,
"includeFullBody": true
}

Output

Every row carries _input, _source, _scrapedAt, recordType. Three record types share the dataset: SEARCH_RESULT (one per hit), SEARCH_SUMMARY (one per query + content type, with CNN's own reported total and the filters actually applied) and ERROR. Every input maps to at least one row.

Limits — read these, they are not obvious

  • Flagship only. CNN's search index covers www.cnn.com. It does not include CNN en Español, Arabic, Brasil, Indonesia or any licensee edition — verified by searching mexico and brasil and finding only www.cnn.com hosts in every result. Use the CNN Articles Scraper for the other editions.
  • 1,000-result hard ceiling. CNN answers any offset at or beyond 1000 with an HTTP 403. A query can therefore never yield more than 1,000 rows regardless of the total it reports. Runs that reach it say so via _warning on the summary row rather than looking quietly truncated.
  • searchTeaser is not the article body. The search API's own text field is a one-sentence teaser (measured 103–230 characters against real bodies of 2,000–7,000). It is emitted under its own name so it cannot be mistaken for full text; set includeFullBody for the real thing.
  • The index is small. Measured totals: trump 23, 2026 233, russia 109, news 15. Common stopwords (the, people) return zero.
  • Only three content types and two sort orders are real. See below.

Two silent-fallback traps this actor guards against

CNN's API does not reject an unknown types or sort value — it ignores it and returns something plausible:

  • an unrecognised types returns the unfiltered result set (measured of=157 for every invalid value, versus 14 / 132 / 407 for article / video / gallery)
  • an unrecognised sort silently behaves as newest

Both are therefore rejected in code, not just in the Console enum — an API or CLI run never sees a Console enum. Passing contentTypes: ["live-story"] returns a named invalid_input error instead of a full unfiltered dump that looks like a successful narrow search.