# Holidays Calendar Data (investing.com) (`pintostudio/holidays-calendar-data-investing-com`) Actor

Scrape stock market holidays and exchange closures from Investing.com. Filter by country and date range to get holiday name, exchange, and closure date for 80+ global markets as clean JSON, CSV, or Excel.

- **URL**: https://apify.com/pintostudio/holidays-calendar-data-investing-com.md
- **Developed by:** [Pinto Studio](https://apify.com/pintostudio) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.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/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

## Holidays Calendar Data (Investing.com) 🗓️📈

Scrape the **stock market holidays calendar** from Investing.com and get a clean, structured feed of every exchange closure, trading holiday, and market-closed day for **80+ countries** — no browser, no proxies, no captchas to fight.

This Actor is built for financial analysts, traders, quant/algo teams, fintech products, and anyone who needs to know **when a stock exchange is closed** so they can plan trades, settlements, backtests, or reports around it.

### Why use this Actor?

- **Global coverage** — pulls holiday/closure data for major exchanges across the Americas, Europe, Asia-Pacific, the Middle East, and Africa (US, UK, Germany, France, Japan, China, India, Brazil, and 70+ more).
- **Date-range filtering** — request a single day, a month, or a custom range instead of scraping the whole calendar.
- **Country filtering** — narrow results down to one country/exchange at a time, or omit the filter to get every market.
- **Clean, ready-to-use JSON** — every run returns tidy rows (date, country, exchange, holiday name) plus an aggregated run summary, so you can pipe results straight into a spreadsheet, database, or trading system.
- **No maintenance overhead** — Investing.com's markup changes are handled for you; you just call the Actor and get data back.
- **Built on the Apify platform** — schedule runs, trigger via API/webhooks, export to CSV/JSON/Excel, or integrate with Zapier, Make, and 1,000+ other tools.

### What data do you get?

Each dataset item represents one market holiday / exchange closure:

| Field | Type | Description |
|---|---|---|
| `date` | string | Calendar date of the holiday/closure |
| `country` | string | Country whose exchange observes the holiday |
| `exchange` | string | Name of the stock exchange/market that is closed |
| `holiday` | string | Name of the holiday or reason for the closure |
| `retrieved_at` | string | ISO 8601 timestamp of when the row was scraped |
| `data_type` | string | `holidays_calendar_event` for real rows, `error` for an error placeholder |

At the end of each run, the Actor also writes a **run summary** record to the key-value store with the total number of events found, the list of unique countries and exchanges seen, and whether any data was returned. See the **Output tab** on this Actor for the full Dataset, Key-value store, and Output schemas, plus an OpenAPI definition of the underlying Apify Run API.

### Input parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| `country` | string (select) | No | A single country to filter by (e.g. `united states`, `germany`, `japan`). Leave empty to get all countries. |
| `fromDate` | string (`YYYY-MM-DD`) | No | Start of the date range. Defaults to the current day if not set. |
| `toDate` | string (`YYYY-MM-DD`) | No | End of the date range. Defaults to the current day if not set. |

#### Example input

```json
{
  "country": "united states",
  "fromDate": "2026-01-01",
  "toDate": "2026-12-31"
}
```

#### Example output (dataset item)

```json
{
  "date": "01/01/2026",
  "country": "United States",
  "exchange": "NYSE",
  "holiday": "New Year's Day",
  "retrieved_at": "2026-01-01T09:00:00.000Z",
  "data_type": "holidays_calendar_event"
}
```

### Use cases

- **Trade & settlement planning** — know in advance which exchanges are closed so orders, transfers, and settlements aren't scheduled on non-trading days.
- **Algorithmic trading & backtesting** — exclude holiday/closure dates from strategy backtests and live trading calendars automatically.
- **Fintech products & broker apps** — power an in-app "market status" or "next trading day" widget with always-current holiday data.
- **Portfolio & risk reporting** — align reporting periods and cut-off dates with actual trading days per market.
- **Research & compliance teams** — maintain an audit trail of exchange holidays across multiple jurisdictions.

### How to run it

1. Click **Try for free** (or **Start**) on this Actor page.
2. Optionally set `country`, `fromDate`, and `toDate` in the Input tab — or leave everything empty to get the current period across all countries.
3. Run the Actor and open the **Dataset** tab (or the API) to get your results as JSON, CSV, Excel, or XML.

You can also run it programmatically via the [Apify API](https://docs.apify.com/api/v2) or any of the [Apify SDK/CLI clients](https://docs.apify.com/sdk) — see the **API** button at the top of this page for ready-made code snippets in Python, JavaScript, and cURL.

### Scheduling & automation

Use [Apify Schedules](https://docs.apify.com/platform/schedules) to run this Actor daily, weekly, or monthly and always have an up-to-date holidays calendar. Combine it with [Integrations](https://docs.apify.com/platform/integrations) (Zapier, Make, Slack, Google Sheets, webhooks) to automatically sync results wherever you need them. See the **Tasks** tab on this Actor for ready-made presets (e.g. "This year — all countries", "US market holidays", "Next 30 days").

### Frequently asked questions

**Which countries/exchanges are supported?**
80+ countries are supported, including the United States, United Kingdom, Germany, France, Italy, Spain, Netherlands, Switzerland, Japan, China, India, Brazil, Australia, Canada, and many more. Leave the `country` field empty to retrieve all of them in one run.

**What date format should I use?**
Use `YYYY-MM-DD` for `fromDate` and `toDate` (e.g. `2026-03-01`). If you don't set a date range, the current period is used.

**What happens if no holidays match my filters?**
The Actor still finishes successfully and writes a single `error`-type row plus a run summary with `has_data: false`, so your downstream pipeline can detect the empty case without failing.

**Can I get this data on a schedule / pushed to my database?**
Yes — set up an Apify Schedule and pair it with an Integration or Webhook to push results to Google Sheets, a database, Slack, or your own API automatically.

**Is this data official?**
Data is scraped from the publicly available holidays calendar on Investing.com and is provided as-is for informational purposes; always confirm critical trading/settlement dates with your broker or exchange.

### Support & feedback

Found an issue or need a custom field, country list, or output format? Reach out via the **Issues** tab on this Actor page or contact **Pinto Studio** — we're happy to help.

# Actor input Schema

## `country` (type: `string`):

The country where the stock is listed

## `fromDate` (type: `string`):

Start date for retrieving the economic calendar in 'YYYY-MM-DD' format. If not provided, only the current day's economic calendar will be retrieved.

## `toDate` (type: `string`):

End date for retrieving the economic calendar in 'YYYY-MM-DD' format. If not provided, only the current day's economic calendar will be retrieved.

## Actor input object example

```json
{}
```

# Actor output Schema

## `holidaysCalendarEvents` (type: `string`):

One row per market holiday/closure (or a single error row if none matched the filters). See the Dataset schema for field details.

## `runSummary` (type: `string`):

Aggregated counts, countries and exchanges for this run. See the Key-value store schema for field details.

# 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 = {
    "country": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("pintostudio/holidays-calendar-data-investing-com").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 = { "country": "" }

# Run the Actor and wait for it to finish
run = client.actor("pintostudio/holidays-calendar-data-investing-com").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 '{
  "country": ""
}' |
apify call pintostudio/holidays-calendar-data-investing-com --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,pintostudio/holidays-calendar-data-investing-com"
        }
    }
}
```

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/TomJIOvTgBpem9qdG/builds/dZw8zYIE6sdYlsEsY/openapi.json
