# News Site Article Archive (`mambalabs/news-site-article-archive`) Actor

Name news sites and a past date range and get full article text, dates, and authors as rows. Walks sitemaps and the Internet Archive index across years. No code, no AI, no login. Paywalled pages are left out.

- **URL**: https://apify.com/mambalabs/news-site-article-archive.md
- **Developed by:** [Mamba Labs](https://apify.com/mambalabs) (community)
- **Categories:** News, Automation, Marketing
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.55 / 1,000 article rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## News Site Article Archive

Name the news sites and a past date range, and get every article the actor can reach from that range as a row: full text, published date, title, author, and section. It walks a site's own sitemaps and month pages, then the Internet Archive capture index for years those no longer reach. No code, no AI, no browser, no login. You pay per article returned, and Mamba Labs pays the platform costs.

### Features

- **Walks back through a site's history.** Give a date range of days or years. The site's sitemaps come first, then for each month, oldest first, the site's own month pages (such as `/2016/01/`) or, where it has none, the Internet Archive capture index.
- **The page decides the date.** An article is kept only when the published date on the page is in your range. `date_source` says where the date came from.
- **Full text, not just links.** Paragraphs from the article body, without menus, related stories, newsletter boxes, or comments.
- **Pages gone from the site.** A page the site answers with 404, 410, 500, 502, or 504 is read from an Internet Archive copy, marked `read_from` `archive`, at its own price. Turn this off with `use_archive_copy` `no`.
- **Paywalls are respected.** A page the publisher marks as paywalled returns a free row with no text. Paywalled and refused pages are never read from an archive.
- **robots.txt obeyed by default.** Disallowed pages are skipped and counted, and a crawl delay is honored up to 5 seconds.
- **One free summary row per site.** Addresses found, articles returned, pages refused, paywalled, gone, and out of range, and how many months of the archive index were read, so you can see what the run did not reach.
- **Restart aware.** If Apify moves the run to another host, the run resumes from its saved position. A restart with no warning can repeat up to the last 10 pages read.
- **Cost guards.** A maximum per site and a maximum charge per run.

### How the data is read

Plain HTTP requests through the Apify proxy pool to the publisher's public pages, as a logged out visitor receives them, parsed from the HTML the server returns. Addresses and copies of gone pages come from the Internet Archive's public services. No login, no key, no AI, and no other developer's actor.

A refused read (HTTP 403 or 429, or a challenge page) is final: the actor does not retry it on a new address and does not try another route. It backs off and returns a free row. If the archive capture index refuses a read, the actor stops reading the index for that site and says so on the summary row.

### Input

| Field | Type | Default | What it does |
|---|---|---|---|
| `sites` | array |  | News sites by domain, for example techcrunch.com, up to 20. |
| `date_from` | string |  | The earliest published date, as YYYY-MM-DD. Default: 30 days before Date to. |
| `date_to` | string |  | The latest published date, as YYYY-MM-DD. Default: today. |
| `max_articles_per_site` | string | `100` | Articles to return from each site, up to 5,000. Default 100. |
| `url_contains` | array |  | Optional. Keep only addresses with any of these texts, for example /politics/. |
| `min_words` | string | `80` | Pages with fewer words are not counted as articles and are free. Default 80. |
| `use_archive_index` | string | `yes` | yes (default): when the sitemaps run out, also find addresses in the Internet Archive capture index, which reaches years that sitemaps no longer list. no: sitemaps only. |
| `use_archive_copy` | string | `yes` | yes (default): a page the site answers with 404, 410, 500, 502, or 504 is read from the Internet Archive, at the archived row price. Refused and paywalled pages are never read from an archive. no: gone pages return a free row. |
| `obey_robots` | string | `yes` | yes (default): pages robots.txt disallows are skipped and counted. no: read them anyway. |
| `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: article, skipped_page, site_summary, run_summary. run_summary is the one free row written when the input is refused. |
| `site` | string | The site this row came from. |
| `url` | string | The article address that was found. |
| `final_url` | string | The address after redirects. |
| `found_from` | string | sitemap, or archive_index for an address from the Internet Archive capture index. |
| `read_from` | string | live for the publisher's page, archive for an Internet Archive copy of a page gone from the site. |
| `archive_url` | string | The Internet Archive address read, for an archive row. |
| `archive_captured_at` | string | When the Internet Archive captured the copy. |
| `http_status` | integer | The status the publisher's page answered with. |
| `title` | string | The headline. |
| `author` | string | The byline, when the page states one. |
| `section` | string | The section, when the page states one. |
| `published_at` | string | The published date and time from the page, UTC. |
| `date_source` | string | Where the date came from: structured_data, meta_tag, time_tag, or address. An address gives the day only. |
| `modified_at` | string | The last modified time, when the page states one. |
| `description` | string | The summary the page gives. |
| `language` | string | The language the page declares. |
| `image_url` | string | The lead image address, when the page gives one. |
| `word_count` | integer | Words in text. |
| `text` | string | The full article text as served to a logged out visitor, paragraphs separated by a blank line. |
| `date_from` | string | The start of the date range, on a site summary row. |
| `date_to` | string | The end of the date range, on a site summary row. |
| `candidates_found` | integer | Article addresses found for this site. |
| `articles_returned` | integer | Article rows returned for this site. |
| `articles_from_archive` | integer | Article rows read from the Internet Archive. |
| `pages_paywalled` | integer | Pages marked as paywalled. Their text is not returned. |
| `pages_blocked` | integer | Pages the site refused. |
| `pages_gone` | integer | Pages gone from the site with no archive copy read. |
| `pages_out_of_range` | integer | Pages whose published date is outside the range. |
| `pages_no_date` | integer | Pages with no published date, so they could not be placed in the range. |
| `pages_not_article` | integer | Pages with too little text, or not article pages. |
| `pages_skipped_robots` | integer | Pages robots.txt disallows. |
| `pages_failed` | integer | Pages with a network or server error. |
| `sitemap_files_read` | integer | Sitemap files read, up to 12. |
| `archive_months_read` | integer | Months of the capture index read. |
| `archive_months_total` | integer | Months the date range covers. |
| `oldest_article` | string | The oldest published day returned for this site. |
| `newest_article` | string | The newest published day returned for this site. |
| `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 {"article-row":1}. {} means free. |
| `scraped_at` | string | When the row was written, UTC. |

### Pricing

Pay per event. You pay for articles returned and the run start. Refused, paywalled, gone, and out of range pages, summary rows, and a refused input are free.

| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| `article-row`, one article read from the publisher's page | $0.003 | $0.00285 | $0.0027 | $0.00255 |
| `archived-article-row`, one article read from an Internet Archive copy, only for a page gone from the site | $0.003 | $0.00285 | $0.0027 | $0.00255 |
| `apify-actor-start`, once per run (one per GB of memory; the default 256 MB is one) | $0.021 | $0.021 | $0.021 | $0.021 |

Per 1,000 rows of `article-row`: $3.00 on the free plan, $2.55 on Gold.

Free plan cap: 1.50 USD of evaluation a month, about 500 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

**One month of a site.**

```json
{
  "sites": ["techcrunch.com"],
  "date_from": "2016-01-01",
  "date_to": "2016-01-31",
  "max_articles_per_site": "50"
}
```

**Ten years from three sites, politics pages only.**

```json
{
  "sites": ["site-one.com", "site-two.com", "site-three.com"],
  "date_from": "2015-01-01",
  "date_to": "2024-12-31",
  "url_contains": ["/politics/"],
  "max_articles_per_site": "5000",
  "max_charge_usd": "40"
}
```

Read the rows with `GET https://api.apify.com/v2/datasets/{datasetId}/items`. Use the Text view for the article text, and the Summary view for what each site returned.

**Clay.** Number and yes or no 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-news-site-article-archive` 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 |
| The site refuses a page or shows a challenge page | A free `skipped_page` row with `row_status` `blocked`. After 5 refused pages in a row the site stops, and the summary row says so. A site that refuses its home page is not read at all |
| A page is marked as paywalled | A free `skipped_page` row with `row_status` `blocked`, the title, and the date, with no text |
| A page is gone and has no archive copy | A free `skipped_page` row with `row_status` `no_results` |
| The archive capture index stops answering | The site summary row reads `partial` and says so. Sitemap addresses are still read |
| No readable article in the range | A free summary row with `row_status` `no_results` or `blocked` |
| The run is close to its timeout | The actor stops starting new work 90 seconds before the timeout and delivers what it has |

### Limitations

- Coverage depends on the site. Sites behind an anti bot wall (for example a Cloudflare challenge) refuse the proxy pool and return free rows. In testing, apnews.com and nytimes.com article reads were refused, so those sites return little. The actor does not solve challenges, and it does not use residential addresses or a browser to get past one.
- Paywalled text is not returned, and no archive copy is read in its place. Pages that read as paywalled by a marker or a phrase are judged by fixed rules, so a rare one can be missed or wrongly flagged.
- Article addresses are only as complete as the sitemaps and the Internet Archive's captures. An article with neither is not found, and one first captured after the range ends is found only if a sitemap lists it. Use the summary row counts to judge a run.
- The capture index is a public service that can be slow or busy. A month takes 10 to 30 seconds, and 10 years is 120 months per site, so a long range needs a long run timeout. Up to 12 sitemap files are read per site, and up to 40 month pages per month.
- With several sites, each takes a fair share of the run's time and the summary row says when a site used its share. Raise the run timeout for long ranges.
- Oldest months are read first, so a low maximum returns the oldest articles in the range, not a spread across it.
- No browser. A site that builds its articles with JavaScript in the visitor's browser returns little or nothing, and those pages count as not articles.
- A page with no published date on it or in its address cannot be placed in the range, so it is counted and not returned. A date taken from the address gives the day only.
- A run reads up to 5 times the maximum articles plus 100 pages per site, then stops that site and says so.
- Publishers' terms differ, and several state limits on automated collection or reuse, including for AI training. How you use the text is yours to check.

### Changes

- 2026-11-09: the start price went from 0.014 USD to 0.021 USD. A run that finds no article measured up to 0.00328 USD on the current build.
- 2026-11-08: a refused read is no longer retried on a new proxy address, and a refusal from the archive capture index stops index reads for that site. The start price went from 0.02 USD to 0.005 USD, then to 0.014 USD the same day, so a run that finds no article still costs less than its price.

### Mamba Labs actor suite

| Actor | Actor ID |
|---|---|
| [Account Hiring Watch](https://apify.com/mambalabs/account-hiring-watch?fpr=mamba) | `gRAZA5WBi1r6L0gy7` |
| [Agent Accessibility Auditor](https://apify.com/mambalabs/agent-accessibility-auditor?fpr=mamba) | `anxbRv0lKrpQ1pnua` |
| [Agent to Brokerage Resolver](https://apify.com/mambalabs/agent-brokerage-resolver?fpr=mamba) | `ePRRGLxOGyaVHO4dI` |
| [AI Answer Visibility Tracker](https://apify.com/mambalabs/ai-answer-visibility-tracker?fpr=mamba) | `RJZvzKniYK4nswcMg` |
| [AI Tooling Detector](https://apify.com/mambalabs/ai-tooling-detector?fpr=mamba) | `EwkHhmqiuJgRoVEbE` |
| [Amazon Product, Price, and Stock Tracker](https://apify.com/mambalabs/amazon-product-price-stock-tracker?fpr=mamba) | `MtJPZoyjJ3IeqTFyo` |
| [API Deprecation and Breaking Change Monitor](https://apify.com/mambalabs/api-change-monitor?fpr=mamba) | `pHsbS3xXUK8Jqutz5` |
| [App Store and Google Play Review Monitor](https://apify.com/mambalabs/app-store-google-play-review-monitor?fpr=mamba) | `MaCMEhGrbchxQZ92G` |
| [B2B Reddit Conversation Monitor](https://apify.com/mambalabs/b2b-reddit-conversation-monitor?fpr=mamba) | `SoDryzzsjmY3SsiyG` |
| [Bluesky Brand Presence Mapper](https://apify.com/mambalabs/bluesky-brand-presence-mapper?fpr=mamba) | `eLpxzP4IuXznlFVND` |
| [Brand Sponsor Finder](https://apify.com/mambalabs/brand-sponsor-finder?fpr=mamba) | `PPgK6xrgOmvL7Nrys` |
| [Bulk WHOIS and RDAP Domain Age Lookup](https://apify.com/mambalabs/whois-domain-lookup?fpr=mamba) | `MTrkG5FLU6SjqLdJY` |
| [Career Change Signal Engine](https://apify.com/mambalabs/career-change-signal-engine?fpr=mamba) | `vX2Yga1a6wGaXaP14` |
| [Company Careers Page Jobs, 17 ATS Boards](https://apify.com/mambalabs/ats-jobs-feed?fpr=mamba) | `izP0rfIgf5YaRZfIh` |
| [Company Change Event Feed](https://apify.com/mambalabs/company-change-event-feed?fpr=mamba) | `oX44rS0fkEJ3rXLWe` |
| [Company Discovery List Builder](https://apify.com/mambalabs/company-discovery-list-builder?fpr=mamba) | `jch0HdaZnpbMqlcGS` |
| [Company Firmographic Enricher](https://apify.com/mambalabs/company-firmographic-enricher?fpr=mamba) | `YlUtLWjfPpqykmB8g` |
| [Company Funding Record](https://apify.com/mambalabs/funding-investor-record?fpr=mamba) | `OFS4Mt1gyYNtGfUbE` |
| [Company Headcount Estimator](https://apify.com/mambalabs/company-headcount-estimator?fpr=mamba) | `aHC4GROnNt6kfZe5r` |
| [Company Identity Resolver](https://apify.com/mambalabs/company-identity-resolver?fpr=mamba) | `lr8fTRAmZCBZmuwwh` |
| [Company Role Email, Phone and Address Finder](https://apify.com/mambalabs/company-contact-details-extractor?fpr=mamba) | `4mMncKaJykiq94grz` |
| [Company Social Presence Mapper](https://apify.com/mambalabs/company-social-presence-mapper?fpr=mamba) | `4k6CCemkgBDz18m2h` |
| [Competitor Price, Stock, and Changelog Monitor](https://apify.com/mambalabs/competitor-price-stock-changelog-monitor?fpr=mamba) | `yxdgCbUQ4PYQWwRNU` |
| [Contact Classifier](https://apify.com/mambalabs/contact-classifier?fpr=mamba) | `0lGSeYJmniXhGANnO` |
| [Contractor License Search, CA, TX, WA, OR, LA](https://apify.com/mambalabs/contractor-license-lookup?fpr=mamba) | `WBYK3CPI2kdeq4bP1` |
| [CRM Contact Job Change Checker](https://apify.com/mambalabs/job-change-tracker?fpr=mamba) | `L8UbEmMJC1XYPSZOb` |
| [Domain Deliverability Checker](https://apify.com/mambalabs/domain-deliverability-checker?fpr=mamba) | `0tVgxI7A6o9jMlxmc` |
| [Domain to LinkedIn URL Resolver](https://apify.com/mambalabs/domain-to-linkedin-url-resolver?fpr=mamba) | `3HtnSaqPHOg1Qg5gx` |
| [Ecommerce Platform Profiler](https://apify.com/mambalabs/ecommerce-platform-profiler?fpr=mamba) | `5G2NeYjBbQTjaTn9L` |
| [Ecommerce Store Discovery](https://apify.com/mambalabs/ecommerce-store-discovery?fpr=mamba) | `PeHu4sLyFvQHXUUrX` |
| [Email List Verifier, Bring Your Own Key](https://apify.com/mambalabs/email-verifier?fpr=mamba) | `CzVJ4NlaCKk80xpgE` |
| [Event Presence Index](https://apify.com/mambalabs/event-presence-index?fpr=mamba) | `WLhMy8fMDgsxdYxv5` |
| [Expert Witness Finder, US and Australia](https://apify.com/mambalabs/expert-witness-directory?fpr=mamba) | `LIpwlgfE3LaQBaXd4` |
| [Funding and Press Signal Scanner](https://apify.com/mambalabs/funding-press-signal-scanner?fpr=mamba) | `FS13X6dhQVgX3XOM6` |
| [GDPR Cookie Banner and Consent Checker](https://apify.com/mambalabs/cookie-consent-audit?fpr=mamba) | `TrKyOS0KBoGC35nbr` |
| [GitHub Followers and Following Export](https://apify.com/mambalabs/github-followers-following-export?fpr=mamba) | `SGNxDmFb9v3tRDaFI` |
| [GitHub Organization Signal Scanner](https://apify.com/mambalabs/github-organization-signal-scanner?fpr=mamba) | `ahF8RRpv5mzPao5CN` |
| [Google Ads Transparency Center Scraper by Domain](https://apify.com/mambalabs/google-ads-transparency-monitor?fpr=mamba) | `1eOwxhBVxzvOXAm4s` |
| [Google Trends Scraper](https://apify.com/mambalabs/google-trends-scraper?fpr=mamba) | `OeDzaACKmBYJXzHZk` |
| [GTM Hiring Signal Scraper](https://apify.com/mambalabs/gtm-hiring-signal-scraper?fpr=mamba) | `D7O1SA2EqwHGsGr1P` |
| [GTM Signals Aggregator](https://apify.com/mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay?fpr=mamba) | `xKdRfnfFNkdMpFuNs` |
| [Healthcare Provider NPI Enricher](https://apify.com/mambalabs/healthcare-provider-npi-enricher?fpr=mamba) | `MrgbHzcpDq3mOv9Df` |
| [ICP Fit Scorer](https://apify.com/mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay?fpr=mamba) | `W161DT8W4kW55dMFh` |
| [Influencer Change Monitor](https://apify.com/mambalabs/creator-change-monitor?fpr=mamba) | `d2VVgahNL6UmcLkhg` |
| [Influencer Lead List Builder](https://apify.com/mambalabs/creator-lead-list-all-in-one?fpr=mamba) | `KnmByszcv135yM30G` |
| [Influencer Profile Scraper](https://apify.com/mambalabs/creator-profile-reader?fpr=mamba) | `EqEnklDVMIcB1V499` |
| [Influencer Search Across TikTok, Instagram and YouTube](https://apify.com/mambalabs/creator-finder?fpr=mamba) | `tpkedmloIIWtXx6sg` |
| [Influencer Talent Agency Lookup](https://apify.com/mambalabs/talent-agency-lookup?fpr=mamba) | `zCuX4Mgyg6JvXgGzd` |
| [Instagram Facebook Brand Presence Mapper](https://apify.com/mambalabs/meta-brand-presence-mapper?fpr=mamba) | `HXh65I0JBjPsunbY8` |
| [Integration and Marketplace Presence Mapper](https://apify.com/mambalabs/integration-marketplace-presence-mapper?fpr=mamba) | `V0guNuvM85Q61f2gj` |
| [Job Board Keyword Signal Scanner](https://apify.com/mambalabs/job-board-keyword-signal-scanner?fpr=mamba) | `4DvqpvhMR74NLcDDY` |
| [Job Posting Monitor](https://apify.com/mambalabs/gtm-job-discovery?fpr=mamba) | `QCfICD9kOPiOdj5iI` |
| [Journalist and Media List Builder](https://apify.com/mambalabs/journalist-media-list-builder?fpr=mamba) | `mAfizsZC8qRoR0ecS` |
| [Launch Directory List Builder](https://apify.com/mambalabs/launch-directory-list-builder?fpr=mamba) | `cRq3bmvEZxZtioQ7U` |
| [Lead File Import Checker](https://apify.com/mambalabs/lead-file-import-checker?fpr=mamba) | `RwlGVXTf46LqZdUgt` |
| [Legal Entity Resolver](https://apify.com/mambalabs/legal-entity-resolver?fpr=mamba) | `KHFyPCDIx7CyqULYm` |
| [Link in Bio Scraper and Newsletter Detector](https://apify.com/mambalabs/link-in-bio-newsletter-checker?fpr=mamba) | `OorucdheTIgu7RFzK` |
| [LinkedIn Company Page Mapper](https://apify.com/mambalabs/linkedin-company-presence-mapper?fpr=mamba) | `zOPm6A9JEhUGcIdFW` |
| [LinkedIn Jobs Feed](https://apify.com/mambalabs/linkedin-jobs-feed?fpr=mamba) | `SH6N0d8cz46BhCC8B` |
| [LinkedIn Post Tracker](https://apify.com/mambalabs/linkedin-post-engager-capture?fpr=mamba) | `oiGLNPuaf5BRaz9K5` |
| [Local Business Lead Builder](https://apify.com/mambalabs/local-business-lead-builder?fpr=mamba) | `qMN97aoHhsAS5bznV` |
| [Local Rank and Map Pack Tracker](https://apify.com/mambalabs/local-rank-map-pack-tracker?fpr=mamba) | `gv0kyHGDIg8XscclB` |
| [Lookalike Companies from Seed Domains](https://apify.com/mambalabs/lookalike-company-finder?fpr=mamba) | `e2O426WBAbLLQL4Z2` |
| [Manufacturer and Supplier Finder](https://apify.com/mambalabs/manufacturer-supplier-finder?fpr=mamba) | `Qcsdmd0lUfPzVkonh` |
| [MCP Server Change and Health Monitor](https://apify.com/mambalabs/mcp-server-change-health-monitor?fpr=mamba) | `IeqjWF9U0BdDQFY08` |
| [Media URL Transcriber](https://apify.com/mambalabs/media-url-transcriber?fpr=mamba) | `Syfr7Ya3EsHgWfrB6` |
| [Meta Ad Library Ads by Company, Graph API](https://apify.com/mambalabs/meta-ad-library-monitor?fpr=mamba) | `J1GWlSXfSGU3u8Wng` |
| [Mobile Phone Waterfall](https://apify.com/mambalabs/mobile-phone-waterfall-orchestrator?fpr=mamba) | `6OOgPktf7RIa5XCOP` |
| [New Hire Finder](https://apify.com/mambalabs/new-hire-finder?fpr=mamba) | `cKuc38p4nYHNF3IW8` |
| [Newly Registered Companies, UK, Norway, Finland, France](https://apify.com/mambalabs/new-company-registrations-feed?fpr=mamba) | `g2WfZhWvCtc57g2Jo` |
| [News and Media Mention Monitor](https://apify.com/mambalabs/news-media-mention-monitor?fpr=mamba) | `gol1PPUKrsIk4QLBd` |
| [Newsletter Sponsor Tracker](https://apify.com/mambalabs/newsletter-sponsor-tracker?fpr=mamba) | `qSwpqxD1TiPZpLQHv` |
| [Open Tender and RFP Finder](https://apify.com/mambalabs/open-tender-rfp-finder?fpr=mamba) | `kPTGz6t6TFoUUyfaO` |
| [Outbound Stack Detector](https://apify.com/mambalabs/outbound-infrastructure-fingerprint?fpr=mamba) | `v43UJC8r7qW7cBSTG` |
| [Page Finder and Extractor](https://apify.com/mambalabs/page-finder-extractor?fpr=mamba) | `TpurgcOZbVnknlaiC` |
| [Partner and Member Directory Extractor](https://apify.com/mambalabs/partner-member-directory-extractor?fpr=mamba) | `ZX0XJPPUvnFJxeC1a` |
| [People Finder & Email Verifier](https://apify.com/mambalabs/people-finder?fpr=mamba) | `LEgloG7tWgQl4o6TD` |
| [Person LinkedIn URL Resolver](https://apify.com/mambalabs/person-linkedin-url-resolver?fpr=mamba) | `ssuyPV8LnEsL8qbnb` |
| [Person Social Footprint Mapper](https://apify.com/mambalabs/person-social-footprint-mapper?fpr=mamba) | `jfQXa2zW9FHCJot9K` |
| [Personal Email to Company Resolver](https://apify.com/mambalabs/personal-email-to-company-resolver?fpr=mamba) | `AefT5Ye6YNPFQwJBf` |
| [Pinterest Brand Presence Mapper](https://apify.com/mambalabs/pinterest-brand-presence-mapper?fpr=mamba) | `d1HvjZfKhgvWsoEwn` |
| [Podcast Guest and Host Finder](https://apify.com/mambalabs/podcast-guest-host-finder?fpr=mamba) | `o2MGSvgbSLeeXOsIo` |
| [Product Hunt Daily Launches with Maker Domains](https://apify.com/mambalabs/product-hunt-launches-feed?fpr=mamba) | `O4VX63drWK9Y9x641` |
| [Prospect Engine](https://apify.com/mambalabs/b2b-prospect-engine?fpr=mamba) | `q9rT6v64nUJdPexOQ` |
| [Public Feature Board and Roadmap Monitor](https://apify.com/mambalabs/public-feature-board-roadmap-monitor?fpr=mamba) | `rcHF5gj5r2Vqnry35` |
| [Publishing Frequency Tracker](https://apify.com/mambalabs/blog-publishing-frequency?fpr=mamba) | `TbLwaUUATdYb6wp4N` |
| [Recent Funding Rounds Feed](https://apify.com/mambalabs/recent-funding-rounds-feed?fpr=mamba) | `KueVp9MOz7iOoAgDp` |
| [Reddit Brand Presence Mapper](https://apify.com/mambalabs/reddit-brand-presence-mapper?fpr=mamba) | `pKQZmDaT70SEb54bZ` |
| [Reddit Search and Thread Scraper](https://apify.com/mambalabs/reddit-search-thread-scraper?fpr=mamba) | `4Gsth5cP2Xt9V2xDN` |
| [Reporting Window Finder](https://apify.com/mambalabs/public-company-reporting-window-finder?fpr=mamba) | `uINxR7a1IW8qUTRUX` |
| [Research Topic Institutions and Authors](https://apify.com/mambalabs/research-topic-institutions-authors?fpr=mamba) | `OH8ANqt7bCKbo72Gk` |
| [Sequencer Event Poller](https://apify.com/mambalabs/sequencer-event-poller?fpr=mamba) | `S6s8Rjd61tGdrMRk4` |
| [Sequencer Lead Push](https://apify.com/mambalabs/clay-to-instantly-smartlead-push?fpr=mamba) | `0Jv27VeWM5tSZQs9x` |
| [Shopify App Store and Chrome Web Store Listings](https://apify.com/mambalabs/shopify-app-store-chrome-web-store-listings?fpr=mamba) | `gaY0BzkLyN77mD3wI` |
| [Site Crawler for Links and Tables](https://apify.com/mambalabs/site-crawler-links-tables?fpr=mamba) | `lLLJ6JxZ4XqN8ULz0` |
| [Substack Newsletter and Posts Scraper](https://apify.com/mambalabs/substack-scraper?fpr=mamba) | `UEFsdwiPLmPNVy9xd` |
| [Team Page People Extractor](https://apify.com/mambalabs/team-page-people-extractor?fpr=mamba) | `j8a9zX0k4mNbvDbWK` |
| [Tech Stack Signal Detector](https://apify.com/mambalabs/gtm-tech-stack-signal-scraper?fpr=mamba) | `qyd7nNyqFPelQViBx` |
| [Threads Posts by Keyword, Exact Match](https://apify.com/mambalabs/threads-keyword-search?fpr=mamba) | `2OT8K8RiEEWtaj2MW` |
| [TikTok Brand Presence Mapper](https://apify.com/mambalabs/tiktok-brand-presence-mapper?fpr=mamba) | `fco8FvoJcSafbeyd1` |
| [Trustpilot Reputation Enricher](https://apify.com/mambalabs/review-platform-reputation-enricher?fpr=mamba) | `3lIqfCt61j4hqE1xz` |
| [US and UK Contract Award Winners by Company](https://apify.com/mambalabs/public-award-monitor?fpr=mamba) | `zhEtllASykOcx9hJ8` |
| [US Import Records Buyer Finder](https://apify.com/mambalabs/us-import-records-buyer-finder?fpr=mamba) | `VIMafpKF5ggOw0COU` |
| [VC and Accelerator Portfolio List Builder](https://apify.com/mambalabs/vc-accelerator-portfolio-list-builder?fpr=mamba) | `chH8hrfuoqqolW06m` |
| [Website Accessibility Checker, WCAG 2.2 AA](https://apify.com/mambalabs/wcag-accessibility-audit?fpr=mamba) | `P3jBj3FRghKEhX52z` |
| [Website Phrase and Business Model Classifier](https://apify.com/mambalabs/website-phrase-business-model-classifier?fpr=mamba) | `CBuZ9k7sRwBeiKiCS` |
| [Website Traffic Rank Estimator](https://apify.com/mambalabs/website-traffic-rank-estimator?fpr=mamba) | `GnOFUzlNVIoXgeJjH` |
| [Work Email Waterfall](https://apify.com/mambalabs/email-waterfall-orchestrator?fpr=mamba) | `OT6xqTFThC0Rjf7Zj` |
| [Workplace Program Detector](https://apify.com/mambalabs/workplace-program-detector?fpr=mamba) | `Li6pPDhqbdzFz3h7G` |
| [X Brand Presence Mapper](https://apify.com/mambalabs/x-brand-presence-mapper?fpr=mamba) | `oLOgadhHUkNAyDA3w` |
| [YouTube Channel from Company Domain](https://apify.com/mambalabs/youtube-channel-transcript-extractor?fpr=mamba) | `6hSpD3kd2s2IQ4VSs` |
| [Zillow Listing Details](https://apify.com/mambalabs/zillow-listing-details?fpr=mamba) | `yG4zM0Enfsw2NefJ1` |

Built by [Mamba Labs](https://apify.com/mambalabs).

# Actor input Schema

## `sites` (type: `array`):

News sites by domain, for example techcrunch.com, up to 20.

## `date_from` (type: `string`):

The earliest published date, as YYYY-MM-DD. Default: 30 days before Date to.

## `date_to` (type: `string`):

The latest published date, as YYYY-MM-DD. Default: today.

## `max_articles_per_site` (type: `string`):

Articles to return from each site, up to 5,000. Default 100.

## `url_contains` (type: `array`):

Optional. Keep only addresses with any of these texts, for example /politics/.

## `min_words` (type: `string`):

Pages with fewer words are not counted as articles and are free. Default 80.

## `use_archive_index` (type: `string`):

yes (default): when the sitemaps run out, also find addresses in the Internet Archive capture index, which reaches years that sitemaps no longer list. no: sitemaps only.

## `use_archive_copy` (type: `string`):

yes (default): a page the site answers with 404, 410, 500, 502, or 504 is read from the Internet Archive, at the archived row price. Refused and paywalled pages are never read from an archive. no: gone pages return a free row.

## `obey_robots` (type: `string`):

yes (default): pages robots.txt disallows are skipped and counted. no: read them anyway.

## `max_charge_usd` (type: `string`):

Optional. The run stops before a charge that would pass this amount. Summary rows are always returned.

## `source_tag` (type: `string`):

Internal attribution tag. Leave empty.

## Actor input object example

```json
{
  "sites": [
    "techcrunch.com"
  ],
  "date_from": "2016-01-01",
  "date_to": "2016-01-31",
  "max_articles_per_site": "5",
  "min_words": "80",
  "use_archive_index": "yes",
  "use_archive_copy": "yes",
  "obey_robots": "yes"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `run_summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "sites": [
        "techcrunch.com"
    ],
    "date_from": "2016-01-01",
    "date_to": "2016-01-31",
    "max_articles_per_site": "5"
};

// Run the Actor and wait for it to finish
const run = await client.actor("mambalabs/news-site-article-archive").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "sites": ["techcrunch.com"],
    "date_from": "2016-01-01",
    "date_to": "2016-01-31",
    "max_articles_per_site": "5",
}

# Run the Actor and wait for it to finish
run = client.actor("mambalabs/news-site-article-archive").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "sites": [
    "techcrunch.com"
  ],
  "date_from": "2016-01-01",
  "date_to": "2016-01-31",
  "max_articles_per_site": "5"
}' |
apify call mambalabs/news-site-article-archive --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mambalabs/news-site-article-archive"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/NjcF3UD8791raFNHh/builds/lnhUmpOrfzggFJhwW/openapi.json
