# USA Today Articles Scraper (`ryyos/usatoday-articles-scraper`) Actor

\[$1/1000] Fast, reliable USA Today (usatoday.com) news scraper. Crawls every major section - U.S., Politics, Sports, Entertainment, Life, Money, and more - with full article detail: headline, author, dates, complete body text, every image, and video URLs

- **URL**: https://apify.com/ryyos/usatoday-articles-scraper.md
- **Developed by:** [Rio Dwi Saputra](https://apify.com/ryyos) (community)
- **Categories:** News, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### What does USA Today Articles Scraper do?

USA Today Articles Scraper extracts full news articles from [usatoday.com](https://www.usatoday.com), USA Today's flagship news site, across every major section: U.S. News, Politics, Sports, Entertainment, Life, Money, Travel, Opinion, Investigations, Real Estate, Video, Humankind, and the Archives. For every article it discovers, it returns the complete headline, byline, publish and update timestamps, full body text, every image URL, and video URLs when present - not just a summary snippet. Running it on Apify means no servers to manage, one-click scheduling for fresh headlines every hour or day, and instant export to JSON, CSV, or Excel.

### Why use USA Today Articles Scraper?

- **Media monitoring** - track how USA Today covers a topic, industry, or public figure over time.
- **Content aggregation** - feed a news dashboard, newsletter, or research dataset with clean, structured articles instead of raw HTML.
- **Trend and sentiment research** - pull full article text at scale for downstream NLP or analytics pipelines.
- **Competitive and market intelligence** - watch USA Today's Money and Politics sections for coverage that affects your business.

### How to use USA Today Articles Scraper

1. Click **Try for free** on the Actor page (or open the Input tab if you're already running it).
2. Pick which sections to crawl - all thirteen are selected by default so you get full-site coverage out of the box.
3. Optionally tune `maxArticlesPerSection` and `maxTotalArticles` to control run size and cost.
4. Click **Start** and watch results land in the dataset in real time.
5. Export the finished dataset as JSON, CSV, Excel, HTML, or XML, or pull it via the Apify API.

### Input

| Field | Type | Description |
|---|---|---|
| `sections` | array | Which sections to crawl. Defaults to all thirteen. |
| `maxArticlesPerSection` | integer | Cap on articles fetched per section (default 30). |
| `maxTotalArticles` | integer | Safety cap on total articles per run (default 200). |

See the **Input** tab for the full schema with descriptions and defaults.

Example input:

```json
{
  "sections": ["sports", "money", "politics"],
  "maxArticlesPerSection": 20,
  "maxTotalArticles": 100
}
```

### Output

Each dataset item is one article. Example:

```json
{
  "url": "https://www.usatoday.com/story/sports/mlb/2026/08/17/example-headline/91345664007/",
  "headline": "Example headline about a real MLB story",
  "shortHeadline": "Shorter version of the headline",
  "description": "One-sentence summary of the article.",
  "section": "sports",
  "articleSection": "sports",
  "datePublished": "2026-08-17T10:00:00Z",
  "dateModified": "2026-08-17T12:00:00Z",
  "isAccessibleForFree": true,
  "authorName": "Jane Doe",
  "authorJobTitle": "Sports Reporter",
  "authorUrl": "https://www.usatoday.com/staff/1234/jane-doe/",
  "publisherName": "USA TODAY",
  "heroImageUrl": "https://www.usatoday.com/gcdn/authoring/authoring-images/example.jpg",
  "images": ["https://www.usatoday.com/gcdn/authoring/authoring-images/example.jpg"],
  "videoUrls": [],
  "tags": ["MLB", "Baseball"],
  "bodyText": "Full multi-paragraph article body text..."
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Data table

| Field | Description |
|---|---|
| `url` | Canonical article URL |
| `headline` / `shortHeadline` | Full and short headline variants |
| `description` | Article summary/deck |
| `section` / `articleSection` | Crawled section and the site's own taxonomy label |
| `datePublished` / `dateModified` | ISO 8601 timestamps |
| `isAccessibleForFree` | `false` if the article is behind USA Today's subscriber paywall |
| `authorName` / `authorJobTitle` / `authorUrl` | Byline detail |
| `heroImageUrl` / `images` | Hero image and every inline image URL |
| `videoUrls` | Direct video URLs, when the article embeds one |
| `tags` | Editorial tags/keywords |
| `bodyText` | Full article body text |

### Pricing / Cost estimation

This Actor uses Apify's Pay Per Event pricing at **$1 per 1,000 articles scraped**, well below comparable news-article scrapers on Apify Store. A typical run covering a handful of sections with default limits costs a fraction of a cent to a few cents. No subscription or minimum spend required - you only pay for what you scrape.

### Tips or Advanced options

- Narrow `sections` to just the ones you care about to cut run time and cost.
- Lower `maxArticlesPerSection` for a lightweight "what's new right now" check; raise `maxTotalArticles` for deeper historical sweeps of the Archives section.
- Schedule the Actor hourly or daily on Apify to build a continuously growing dataset of USA Today coverage.

### FAQ, disclaimers, and support

This Actor only reads publicly accessible pages on usatoday.com and does not bypass any paywall or login. Paywalled articles are still returned with `isAccessibleForFree: false` so you can filter them out downstream. Site layout changes on USA Today's end may occasionally require an update to this Actor - please use the Issues tab to report anything that looks wrong. Need a custom variant (different sections, extra fields, a different Gannett/USA Today Network site)? Reach out via the Issues tab.

# Actor input Schema

## `sections` (type: `array`):

Which USA Today sections to crawl. Leave all selected to cover the whole site.

## `maxArticlesPerSection` (type: `integer`):

Maximum number of articles to fetch from each selected section's front page.

## `maxTotalArticles` (type: `integer`):

Safety cap on the total number of articles fetched across all sections in one run.

## Actor input object example

```json
{
  "sections": [
    "us",
    "politics",
    "sports",
    "entertainment",
    "life",
    "money",
    "travel",
    "opinion",
    "investigations",
    "realestate",
    "video",
    "humankind",
    "archives"
  ],
  "maxArticlesPerSection": 30,
  "maxTotalArticles": 200
}
```

# Actor output Schema

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

No description

## `runInfo` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("ryyos/usatoday-articles-scraper").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("ryyos/usatoday-articles-scraper").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 '{}' |
apify call ryyos/usatoday-articles-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ryyos/usatoday-articles-scraper"
        }
    }
}

```

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/IHn5drKeCUaL7fIRC/builds/pvW1Eta1qKpOeCNs1/openapi.json
