# INE Spain (Instituto Nacional de Estadistica) Scraper (`parseforge/ine-spain-scraper`) Actor

Scrape the official Spanish National Statistics Institute (INE) Tempus3 API. List operations (CPI, IPRI, etc.), browse tables per operation and pull observation values with dimension labels in English or Spanish.

- **URL**: https://apify.com/parseforge/ine-spain-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Business, Education, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $27.37 / 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/main/banners/banner-default.jpg?raw=true)

## 📊 INE Spain Scraper

> 🚀 **Export the official Spanish statistical catalogue in seconds.** Pull every **INE Spain operation, table, observation, and time-series** across CPI, IPRI, EPA labour, demographics, GDP, and trade. Bilingual labels (English + Spanish), no sign-up needed.

> 🕒 **Last updated:** 2026-05-15 · **📊 16 fields** per record · **📦 100+ operations** · **🇪🇸 National + autonomous community + provincial coverage**

The **INE Spain Scraper** taps the official Instituto Nacional de Estadística catalogue and returns clean, structured records covering every published statistical operation. Pull operation codes (IPC, IPRI, EPA, etc.), the tables under each operation, full dataset observations with dimension labels, and any single time-series by SERIE code.

The catalogue spans **100+ statistical operations** and tens of thousands of tables, including the monthly Consumer Price Index (IPC), Industrial Price Index (IPRI), Active Population Survey (EPA), demographic projections, foreign trade, GDP, tourism, and household spending. Coverage runs from the national level down to autonomous communities and provinces. Labels are available in English and Spanish. This Actor turns the entire catalogue, single-table observations, and individual SERIE time-series into downloadable CSV, Excel, JSON, or XML in minutes.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Economists, journalists, banking & insurance teams, policy analysts, researchers, BI engineers, civic-tech developers | Inflation tracking, labour-market dashboards, regional analytics, ML feature engineering, Power BI / Tableau feeds, newsroom charts, academic research |

---

### 📋 What the INE Spain Scraper does

Four workflows in a single Actor:

- 📚 **Operations mode.** List every INE Spain statistical operation with its code, IOE code, name, and source URL.
- 🗂️ **Tables mode.** Browse every table belonging to an operation (e.g. all IPC tables) with start/end years, frequency, and last-modified timestamp.
- 📈 **Dataset mode.** Pull the full observation grid for any table, with every dimension fully decoded into code + label pairs and a pretty-printed dimension string for easy reading.
- 🔢 **Series mode.** Pull a single time-series by its SERIE code (e.g. IPC206449) with the latest N data points (up to 1000).

Every record carries the official INE Spain deep link, so you can verify any number against the source page in one click.

> 💡 **Why it matters:** Spanish official statistics underpin lending decisions, policy work, retail planning, journalism, and academic research. Building your own pipeline against the official catalogue means handling JSON-Stat decoding, dimension cross-products, and bilingual labels by hand. This Actor skips all of that and keeps your dataset fresh on every run.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>mode</code></td><td>enum</td><td><code>"operations"</code></td><td>One of <code>operations</code>, <code>tables</code>, <code>dataset</code>, <code>series</code>.</td></tr>
<tr><td><code>operationCode</code></td><td>string</td><td><code>""</code></td><td>INE operation code (e.g. <code>IPC</code>, <code>IPRI</code>, <code>EPA</code>). Required for tables mode.</td></tr>
<tr><td><code>datasetId</code></td><td>string</td><td><code>""</code></td><td>INE table ID (e.g. <code>24077</code>). Required for dataset mode.</td></tr>
<tr><td><code>seriesCode</code></td><td>string</td><td><code>""</code></td><td>INE serie code (e.g. <code>IPC206449</code>). Required for series mode.</td></tr>
<tr><td><code>language</code></td><td>enum</td><td><code>"EN"</code></td><td>Response language for labels. <code>EN</code> or <code>ES</code>.</td></tr>
<tr><td><code>latestN</code></td><td>integer</td><td><code>12</code></td><td>Number of most recent periods (1-1000) for dataset and series modes.</td></tr>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Records to return. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
</tbody>
</table>

**Example: full INE Spain operations list (English labels).**

```json
{
    "mode": "operations",
    "language": "EN",
    "maxItems": 100
}
````

**Example: latest 12 periods of CPI series IPC206449 (general index).**

```json
{
    "mode": "series",
    "seriesCode": "IPC206449",
    "language": "EN",
    "latestN": 12
}
```

> ⚠️ **Good to Know:** INE operation codes are short alphanumeric strings (`IPC`, `IPRI`, `EPA`). Table IDs are integers. SERIE codes look like `IPC206449`. Use `operations` mode first to discover operation codes, then `tables` mode to discover table IDs, then `dataset` mode to pull observations.

***

### 📊 Output

Each record contains up to **16 fields** depending on mode. Download the dataset as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🆔 `id` | integer | `25` |
| 🔗 `url` | string | `"https://www.ine.es/dyngs/INEbase/operacion.htm?c=Estadistica_C&cid=1254736176802"` |
| 🏷️ `code` | string | `"IPC"` |
| 🏛️ `ioeCode` | string | `"30138"` |
| 📛 `name` | string | `"Consumer Price Index (CPI)"` |
| 🆔 `operationCode` | string | `"IPC"` |
| 📅 `startYear` | integer | `2002` |
| 📅 `endYear` | integer | `2026` |
| 🔁 `frequencyId` | integer | `12` |
| 🕒 `lastModified` | ISO 8601 | `"2026-04-12T08:00:00.000Z"` |
| 🔢 `seriesCode` | string | `"IPC206449"` |
| 📛 `seriesName` | string | `"General Index. Annual change"` |
| 📅 `year` | integer | `2026` |
| 💰 `value` | number | `2.3` |
| 📅 `fecha` | ISO 8601 | `"2026-04-30T22:00:00.000Z"` |
| 📐 `dimensions` | object | `{ "Tipo de dato": { "code": "1", "label": "Index" }, ... }` |
| 📐 `prettyDimensions` | string | `"Tipo de dato=1:Index | Periodo=202604:April 2026"` |
| 🕒 `scrapedAt` | ISO 8601 | `"2026-05-15T10:00:00.000Z"` |

#### 📦 Sample record (operations mode)

<details>
<summary><strong>📊 Consumer Price Index operation (IPC)</strong></summary>

```json
{
    "id": 25,
    "code": "IPC",
    "ioeCode": "30138",
    "name": "Consumer Price Index (CPI)",
    "url": "https://www.ine.es/dyngs/INEbase/operacion.htm?c=Estadistica_C&cid=1254736176802",
    "scrapedAt": "2026-05-15T10:00:00.000Z"
}
```

</details>

<details>
<summary><strong>📈 Series mode: monthly CPI annual change (IPC206449)</strong></summary>

```json
{
    "seriesCode": "IPC206449",
    "seriesId": 206449,
    "seriesName": "General Index. Annual change",
    "operationCode": "IPC",
    "tableId": 50902,
    "year": 2026,
    "value": 2.3,
    "fecha": "2026-04-30T22:00:00.000Z",
    "url": "https://www.ine.es/jaxiT3/Tabla.htm?t=50902&L=1",
    "scrapedAt": "2026-05-15T10:00:00.000Z"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🇪🇸 | **Full INE Spain catalogue.** 100+ operations spanning inflation, labour, demographics, GDP, trade, and tourism. |
| 🌐 | **Bilingual labels.** Operation, table, and dimension names in English or Spanish. |
| 🔢 | **Series mode.** Pull any SERIE code with up to 1000 historical data points. |
| 📈 | **Dataset mode.** Full observation grid with every dimension decoded into readable code + label pairs. |
| 🔁 | **Always fresh.** Every run reflects the current state of the official catalogue. |
| 🧰 | **No setup.** No sign-up, no key, no scraping CSS selectors. |
| 🔗 | **Source-anchored.** Every record carries the official INE Spain deep link. |

> 📊 INE Spain is the most-cited reference for Spanish CPI, IPRI, EPA, and GDP data. This Actor makes it queryable in seconds.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ INE Spain Scraper** *(this Actor)* | $5 free credit, then pay-per-use | **100+ operations, regional + provincial detail** | **Live per run** | operations, tables, dataset, series | ⚡ 2 min |
| Manual table downloads | Free | Per-table only | Manual | None | 🐢 Hours per table |
| Macro-data terminals | $24,000+/year | Curated subset | Live | Many | ⏳ Days |
| Build your own pipeline | Engineering hours | What you build | What you build | What you build | 🕒 Weeks |

Pick this Actor when you want broad Spanish coverage, bilingual labels, and no parser maintenance.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the INE Spain Scraper page on the Apify Store.
3. 🎯 **Set input.** Pick a mode (start with `operations` to browse), set `maxItems`, and click Start.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your data.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to downloaded dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 🏦 Banking, fintech, and insurance

- Live CPI feeds for retail-rate dashboards in Spain
- Mortgage and insurance underwriting fed by EPA labour data
- Macro-forecasting models with quarterly GDP estimates
- Risk dashboards aligned with INE Spain official numbers

</td>
<td width="50%" valign="top">

#### 🏘️ PropTech and real estate

- Provincial population and household projections for site selection
- Regional wage and employment data for valuation models
- Construction output and house-price indices
- Demographic shifts feeding tenant-targeting

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 📊 Market research and consulting

- Industry IPRI, productivity, and earnings benchmarks
- Retail trade, services turnover, and tourism arrivals
- Consumer trends from the household-spending survey
- Sector deliverables backed by official Spanish numbers

</td>
<td width="50%" valign="top">

#### 📰 Journalism and policy

- Live charts of inflation, jobs, and GDP for newsrooms
- Regional explainers backed by autonomous-community data
- Public-policy briefs with cited, versioned numbers
- Investigative reporting on housing, health, and demographics

</td>
</tr>
</table>

***

### 🔌 Automating INE Spain Scraper

Control the scraper programmatically for scheduled runs and pipeline integrations:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval. Daily refreshes for high-frequency series (IPC, IPRI, EPA) keep dashboards current with no engineering effort.

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Macroeconomic theses with cited, versioned dataset pulls
- Public-health and demographic research at the regional level
- Reproducible studies with stable SERIE codes
- Open-data exercises in econometrics and stats courses

</td>
<td width="50%">

#### 🎨 Personal and creative

- Side projects, indie data dashboards, and portfolio demos
- Interactive Spain maps, inflation trackers, and visualizations
- Content research for data journalists and creators
- Hobbyist time-series for forecasters and analysts

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Equity research on regional income, housing, and labour outcomes
- Civic transparency on public spending and services
- Investigative journalism backed by INE Spain official numbers
- Open data community contributions and visualizations

</td>
<td width="50%">

#### 🧪 Experimentation

- Train forecasting and anomaly-detection ML models
- Validate macro hypotheses with real time-series
- Prototype agent pipelines that resolve operation codes
- Test BI dashboard concepts with live Spanish data

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20INE%20Spain%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20INE%20Spain%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20INE%20Spain%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20INE%20Spain%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

Pick a mode (operations, tables, dataset, series), set the operation code or table ID, and click Start. The Actor pulls clean structured records straight from the official INE Spain catalogue. No browser automation, no captchas, no setup.

#### 📏 How accurate is the data?

Every value comes directly from the official INE Spain catalogue, the canonical source for Spanish official statistics. No transformation is applied beyond field-name normalization and ISO timestamp stamping.

#### 🔁 How often is the catalogue refreshed?

The catalogue is updated continuously as INE Spain releases new tables and revises existing ones. Every run of this Actor returns the live state of the catalogue.

#### 🌐 Are labels available in Spanish?

Yes. Set `language` to `ES` to receive operation, table, and dimension labels in Spanish. The default is English (`EN`).

#### ⏰ Can I schedule regular runs?

Yes. Use Apify Schedules to run this Actor on any cron interval (hourly, daily, weekly) and keep your downstream database in sync with new INE Spain releases.

#### ⚖️ Is this data legal to use?

INE Spain publishes its data under terms that permit free reuse with attribution to INE. Review the licence terms for your specific use case.

#### 💼 Can I use this data commercially?

Yes. The underlying INE Spain data is open and permits commercial use with attribution. You are responsible for complying with the licence and with any downstream regulatory requirements.

#### 💳 Do I need a paid Apify plan to use this Actor?

No. The free Apify plan is enough for testing and small runs (10 records per run). A paid plan lifts the limit and gives you access to scheduling, higher concurrency, and larger datasets.

#### 🔁 What happens if a run fails or gets interrupted?

Apify automatically retries transient errors. If a run still fails, you can inspect the log in the Runs tab, fix the input, and re-run. Partial datasets from failed runs are preserved so you never lose progress.

#### 🔢 What is an operationCode vs a SERIE code?

An **operationCode** is a short alphabetic identifier for an INE Spain statistical operation (e.g. `IPC`, `IPRI`, `EPA`). A **SERIE code** is a unique identifier for a single time-series inside a table (e.g. `IPC206449` = CPI general index annual change). Use `operations` mode to discover operation codes, then drill down.

#### 🆘 What if I need help?

Our support team is here to help. Contact us through the Apify platform or use the Tally form linked below.

***

### 🔌 Integrate with any app

INE Spain Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications in your channels
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe INE records into your warehouse
- [**n8n**](https://n8n.io) - Self-hosted workflow automation
- [**Pipedream**](https://pipedream.com) - Event-driven serverless workflows
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push fresh CPI or EPA labour numbers into your product backend, or alert your team in Slack the minute a new release lands.

***

### 🔗 Recommended Actors

- [**📊 INE Portugal Scraper**](https://apify.com/parseforge/ine-portugal-scraper) - Statistics Portugal indicators
- [**📊 ONS UK Statistics Scraper**](https://apify.com/parseforge/ons-uk-scraper) - UK Office for National Statistics datasets
- [**📊 Statistics Canada Scraper**](https://apify.com/parseforge/statistics-canada-scraper) - Canadian official statistics catalogue
- [**📊 IBGE Brazil Scraper**](https://apify.com/parseforge/ibge-brazil-scraper) - Brazilian Institute of Geography and Statistics
- [**📈 Indexmundi Scraper**](https://apify.com/parseforge/indexmundi-scraper) - Global demographic and economic indicators

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the Instituto Nacional de Estadística or the Government of Spain. All trademarks mentioned are the property of their respective owners. Only publicly available open data is collected.

# Actor input Schema

## `mode` (type: `string`):

What to scrape from the official INE Spain catalogue: list operations, list tables for an operation, fetch a dataset (table) with values, or pull a single time series.

## `operationCode` (type: `string`):

INE Spain operation code (e.g. IPC, IPRI, EPA). Required for tables mode.

## `datasetId` (type: `string`):

INE Spain table ID (e.g. 24077). Required for dataset mode.

## `seriesCode` (type: `string`):

INE Spain serie code (e.g. IPC206449). Required for series mode.

## `language` (type: `string`):

Response language for labels.

## `latestN` (type: `integer`):

Used in dataset mode to limit to the most recent N periods.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "mode": "operations",
  "language": "EN",
  "latestN": 12,
  "maxItems": 10
}
```

# Actor output Schema

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

Overview of scraped data

## `fullData` (type: `string`):

Complete dataset

# 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 = {
    "mode": "operations",
    "language": "EN",
    "latestN": 12,
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/ine-spain-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 = {
    "mode": "operations",
    "language": "EN",
    "latestN": 12,
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/ine-spain-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "mode": "operations",
  "language": "EN",
  "latestN": 12,
  "maxItems": 10
}' |
apify call parseforge/ine-spain-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/ine-spain-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "INE Spain (Instituto Nacional de Estadistica) Scraper",
        "description": "Scrape the official Spanish National Statistics Institute (INE) Tempus3 API. List operations (CPI, IPRI, etc.), browse tables per operation and pull observation values with dimension labels in English or Spanish.",
        "version": "0.0",
        "x-build-id": "YcYNO497tvqilY5wI"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~ine-spain-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-ine-spain-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~ine-spain-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-ine-spain-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~ine-spain-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-ine-spain-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "operations",
                            "tables",
                            "dataset",
                            "series"
                        ],
                        "type": "string",
                        "description": "What to scrape from the official INE Spain catalogue: list operations, list tables for an operation, fetch a dataset (table) with values, or pull a single time series.",
                        "default": "operations"
                    },
                    "operationCode": {
                        "title": "Operation code",
                        "type": "string",
                        "description": "INE Spain operation code (e.g. IPC, IPRI, EPA). Required for tables mode."
                    },
                    "datasetId": {
                        "title": "Dataset (Table) ID",
                        "type": "string",
                        "description": "INE Spain table ID (e.g. 24077). Required for dataset mode."
                    },
                    "seriesCode": {
                        "title": "Series code",
                        "type": "string",
                        "description": "INE Spain serie code (e.g. IPC206449). Required for series mode."
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "EN",
                            "ES"
                        ],
                        "type": "string",
                        "description": "Response language for labels.",
                        "default": "EN"
                    },
                    "latestN": {
                        "title": "Latest N periods",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Used in dataset mode to limit to the most recent N periods.",
                        "default": 12
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
