# FinancialJuice News Scraper (`solidcode/financialjuice-scraper`) Actor

\[💰 $4.00 / 1K] Extract real-time market-moving news headlines from FinancialJuice — titles, links, categories, tags, authors, and publish times. Filter by asset class (Forex, Crypto, Commodities, Equities, Bonds, Indexes, Macro) or search by keyword, with a headline limit per run.

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

## Pricing

from $4.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## FinancialJuice News Scraper

Pull real-time market-moving headlines from FinancialJuice at scale — asset-class feeds, full-newswire keyword search, source attribution, and clean UTC timestamps on every story. FinancialJuice broadcasts short, timestamped market-moving news the moment it breaks; this actor turns that live wire into a structured, deduplicated dataset. Built for algo traders, quant researchers, and financial-media monitors who need breaking market headlines in a database without watching a feed all day.

### Why This Scraper?

- **Eight asset-class feeds in one run** — Market Moving, Forex, Crypto, Commodities, Bonds, Equities, Indexes, and Macro headlines, or leave categories empty to pull the aggregate market-moving wire.
- **Keyword search across the entire newswire** — match any term or phrase ("Federal Reserve", "Bitcoin", "oil") against every headline the wire carries, not just today's front page. Category feeds and keyword search are two independent ways to narrow what you collect.
- **ISO-8601 UTC timestamps on every headline** — plus the original raw publish string, so you can sort, window, and align headlines to price bars without parsing localized date text.
- **Named source outlet per headline** — each row records the wire that broke the story (FXStreet, Reuters, and others) alongside a permalink to the headline on FinancialJuice.
- **Deduplicated on headline ID across every feed and keyword** — the same story surfacing in Crypto, Macro, and a keyword search collapses to a single row, so overlapping feeds never inflate your dataset.
- **Newest-first, capped exactly** — one headline limit governs the whole run; the feed returns the most recent market-moving news first and never overshoots your cap.
- **Keyword-match provenance on every row** — run several search terms at once and each headline records which keyword surfaced it, so multi-term monitoring stays traceable to its trigger.
- **Ten typed fields per headline, no cleanup required** — id, title, permalink, category, tags, source, ISO + raw publish time, matched keyword, and collection time, ready to load straight into a database or dashboard.

### Use Cases

**Algo & Quant Signals**

- Feed breaking market-moving headlines into event-driven trading models
- Build a news factor keyed on asset class (Forex, Crypto, Bonds, Commodities)
- Timestamp-align UTC headlines to price bars for backtesting
- Trigger a strategy re-check when Fed, CPI, or NFP headlines land

**Market Research**

- Track how a theme — rate cuts, oil, AI — moves across asset classes over time
- Assemble a searchable archive of market-moving headlines by keyword
- Compare headline volume across the Forex, Commodities, and Equities feeds

**Financial Media Monitoring**

- Watch for any mention of a company, ticker, or central bank across the wire
- Surface breaking headlines for a newsroom or research desk
- Archive the market-moving wire for compliance and audit trails

**Sentiment & NLP**

- Build a labeled corpus of financial headlines for sentiment models
- Score market tone by asset class using the category label on each row
- Correlate headline flow with intraday price moves

**Dashboards & Alerting**

- Power a live market-news dashboard grouped by asset class
- Push new headlines to Slack or email as they break, filtered by keyword
- Feed a client-facing terminal with structured, deduplicated headlines

### Getting Started

#### Latest Market-Moving Headlines

Zero configuration — pull the most recent headlines from the main wire:

```json
{
    "maxItems": 50
}
```

#### Filter by Asset Class

Collect only Forex and Crypto headlines:

```json
{
    "categories": ["forex", "crypto"],
    "maxItems": 100
}
```

#### Keyword Search Across the Wire

Track every headline mentioning any of these central banks, newest first:

```json
{
    "searchTerms": ["Federal Reserve", "ECB", "Bank of Japan"],
    "maxItems": 500
}
```

### Input Reference

#### What to Collect

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `categories` | array | `[]` (main feed) | Asset classes to collect: Market Moving, Forex, Commodities, Crypto, Equities, Bonds, Indexes, or Macro (Economy). Pick one or more, or leave empty to pull the aggregate market-moving feed. |
| `searchTerms` | array | `[]` | Keywords or phrases to match against the whole newswire (e.g. "Federal Reserve", "Bitcoin", "oil"). Each keyword is searched separately. Leave empty to skip keyword filtering. |

#### Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxItems` | integer | `100` | The most headlines to collect in one run, counted across all selected categories and keywords combined (duplicates removed). Newest headlines come first, so a lower number returns the latest news faster. |

### Output

Each record is one headline with ten typed fields:

```json
{
    "id": "9683844",
    "title": "USD/CHF Price Forecast: Bulls pause below 0.8150 as momentum fades",
    "url": "https://www.financialjuice.com/News/9683844/USDCHF-Price-Forecast-Bulls-pause-below-08150-as-momentum-fades.aspx",
    "category": "Forex",
    "tags": [],
    "author": "FXStreet",
    "publishedAt": "2026-07-18T02:01:55.063Z",
    "publishedAtRaw": "2026-07-18T02:01:55.063",
    "searchTerm": null,
    "scrapedAt": "2026-07-18T11:33:25.989Z"
}
```

#### Fields

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Unique headline identifier. Used as the deduplication key across feeds and keywords. |
| `title` | string | Headline text. |
| `url` | string | Permalink to the headline's page on FinancialJuice. |
| `category` | string | Asset-class feed the headline came from — Forex, Crypto, Macro, and so on, or "All" for the main feed. |
| `tags` | array | Topic tags the wire attached to the headline. Often empty. |
| `author` | string | Source outlet that published the headline (e.g. "FXStreet"); "FinancialJuice" when no outlet is named. |
| `publishedAt` | string | Publish time in ISO-8601 UTC (with trailing `Z`). |
| `publishedAtRaw` | string | The original publish timestamp exactly as provided by the wire. |
| `searchTerm` | string | null | The keyword that surfaced this headline; `null` when the row did not come from a keyword search. |
| `scrapedAt` | string | ISO-8601 UTC time the headline was collected. |

### Tips for Best Results

- **Start small to preview** — set `maxItems` to 25–50 on the first run to confirm the feed and fields match what you need, then scale up.
- **Use keyword search for event-driven monitoring** — a single term like "Federal Reserve" or a ticker sweeps the whole wire, ideal for alerting on a name the moment it breaks rather than watching a category scroll by.
- **Poll categories separately for asset-class dashboards** — request each asset class in its own run (or list several in `categories`) to keep a clean, per-class stream feeding each dashboard panel.
- **Keep runs recent and frequent** — the feed returns newest headlines first, so short, scheduled runs with a modest `maxItems` capture breaking news faster and cheaper than one huge backfill.
- **Category and keyword narrow independently** — a keyword search scans the full newswire rather than filtering inside a single category, so use categories to slice by asset class and keywords to hunt a theme across everything.
- **Give multi-word phrases as one entry** — put `"Bank of Japan"` in a single `searchTerms` item to match the phrase, and use several items to track several names in one run; each row's `searchTerm` tells you which one matched.
- **Deduplication is automatic** — request overlapping categories and keywords freely; each headline is returned once, keyed on its ID.

### Pricing

**From $4.00 per 1,000 results** — flat, pay-per-result pricing that undercuts the going rate for FinancialJuice headline data. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows the total cost at each Apify discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.48 | $0.45 | $0.43 | $0.40 |
| 1,000 | $4.80 | $4.50 | $4.30 | $4.00 |
| 10,000 | $48.00 | $45.00 | $43.00 | $40.00 |
| 100,000 | $480.00 | $450.00 | $430.00 | $400.00 |

A "result" is one headline row in the output dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom workflows when a run completes
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate market research, financial media monitoring, and trading analytics. Users are responsible for complying with applicable laws and FinancialJuice's Terms of Service. Respect copyright when redistributing headlines, and do not use collected data for spam, harassment, or any illegal purpose.

# Actor input Schema

## `categories` (type: `array`):

Only collect headlines from these asset classes. Leave empty to collect from the main market-moving feed (all categories).

## `searchTerms` (type: `array`):

Only collect headlines matching these keywords or phrases (for example 'Federal Reserve', 'Bitcoin', 'oil'). Each keyword is searched separately across the entire newswire, independently of any categories you select above. Leave empty to skip keyword filtering.

## `maxItems` (type: `integer`):

The most headlines to collect in this run (up to 10,000), counted across all selected categories and keywords combined (duplicates are removed). The feed shows the newest headlines first, so a lower number returns the most recent news faster.

## Actor input object example

```json
{
  "categories": [],
  "searchTerms": [],
  "maxItems": 100
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of collected headlines with the key fields.

## `detail` (type: `string`):

Complete headline data including all tags, identifiers, and timestamps.

# 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 = {
    "categories": [],
    "searchTerms": [],
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/financialjuice-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 = {
    "categories": [],
    "searchTerms": [],
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/financialjuice-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 '{
  "categories": [],
  "searchTerms": [],
  "maxItems": 100
}' |
apify call solidcode/financialjuice-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,solidcode/financialjuice-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/kvDMmqniFmgm9Npsm/builds/Ln6YCFD4UxGfM7B2f/openapi.json
