# Investing.com Financial Data Scraper (`xtracto/investing-financial-scraper`) Actor

Multi-mode HTTP-only scraper for Investing.com instrument pages. Extracts asset info + FAQs, technical indicators, instrument news, forum sentiment, or raw OHLCV history. Routes by extractionMode.

- **URL**: https://apify.com/xtracto/investing-financial-scraper.md
- **Developed by:** [Farhan Febrian Nauval](https://apify.com/xtracto) (community)
- **Categories:** Lead generation, Integrations, Automation
- **Stats:** 17 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $18.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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?

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

## Investing.com Financial Scraper

Multi-mode scraper for Investing.com instrument pages. Point it at any equity, crypto, index, commodity, or currency URL and pick which slice of data you need — overview & FAQs, technical indicators, news, forum comments, or raw OHLCV history.

### Why use this actor

- No account, no login, no API key needed
- **Five extraction modes** in one actor — switch with a single input field
- Rich technical detail: aggregate verdict (Strong Buy / Sell / Neutral), 6 moving averages × simple/exp, 12+ indicators (RSI, MACD, ADX, …), classical + Fibonacci + Camarilla + Woodie + DeMark pivot points
- Real-time prices, change %, exchange, currency, and rendered FAQs
- Up to a decade of daily OHLCV bars per call
- Stable JSON output, ready for pipelines, databases, or notebooks

### How it works

1. You give the actor one or more Investing.com instrument URLs (any asset class).
2. You pick an extraction mode — `general_faq`, `technical_indicators`, `news_analysis`, `forum_sentiment`, or `chart_ohlcv`.
3. For the timeframe-sensitive modes (technical indicators and chart history) you pick a window from `1m` up to `1M`.
4. Results stream into your dataset, one record per URL, ready to download as JSON, CSV, or Excel.

No proxies, browsers, or scraper code to manage — the actor handles all of it for you.

### Input

```json
{
    "startUrls": [
        { "url": "https://www.investing.com/equities/apple-computer-inc" }
    ],
    "extractionMode": "general_faq",
    "timeframe": "1D",
    "proxyConfiguration": { "useApifyProxy": true }
}
```

| Field | Type | Description |
|---|---|---|
| `startUrls` | array | Investing.com instrument URLs (equities, crypto, indices, commodities, currencies). One record is pushed per URL. |
| `extractionMode` | string | One of `general_faq`, `technical_indicators`, `news_analysis`, `forum_sentiment`, `chart_ohlcv`. |
| `timeframe` | string | `1m` / `5m` / `15m` / `30m` / `1H` / `5H` / `1D` / `1W` / `1M`. Used by `technical_indicators` and `chart_ohlcv`. Ignored otherwise. |
| `proxyConfiguration` | object | Standard Apify Proxy configuration. Default datacenter pool works for most pages. |

***

### Mode 1 — `general_faq`

Asset overview, live price, and the rendered FAQ list.

**Output sample (`https://www.investing.com/equities/apple-computer-inc`):**

```json
{
    "mode": "general_faq",
    "url": "https://www.investing.com/equities/apple-computer-inc",
    "source": "Investing.com",
    "pair_id": 6408,
    "name": "Apple Inc",
    "symbol": "AAPL",
    "exchange": "Nasdaq Stock Exchange",
    "last_price": "297.84",
    "change": "-2.39",
    "change_percent": "-0.8",
    "currency": "USD",
    "description": "View today's Apple Inc stock price and latest AAPL news and analysis. Create real-time notifications to follow any changes in the live stock price.",
    "faqs": [
        { "question": "What Is the Apple (AAPL) Stock Price Today?", "answer": "The Apple stock price today is 297.84 USD." },
        { "question": "What Stock Exchange Does Apple Trade On?",   "answer": "Apple is listed and trades on the Nasdaq Stock Exchange." },
        { "question": "What Is the Stock Symbol for Apple?",        "answer": "The stock symbol for Apple is \"AAPL.\"" },
        "... 11 more"
    ]
}
```

| Field | Type | Description |
|---|---|---|
| `pair_id` | integer | Investing.com internal numeric ID. |
| `name`, `symbol`, `exchange`, `currency` | string | Instrument identity. |
| `last_price`, `change`, `change_percent` | string | Quote snapshot at fetch time. |
| `description` | string | Page meta description. |
| `faqs` | array | `[{question, answer}]` rendered FAQ pairs. |

***

### Mode 2 — `technical_indicators`

Aggregate TA verdict, moving averages (simple + exponential), oscillators, and pivot points for a chosen timeframe.

**Output sample (`timeframe: "1D"`):**

```json
{
    "mode": "technical_indicators",
    "url": "https://www.investing.com/equities/apple-computer-inc",
    "source": "Investing.com",
    "pair_id": 6408,
    "timeframe": "1D",
    "summary": "Strong Buy",
    "moving_averages": [
        { "period": "MA5",  "simple": "297.99", "simple_signal": "Sell", "exp": "297.20", "exp_signal": "Buy" },
        { "period": "MA10", "simple": "293.51", "simple_signal": "Buy",  "exp": "292.72", "exp_signal": "Buy" },
        { "period": "MA20", "simple": "282.79", "simple_signal": "Buy",  "exp": "284.69", "exp_signal": "Buy" },
        "... 3 more"
    ],
    "indicators": [
        { "name": "RSI",      "value": "71.329", "signal": "Buy" },
        { "name": "STOCH",    "value": "79.775", "signal": "Buy" },
        { "name": "STOCHRSI", "value": "76.104", "signal": "Overbought" },
        "... 9 more"
    ],
    "pivot_points": [
        { "name": "Classic", "s3": "290.08", "s2": "293.30", "s1": "296.76",
          "pivot": "299.98",
          "r1": "303.44", "r2": "306.66", "r3": "310.12" },
        "... 4 more"
    ]
}
```

| Field | Type | Description |
|---|---|---|
| `timeframe` | string | The timeframe the values were computed for. |
| `summary` | string | Aggregate verdict — `Strong Buy`, `Buy`, `Neutral`, `Sell`, or `Strong Sell`. |
| `moving_averages` | array | `MA5 … MA200` with simple and exponential values + Buy/Sell signal. |
| `indicators` | array | RSI, STOCH, STOCHRSI, MACD, ATR, ADX, CCI, BullBear, UO, ROC, Williams %R, … |
| `pivot_points` | array | Five systems: Classic, Fibonacci, Camarilla, Woodie, DeMark. |

***

### Mode 3 — `news_analysis`

Latest news for the asset, with publisher and ISO-8601 publish date.

**Output sample:**

```json
{
    "mode": "news_analysis",
    "url": "https://www.investing.com/equities/apple-computer-inc-news",
    "source": "Investing.com",
    "pair_id": 6408,
    "article_count": 10,
    "articles": [
        {
            "title": "U.S. stocks mixed at close of trade; Dow Jones Industrial Average up 0.32%",
            "url": "https://www.investing.com/news/stock-market-news/us-stocks-mixed-at-close-of-trade-dow-jones-industrial-average-up-032-4696930",
            "date": "2026-05-18T20:30:00Z",
            "publisher": "Investing.com",
            "news_id": 4696930
        },
        {
            "title": "Indian court tells Apple to 'cooperate' in antitrust case",
            "url": "https://www.investing.com/news/stock-market-news/indian-court-tells-apple-to-cooperate-in-antitrust-case-4694676",
            "date": "2026-05-18T06:34:40Z",
            "publisher": "Reuters",
            "news_id": 4694676
        },
        "... 8 more"
    ]
}
```

| Field | Type | Description |
|---|---|---|
| `article_count` | integer | Number of articles returned (typically 10 — Investing's page-1 default). |
| `articles[].title` | string | Headline. |
| `articles[].url` | string | Absolute article URL — feed it to the **Investing.com News Scraper** for full body. |
| `articles[].date` | string | ISO-8601 publish timestamp. |
| `articles[].publisher` | string | `Investing.com`, `Reuters`, `Bloomberg`, …  |
| `articles[].news_id` | integer | Internal article ID. |

***

### Mode 4 — `forum_sentiment`

Threaded community comments plus the technical Bull/Bear Power indicator as a sentiment proxy.

**Output sample:**

```json
{
    "mode": "forum_sentiment",
    "url": "https://www.investing.com/equities/apple-computer-inc",
    "source": "Investing.com",
    "pair_id": 6408,
    "sentiment": {
        "bull_bear_value": "14.8420",
        "bull_bear_signal": "Buy",
        "summary_timeframe": "1d"
    },
    "comments_count": 11,
    "comments": [
        {
            "comment_id": "46759468",
            "parent_id": null,
            "username": "Seng Hyun",
            "text": "Lol they literally dropped it before close so it gets pinned at flat... how rigged is this market",
            "date": "2026-05-01 01:17:40",
            "likes": 3,
            "dislikes": 1,
            "is_pro_user": false,
            "total_replies": 0
        },
        "... 10 more"
    ]
}
```

| Field | Type | Description |
|---|---|---|
| `sentiment.bull_bear_value` | string | Numeric reading of the Bull/Bear Power oscillator. |
| `sentiment.bull_bear_signal` | string | `Buy` / `Sell` / `Neutral`. |
| `comments_count` | integer | Total comments (including replies). |
| `comments[]` | array | Flat list incl. replies. `parent_id` is `null` for top-level comments. |

***

### Mode 5 — `chart_ohlcv`

Raw OHLCV bars for the chosen timeframe. Window auto-sized: 1 year for daily, 5 years for weekly, 10 years for monthly.

**Output sample (`timeframe: "1D"`):**

```json
{
    "mode": "chart_ohlcv",
    "url": "https://www.investing.com/equities/apple-computer-inc",
    "source": "Investing.com",
    "pair_id": 6408,
    "timeframe": "1D",
    "start_date": "2025-05-19",
    "end_date": "2026-05-19",
    "bar_count": 251,
    "bars": [
        { "timestamp": 1779062400, "date": "May 18, 2026",
          "open": "300.24", "high": "300.66", "low": "294.91", "close": "297.84",
          "volume": 34482960, "change_pct": -0.7961 },
        { "timestamp": 1778803200, "date": "May 15, 2026",
          "open": "297.90", "high": "303.20", "low": "296.52", "close": "300.23",
          "volume": 54862836, "change_pct":  0.6774 },
        "... 249 more"
    ]
}
```

| Field | Type | Description |
|---|---|---|
| `timeframe` | string | `1D` / `1W` / `1M`. (Intraday timeframes are TA-only.) |
| `start_date`, `end_date` | string | ISO date window. |
| `bar_count` | integer | Number of bars returned. |
| `bars[]` | array | `{timestamp, date, open, high, low, close, volume, change_pct}`. |

***

### Running on a schedule

Set up an Apify schedule and the actor will keep your dataset fresh automatically — every hour for chart data, every 15 minutes for technical indicators, daily for FAQs. Use the **Schedules** tab in the Apify Console and reuse the same input JSON.

### Other related actors

| Actor | Purpose |
|---|---|
| [`Investing.com News Scraper`](https://apify.com/xtracto/investing-scraper) | Full article body + tickers + comments for a single news URL. Pair with `news_analysis` mode here. |
| Reuters / Bloomberg / WSJ scrapers | Article-level extraction from the original publishers when this actor only returns a headline. |
| Yahoo Finance Scraper | Alternative source for OHLCV and fundamental data. |

# Actor input Schema

## `startUrls` (type: `array`):

List of Investing.com instrument URLs (equities, crypto, indices, commodities, currencies). One record is pushed per URL.

## `extractionMode` (type: `string`):

Which slice of data to scrape for each URL. Routes to a dedicated handler that uses the cheapest HTTP-only path (page HTML, **NEXT\_DATA**, or reverse-engineered AJAX endpoint).

## `timeframe` (type: `string`):

Required for 'technical\_indicators' and 'chart\_ohlcv'. Ignored for the other modes. Intraday values (1m–5H) only work for technical\_indicators; chart\_ohlcv supports 1D/1W/1M.

## `proxyConfiguration` (type: `object`):

Apify Proxy configuration. Investing.com sits behind Cloudflare; if the default datacenter pool gets challenged, switch to RESIDENTIAL.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.investing.com/equities/apple-computer-inc"
    }
  ],
  "extractionMode": "general_faq",
  "timeframe": "1D",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.investing.com/equities/apple-computer-inc"
        }
    ],
    "extractionMode": "general_faq",
    "timeframe": "1D",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("xtracto/investing-financial-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 = {
    "startUrls": [{ "url": "https://www.investing.com/equities/apple-computer-inc" }],
    "extractionMode": "general_faq",
    "timeframe": "1D",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("xtracto/investing-financial-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 '{
  "startUrls": [
    {
      "url": "https://www.investing.com/equities/apple-computer-inc"
    }
  ],
  "extractionMode": "general_faq",
  "timeframe": "1D",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call xtracto/investing-financial-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,xtracto/investing-financial-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/cnpq0B7OmychGRfa1/builds/x9REKk94MoVg9OqJz/openapi.json
