# Sodir FactPages Scraper - NCS Wellbores, Fields, Licences (`jungle_synthesizer/sodir-norway-petroleum-factpages-scraper`) Actor

Scrape wellbores, fields, licences, and discoveries from Norway's Sodir (ex-NPD) FactPages. Returns operator, geocoded coordinates (WGS84), reserves (oil/gas/NGL/condensate), and optional monthly production history for all NCS datasets.

- **URL**: https://apify.com/jungle\_synthesizer/sodir-norway-petroleum-factpages-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Business, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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/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

## Sodir Norway Petroleum FactPages Scraper

Scrapes wellbores, fields, production licences, and discoveries from [Norway's Sodir FactPages](https://factpages.sodir.no/en/) (formerly the Norwegian Petroleum Directorate). Returns geocoded coordinates, operator data, reserves estimates, and optional monthly production history for all 10,000+ records on the Norwegian Continental Shelf.

---

### Sodir FactPages Scraper Features

- **Extracts all four NCS datasets** — wellbores (~9,800 records), fields (~143), production licences (~1,810), and discoveries (~650)
- **Returns geocoded wellhead coordinates** — WGS84 latitude and longitude for every wellbore
- **Includes field reserves** — recoverable and remaining oil, gas, NGL, and condensate (million/billion Sm3)
- **Optional monthly production history** — all production rows since first oil, ~28,000 records going back decades
- **Filters wellbores by sea area** — North Sea, Norwegian Sea, or Barents Sea
- **Filters by operator** — substring match on drilling operator or field operator name
- **Runs without proxies** — Sodir FactPages is a public government data portal with no access restrictions
- **Bulk CSV download** — no pagination, no rendering, no browser required

---

### What Can You Do With Sodir Data?

- **E&P analysts** — build NCS acreage maps, benchmark operator drilling activity, and track field development timelines
- **Energy-security researchers** — model Norwegian gas production capacity, track reserve depletion, and monitor license award rounds
- **Decommissioning consultants** — identify P&A candidates using wellbore status, water depth, and completion dates
- **CCS project trackers** — isolate CO2_STORAGE wellbore type and identify depleted fields suitable for carbon injection
- **Financial modelers** — feed reserves and production history into DCF models without manual data entry
- **Regulatory and compliance teams** — cross-reference licence holder history with company filings

---

### How It Works

1. **Choose a dataset.** Select `field`, `wellbore`, `discovery`, `licence`, or `all` to fetch everything in sequence.
2. **Set optional filters.** Narrow wellbores to a sea area or filter any dataset by operator name. Leave blank for all records.
3. **The scraper downloads the full CSV from Sodir's SSRS export endpoint.** One request per dataset, no pagination — Sodir publishes complete bulk exports updated daily.
4. **Records are parsed and output as structured JSON.** Each row is normalized, numeric fields are cast to numbers, and a `factPageUrl` is included for every record.

---

### Sodir FactPages Scraper Input

```json
{
  "datasetType": "field",
  "mainArea": "all",
  "operatorFilter": "",
  "includeReserves": true,
  "includeMonthlyProduction": false,
  "maxItems": 100
}
````

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `datasetType` | string (select) | `field` | Which dataset to scrape: `wellbore`, `field`, `discovery`, `licence`, or `all` |
| `mainArea` | string (select) | `all` | Filter wellbores by sea area: `all`, `NORTH SEA`, `NORWEGIAN SEA`, `BARENTS SEA`. Ignored for other datasets. |
| `operatorFilter` | string | `""` | Case-insensitive substring filter on operator or drilling operator name. Leave blank for all. |
| `includeReserves` | boolean | `true` | Append recoverable and remaining reserves (oil, gas, NGL, condensate) to field records. |
| `includeMonthlyProduction` | boolean | `false` | Append monthly production history (~28,000 rows) to field records. |
| `maxItems` | integer | `100` | Maximum records to return across all datasets. `0` = unlimited. |

**Wellbore input example — North Sea wells, Equinor only:**

```json
{
  "datasetType": "wellbore",
  "mainArea": "NORTH SEA",
  "operatorFilter": "equinor",
  "maxItems": 500
}
```

**Full NCS sweep:**

```json
{
  "datasetType": "all",
  "maxItems": 0
}
```

***

### Sodir FactPages Scraper Output Fields

All datasets share `datasetType`, `name`, `npdid`, `factPageUrl`, `dateUpdated`, `dateSyncNpd`, and `scrapedAt`. Dataset-specific fields are below.

#### Field Output

```json
{
  "datasetType": "field",
  "name": "EKOFISK",
  "npdid": 43506,
  "factPageUrl": "https://factpages.sodir.no/en/field/PageView/All/43506",
  "fieldStatus": "PRODUCING",
  "discoveryYear": 1969,
  "productionStartDate": "07.06.1971",
  "operatorName": "ConocoPhillips Skandinavia AS",
  "hcType": "OIL",
  "ownerKind": "PRODUCTION LICENCE",
  "ownerName": "EKOFISK UNIT",
  "recoverableOilMillSm3": 1038.8,
  "recoverableGasBillSm3": 206.0,
  "remainingOilMillSm3": 104.5,
  "reservesYear": 2023,
  "scrapedAt": "2026-05-09T14:08:10.000Z"
}
```

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Field name |
| `npdid` | number | Sodir canonical NPDID |
| `fieldStatus` | string | PRODUCING, SHUT DOWN, APPROVED FOR PRODUCTION, etc. |
| `discoveryYear` | number | Year of discovery |
| `productionStartDate` | string | DD.MM.YYYY |
| `operatorName` | string | Current operator |
| `hcType` | string | OIL, GAS, GAS/CONDENSATE, OIL/GAS CONDENSATE |
| `ownerKind` | string | PRODUCTION LICENCE or BUSINESS ARRANGEMENT AREA |
| `ownerName` | string | Licence or unit name |
| `recoverableOilMillSm3` | number | Recoverable oil reserves (million Sm3) |
| `recoverableGasBillSm3` | number | Recoverable gas reserves (billion Sm3) |
| `recoverableNglMillSm3` | number | Recoverable NGL reserves (million Sm3) |
| `recoverableCondensateMillSm3` | number | Recoverable condensate (million Sm3) |
| `remainingOilMillSm3` | number | Remaining oil reserves (million Sm3) |
| `remainingGasBillSm3` | number | Remaining gas reserves (billion Sm3) |
| `reservesYear` | number | Year of reserves estimate |
| `factPageUrl` | string | Link to Sodir detail page |
| `scrapedAt` | string | ISO 8601 fetch timestamp |

**Monthly production fields** (when `includeMonthlyProduction: true`):

| Field | Type | Description |
|-------|------|-------------|
| `productionYear` | number | Production year |
| `productionMonth` | number | Production month (1-12) |
| `prodOilNetMillSm3` | number | Net oil production (million Sm3) |
| `prodGasNetBillSm3` | number | Net gas production (billion Sm3) |
| `prodNglNetMillSm3` | number | Net NGL production (million Sm3) |
| `prodCondensateNetMillSm3` | number | Net condensate production (million Sm3) |

#### Wellbore Output

```json
{
  "datasetType": "wellbore",
  "name": "34/10-23 S",
  "npdid": 5174,
  "wellboreType": "EXPLORATION",
  "purpose": "WILDCAT",
  "status": "P&A",
  "content": "GAS",
  "drillingOperator": "Equinor Energy AS",
  "mainArea": "NORTH SEA",
  "totalDepthMdM": 4842,
  "waterDepthM": 311,
  "latitudeWgs84": 61.023,
  "longitudeWgs84": 2.197,
  "entryDate": "30.03.2010",
  "completionDate": "09.06.2010",
  "productionLicence": "PL150",
  "factPageUrl": "https://factpages.sodir.no/en/wellbore/PageView/All/5174"
}
```

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Wellbore name |
| `wellboreType` | string | EXPLORATION, DEVELOPMENT, CO2\_STORAGE, OTHER |
| `wellName` | string | Parent well name |
| `purpose` | string | WILDCAT, APPRAISAL, PRODUCTION, INJECTION, etc. |
| `status` | string | P\&A, PLUGGED, PRODUCING, INJECTING, SUSPENDED |
| `content` | string | OIL, GAS, OIL/GAS, DRY, etc. |
| `drillingOperator` | string | Drilling operator name |
| `mainArea` | string | NORTH SEA, NORWEGIAN SEA, BARENTS SEA |
| `totalDepthMdM` | number | Total measured depth (m) |
| `finalVerticalDepthM` | number | Final vertical depth (m) |
| `waterDepthM` | number | Water depth at wellhead (m) |
| `latitudeWgs84` | number | Wellhead latitude (decimal degrees) |
| `longitudeWgs84` | number | Wellhead longitude (decimal degrees) |
| `entryDate` | string | Spud date (DD.MM.YYYY) |
| `completionDate` | string | Completion date (DD.MM.YYYY) |
| `entryYear` | number | Year of spud |
| `completionYear` | number | Year of completion |
| `productionLicence` | string | Licence at wellhead (e.g., PL019) |
| `fieldName` | string | Associated field name |
| `drillingFacility` | string | Rig name |
| `block` | string | NCS block designation (e.g., 30/9) |

#### Discovery Output

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Discovery name |
| `discoveryStatus` | string | PRODUCING, DEVELOPMENT APPROVED, etc. |
| `discoveryHcType` | string | Hydrocarbon type |
| `discoveryWellName` | string | Discovery wellbore name |
| `namedArea` | string | Sea area name |
| `includedInFieldName` | string | Field this discovery is included in (if any) |

#### Licence Output

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Licence name (e.g., PL019) |
| `licencingActivity` | string | Licensing round (e.g., 1-A, APA 2024) |
| `licenceArea` | string | Sea area |
| `licenceStatus` | string | ACTIVE, RELINQUISHED, EXPIRED |
| `licenceDateGranted` | string | DD.MM.YYYY |
| `licenceDateValidTo` | string | DD.MM.YYYY |
| `licenceCurrentArea` | number | Current licence area (km2) |
| `licenceHolders` | string | Current licensees with interest %: "Company A (50.0%), Company B (50.0%)" |

***

### 🔍 FAQ

#### How do I scrape wellbore data from Sodir FactPages?

Sodir FactPages Scraper downloads the full wellbore dataset in one request. Set `datasetType: "wellbore"` and optionally filter by `mainArea` or `operatorFilter`. The dataset includes all ~9,800 NCS wellbores drilled since 1966.

#### How much does it cost to run?

Sodir FactPages Scraper costs $0.001 per record plus $0.10 per run. Fetching all fields, discoveries, and licences (~2,600 records) runs under $0.20. The full wellbore dataset (~9,800 records) with monthly production history (~28,000 rows) costs under $0.50.

#### What data can I get from Sodir FactPages?

Sodir FactPages Scraper returns wellbores (geocoded coordinates, depth, status, content, operator), fields (reserves, production dates, operator, HC type), production licences (holders, area, status), and discoveries (status, HC type, associated field). Monthly production figures go back decades for producing fields.

#### Can I filter by specific operator or sea area?

Sodir FactPages Scraper supports both. Set `operatorFilter` to any substring (e.g., "equinor", "aker") for a case-insensitive match on the operator or drilling operator field. Set `mainArea` to `NORTH SEA`, `NORWEGIAN SEA`, or `BARENTS SEA` to limit wellbores by location.

#### Does Sodir FactPages Scraper need proxies?

No proxies required. Sodir FactPages is a Norwegian government open-data portal with no rate limits, CAPTCHA, or geographic restrictions.

***

### Need More Features?

Need custom filters, additional Sodir datasets, or integration with other Norwegian data sources? [File an issue](https://console.apify.com/actors/issues) or get in touch.

### Why Use Sodir FactPages Scraper?

- **No manual exports** — Sodir's FactPages UI limits HTML tables to 100 rows. This actor fetches the unrestricted bulk CSV — same data Sodir publishes for download, just automated.
- **Clean, typed output** — numeric fields cast to numbers, dates stay in Sodir's DD.MM.YYYY format, and a `factPageUrl` links every record back to the source. Less cleanup, more analysis.
- **No proxies, no browser** — direct CSV download from a public government endpoint, which means fast runs without residential IP pools.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

Please describe how you plan to use the data extracted by this crawler.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

Provide your email address so we can get in touch with you.

## `datasetType` (type: `string`):

Which FactPages dataset to scrape. 'all' fetches wellbores, fields, discoveries, and licences in sequence.

## `mainArea` (type: `string`):

Filter wellbores to a specific sea area. Ignored for other datasets.

## `operatorFilter` (type: `string`):

Case-insensitive substring filter on operator/drilling-operator name. Leave blank for all.

## `includeMonthlyProduction` (type: `boolean`):

When enabled for the field dataset, appends all monthly production rows (oil/gas/NGL/condensate) per field.

## `includeReserves` (type: `boolean`):

When enabled for the field dataset, appends recoverable and remaining reserves per field.

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

Maximum number of records to return across all selected datasets. 0 = unlimited.

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

Proxy settings. No proxy needed for this public government site.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "datasetType": "field",
  "mainArea": "all",
  "operatorFilter": "",
  "includeMonthlyProduction": false,
  "includeReserves": true,
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "datasetType": "field",
    "mainArea": "all",
    "operatorFilter": "",
    "includeMonthlyProduction": false,
    "includeReserves": true,
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/sodir-norway-petroleum-factpages-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "datasetType": "field",
    "mainArea": "all",
    "operatorFilter": "",
    "includeMonthlyProduction": False,
    "includeReserves": True,
    "maxItems": 10,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/sodir-norway-petroleum-factpages-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "datasetType": "field",
  "mainArea": "all",
  "operatorFilter": "",
  "includeMonthlyProduction": false,
  "includeReserves": true,
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call jungle_synthesizer/sodir-norway-petroleum-factpages-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jungle_synthesizer/sodir-norway-petroleum-factpages-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Sodir FactPages Scraper - NCS Wellbores, Fields, Licences",
        "description": "Scrape wellbores, fields, licences, and discoveries from Norway's Sodir (ex-NPD) FactPages. Returns operator, geocoded coordinates (WGS84), reserves (oil/gas/NGL/condensate), and optional monthly production history for all NCS datasets.",
        "version": "0.1",
        "x-build-id": "QdeDnBqzvOxl5zAAu"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jungle_synthesizer~sodir-norway-petroleum-factpages-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jungle_synthesizer-sodir-norway-petroleum-factpages-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/jungle_synthesizer~sodir-norway-petroleum-factpages-scraper/runs": {
            "post": {
                "operationId": "runs-sync-jungle_synthesizer-sodir-norway-petroleum-factpages-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/jungle_synthesizer~sodir-norway-petroleum-factpages-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-jungle_synthesizer-sodir-norway-petroleum-factpages-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",
                "required": [
                    "sp_intended_usage",
                    "sp_improvement_suggestions"
                ],
                "properties": {
                    "sp_intended_usage": {
                        "title": "What is the intended usage of this data?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Please describe how you plan to use the data extracted by this crawler."
                    },
                    "sp_improvement_suggestions": {
                        "title": "How can we improve this crawler for you?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide any feedback or suggestions for improvements."
                    },
                    "sp_contact": {
                        "title": "Contact Email",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide your email address so we can get in touch with you."
                    },
                    "datasetType": {
                        "title": "Dataset",
                        "enum": [
                            "wellbore",
                            "field",
                            "discovery",
                            "licence",
                            "all"
                        ],
                        "type": "string",
                        "description": "Which FactPages dataset to scrape. 'all' fetches wellbores, fields, discoveries, and licences in sequence.",
                        "default": "field"
                    },
                    "mainArea": {
                        "title": "Main Area Filter (wellbore only)",
                        "enum": [
                            "all",
                            "NORTH SEA",
                            "NORWEGIAN SEA",
                            "BARENTS SEA"
                        ],
                        "type": "string",
                        "description": "Filter wellbores to a specific sea area. Ignored for other datasets.",
                        "default": "all"
                    },
                    "operatorFilter": {
                        "title": "Operator Filter",
                        "type": "string",
                        "description": "Case-insensitive substring filter on operator/drilling-operator name. Leave blank for all.",
                        "default": ""
                    },
                    "includeMonthlyProduction": {
                        "title": "Include Monthly Production History (field dataset only)",
                        "type": "boolean",
                        "description": "When enabled for the field dataset, appends all monthly production rows (oil/gas/NGL/condensate) per field.",
                        "default": false
                    },
                    "includeReserves": {
                        "title": "Include Reserves Data (field dataset only)",
                        "type": "boolean",
                        "description": "When enabled for the field dataset, appends recoverable and remaining reserves per field.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "type": "integer",
                        "description": "Maximum number of records to return across all selected datasets. 0 = unlimited.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Proxy settings. No proxy needed for this public government site.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
