# SDMX Statistics Extractor (`datamule/sdmx-statistics-extractor`) Actor

Point at ANY SDMX 2.1 statistical service (ECB, OECD, Eurostat, IMF, BIS, World Bank, ABS…): name a dataflow + dimension key and get flat, fully labeled observation rows. Decodes the compact index-encoded SDMX-JSON (1.0 & 2.0 envelopes). Discovery mode lists dataflows. Pay per observation.

- **URL**: https://apify.com/datamule/sdmx-statistics-extractor.md
- **Developed by:** [Datamule](https://apify.com/datamule) (community)
- **Categories:** Developer tools
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.35 / 1,000 observations

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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## SDMX Statistics Extractor

A **generic "point at any SDMX 2.1 service" scraper**. SDMX (Statistical Data and Metadata
eXchange — the OASIS/ISO standard) is spoken by the **ECB, OECD, Eurostat, IMF, BIS, the World
Bank, Australia's ABS, the ADB** and dozens of national statistical offices. Many expose compact,
*index-encoded* JSON, although endpoint capabilities differ. This actor is the **generic decoder**:
give it a service root, a dataflow, and an optional dimension key, and it turns SDMX-JSON into
flat, fully **labeled** observation rows — one row per observation, every dimension decoded to
both its code and its human name.

### Try it now

Run the public ECB USD/EUR daily exchange-rate example with a 25-row cap:

```json
{
  "serviceRoot": "https://data-api.ecb.europa.eu/service",
  "agency": "ECB",
  "dataflow": "EXR",
  "version": "latest",
  "key": "D.USD.EUR.SP00.A",
  "startPeriod": "2024-01-01",
  "maxRecords": 25
}
````

The Actor returns up to 25 matching observations from the source response, decoded into flat
code-and-label columns.

### Why the decode matters

A raw SDMX series looks like this — meaningless on its own:

```json
{ "0:0:0:0:0": { "observations": { "0": [1.0956, 0, 0] } } }
```

This actor joins that against the response's `structure` block so you get real columns:

| flowRef | FREQ | CURRENCY | CURRENCY\_DENOM | timePeriod | value | obsStatus |
|---------|------|----------|----------------|------------|-------|-----------|
| ECB,EXR,latest | D | USD | EUR | 2024-01-02 | 1.0956 | A |

…plus a `*_label` column for every dimension (`CURRENCY_label = "US dollar"`), the observation
attributes, and a lossless `raw` object.

### What it does

- **Query any dataflow** — set `serviceRoot`, `agency`, `dataflow`, an optional `version`, and a
  `key` (the dot-joined dimension filter). Add `startPeriod` / `endPeriod` or
  `lastNObservations` to bound the time range.
- **Full decode** — both SDMX-JSON envelopes are handled transparently: **1.0** (ECB:
  `{header, dataSets, structure}`) and **2.0** (OECD: `{meta, data, errors}`), and both the
  series-keyed and flat (`AllDimensions`) observation layouts.
- **Discover dataflows** — turn on **List dataflows only** to enumerate the dataflows a service
  exposes (id, agency, version, name) so you can find what to query.
- **Flat + raw** — every dimension and attribute becomes its own labeled column; the untouched
  per-observation object is kept in `raw`, so nothing is lost.

### Example inputs

**ECB — USD/EUR daily exchange rate** (public, no auth):

```json
{
  "serviceRoot": "https://data-api.ecb.europa.eu/service",
  "agency": "ECB", "dataflow": "EXR", "version": "latest",
  "key": "D.USD.EUR.SP00.A", "startPeriod": "2024-01-01", "maxRecords": 25
}
```

**OECD — US GDP volume, latest** (public, no auth):

```json
{
  "serviceRoot": "https://sdmx.oecd.org/public/rest",
  "agency": "OECD.ECO.MAD", "dataflow": "DSD_EO@DF_EO", "version": "1.2",
  "key": "USA.GDPV.A", "lastNObservations": 1
}
```

**Discover what the OECD exposes:**

```json
{ "serviceRoot": "https://sdmx.oecd.org/public/rest", "listDataflowsOnly": true, "maxRecords": 100 }
```

### The series key

The `key` is a dot-joined filter over the dataflow's dimensions, in order. For ECB `EXR` the
dimensions are `FREQ.CURRENCY.CURRENCY_DENOM.EXR_TYPE.EXR_SUFFIX`, so `D.USD.EUR.SP00.A` means
daily USD-per-EUR spot averages. You can:

- **wildcard** a position by leaving it blank — `D..EUR.SP00.A` (all currencies),
- **OR** values with `+` — `D.USD+GBP+JPY.EUR.SP00.A`,
- **omit** the key entirely to fetch every series in the dataflow (can be large).

Use **List dataflows only** to discover dataflows; then query one and read the dimension ids off
the decoded columns.

### Output

One dataset item per observation, with fixed meta columns:

- `serviceRoot`, `agency`, `dataflow`, `version`, `flowRef` — what was queried.
- `seriesKey` / `obsKey` — the raw SDMX index keys; `observationId` — a stable composite id.
- `timePeriod` — the decoded time period; `value` — the numeric observation value.
- `obsStatus` — the decoded observation status (e.g. `A` = normal value), when present.
- `{DIM}` + `{DIM}_label` — every series/observation dimension as code + human name.
- `{ATTR}` + `{ATTR}_label` — observation- and series-level attributes.
- `raw` — the lossless `{seriesKey, obsKey, obs, seriesAttributes}` object.

In **List dataflows only** mode each row is a dataflow: `dataflowId`, `agencyId`, `version`,
`name`, `description`, `isFinal`, `raw`.

A query that matches nothing (SDMX answers `404 "No results found"`) or an empty dataSet returns
**0 items, not an error**.

### Authentication

**None required** for public services (ECB, OECD, Eurostat, …). For gated services, supply a
`bearer` token or arbitrary `extraHeaders` (e.g. an API-management subscription key) — credentials
are never logged.

### Source terms, freshness, and limits

This Actor is an independent SDMX client. Check each provider's terms, data licence, access rules,
and attribution requirements before using or redistributing its data, and respect its rate limits.
A run makes one source query; transient network, `429`, and `5xx` responses may be retried. Source
availability, schemas, result counts, and freshness are controlled by the provider and can change.

### Troubleshooting

- **Invalid flow or key:** confirm the agency, dataflow, version, and key against the provider's
  catalogue. Use **List dataflows only** to discover flows, then check the key's dimension order.
- **`404 "No results found"`:** the Actor returns 0 items. Check the flow/key and widen or remove
  the requested period if appropriate.
- **XML-only service:** use a JSON-capable SDMX REST endpoint. The Actor does not convert SDMX-ML.
- **Malformed or non-JSON response:** check `serviceRoot`, authentication, and `extraHeaders`, then
  inspect the run log for the provider's HTTP, content-type, or JSON-parse error.

### Pricing

**Pay per observation.** On the FREE plan, the event price is **$0.0005 per observation**, or
**$0.50 per 1,000 observations**. With the `Try it now` input capped at 25 rows, its maximum
observation event charge is **25 × $0.0005 = $0.0125**.

**Apify infrastructure usage is additional.** A no-result query has a $0 observation event charge,
but infrastructure usage can still apply. The $0.0125 figure is a ceiling for the exact capped
example, not a cost guarantee; changing or removing `maxRecords` changes that ceiling, and the
source's matching result count can change.

### Notes

- Handles the SDMX `404 "No results found"` convention as a clean empty result.
- If a service only serves structure/data as SDMX-**ML** (XML), the Actor reports a clear error;
  point it at a JSON-capable SDMX REST endpoint.
- Not affiliated with or endorsed by any statistical agency or the SDMX initiative.

# Actor input Schema

## `serviceRoot` (type: `string`):

The REST service root of ANY SDMX 2.1 statistical service, WITHOUT a trailing /data. Examples: https://data-api.ecb.europa.eu/service (European Central Bank) or https://sdmx.oecd.org/public/rest (OECD). Also works with Eurostat, IMF, BIS, World Bank, ABS and other SDMX-JSON services.

## `agency` (type: `string`):

The maintaining agency of the dataflow, e.g. ECB, or an OECD agency like OECD.ECO.MAD. Leave empty to let the service default it. Used to build the flow reference agency,dataflow,version.

## `dataflow` (type: `string`):

The dataflow (dataset) id to query, e.g. EXR (ECB exchange rates). Turn on "List dataflows only" below to discover the dataflows a service exposes. Required unless listing dataflows.

## `version` (type: `string`):

The dataflow version, e.g. 1.0, or latest to always use the newest. Leave empty to omit the version slot (the service picks the default). Only meaningful together with an Agency ID.

## `key` (type: `string`):

The dot-joined dimension filter that selects series, e.g. D.USD.EUR.SP00.A for ECB EXR (FREQ.CURRENCY.CURRENCY\_DENOM.EXR\_TYPE.EXR\_SUFFIX). Leave EMPTY to fetch every series in the dataflow (can be very large). A position can be left blank to wildcard it (e.g. D..EUR.SP00.A) and + can OR values (e.g. D.USD+GBP.EUR.SP00.A).

## `startPeriod` (type: `string`):

Optional start of the time range, in the dataflow's period format: a year (2020), quarter (2020-Q1), month (2020-01) or day (2024-01-01). Leave empty for no lower bound.

## `endPeriod` (type: `string`):

Optional end of the time range (same formats as Start period). Leave empty for no upper bound.

## `lastNObservations` (type: `integer`):

Optional: keep only the most recent N observations per series (SDMX lastNObservations). Handy for "latest value" pulls. Leave empty to keep all in the period.

## `firstNObservations` (type: `integer`):

Optional: keep only the first N observations per series (SDMX firstNObservations). Leave empty to keep all.

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

Optional SDMX detail level. full = data + all attributes (default), dataonly = values without attributes, serieskeysonly / nodata = structure only. Leave empty for the service default.

## `dimensionAtObservation` (type: `string`):

Advanced: how observations are grouped. Leave empty for the default (TIME\_PERIOD, series-keyed). AllDimensions returns a flat observation map. Both are decoded transparently either way.

## `listDataflowsOnly` (type: `boolean`):

When on, ignore the query and instead list the dataflows the service exposes (id, agency, version, name) so you can find what to query. Hits {serviceRoot}/dataflow/{agency|all}/all/latest as SDMX-JSON. Some services only serve structure as XML — then this returns 0 rows and says so.

## `maxRecords` (type: `integer`):

Optional cap on the number of rows emitted (observations, or dataflows in discovery mode). Each emitted observation is one billable record. Leave empty to emit everything the query returns.

## `bearer` (type: `string`):

Optional bearer token for gated SDMX services (sent as Authorization: Bearer <token>). Not required for public services (ECB, OECD, Eurostat…). Never logged.

## `extraHeaders` (type: `object`):

Optional extra HTTP headers as a JSON object, e.g. {"Ocp-Apim-Subscription-Key": "..."} for gated services. Not required for public APIs. Header values are never logged.

## Actor input object example

```json
{
  "serviceRoot": "https://data-api.ecb.europa.eu/service",
  "agency": "ECB",
  "dataflow": "EXR",
  "version": "latest",
  "key": "D.USD.EUR.SP00.A",
  "startPeriod": "2024-01-01",
  "detail": "",
  "listDataflowsOnly": false,
  "maxRecords": 25
}
```

# 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 = {
    "serviceRoot": "https://data-api.ecb.europa.eu/service",
    "agency": "ECB",
    "dataflow": "EXR",
    "version": "latest",
    "key": "D.USD.EUR.SP00.A",
    "startPeriod": "2024-01-01",
    "maxRecords": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("datamule/sdmx-statistics-extractor").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 = {
    "serviceRoot": "https://data-api.ecb.europa.eu/service",
    "agency": "ECB",
    "dataflow": "EXR",
    "version": "latest",
    "key": "D.USD.EUR.SP00.A",
    "startPeriod": "2024-01-01",
    "maxRecords": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("datamule/sdmx-statistics-extractor").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 '{
  "serviceRoot": "https://data-api.ecb.europa.eu/service",
  "agency": "ECB",
  "dataflow": "EXR",
  "version": "latest",
  "key": "D.USD.EUR.SP00.A",
  "startPeriod": "2024-01-01",
  "maxRecords": 25
}' |
apify call datamule/sdmx-statistics-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=datamule/sdmx-statistics-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SDMX Statistics Extractor",
        "description": "Point at ANY SDMX 2.1 statistical service (ECB, OECD, Eurostat, IMF, BIS, World Bank, ABS…): name a dataflow + dimension key and get flat, fully labeled observation rows. Decodes the compact index-encoded SDMX-JSON (1.0 & 2.0 envelopes). Discovery mode lists dataflows. Pay per observation.",
        "version": "0.1",
        "x-build-id": "gQWsHNgF25c3QmLdh"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/datamule~sdmx-statistics-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-datamule-sdmx-statistics-extractor",
                "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/datamule~sdmx-statistics-extractor/runs": {
            "post": {
                "operationId": "runs-sync-datamule-sdmx-statistics-extractor",
                "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/datamule~sdmx-statistics-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-datamule-sdmx-statistics-extractor",
                "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": [
                    "serviceRoot"
                ],
                "properties": {
                    "serviceRoot": {
                        "title": "SDMX service root URL",
                        "type": "string",
                        "description": "The REST service root of ANY SDMX 2.1 statistical service, WITHOUT a trailing /data. Examples: https://data-api.ecb.europa.eu/service (European Central Bank) or https://sdmx.oecd.org/public/rest (OECD). Also works with Eurostat, IMF, BIS, World Bank, ABS and other SDMX-JSON services."
                    },
                    "agency": {
                        "title": "Agency ID",
                        "type": "string",
                        "description": "The maintaining agency of the dataflow, e.g. ECB, or an OECD agency like OECD.ECO.MAD. Leave empty to let the service default it. Used to build the flow reference agency,dataflow,version."
                    },
                    "dataflow": {
                        "title": "Dataflow ID",
                        "type": "string",
                        "description": "The dataflow (dataset) id to query, e.g. EXR (ECB exchange rates). Turn on \"List dataflows only\" below to discover the dataflows a service exposes. Required unless listing dataflows."
                    },
                    "version": {
                        "title": "Dataflow version",
                        "type": "string",
                        "description": "The dataflow version, e.g. 1.0, or latest to always use the newest. Leave empty to omit the version slot (the service picks the default). Only meaningful together with an Agency ID."
                    },
                    "key": {
                        "title": "Series key (dimension filter)",
                        "type": "string",
                        "description": "The dot-joined dimension filter that selects series, e.g. D.USD.EUR.SP00.A for ECB EXR (FREQ.CURRENCY.CURRENCY_DENOM.EXR_TYPE.EXR_SUFFIX). Leave EMPTY to fetch every series in the dataflow (can be very large). A position can be left blank to wildcard it (e.g. D..EUR.SP00.A) and + can OR values (e.g. D.USD+GBP.EUR.SP00.A)."
                    },
                    "startPeriod": {
                        "title": "Start period",
                        "type": "string",
                        "description": "Optional start of the time range, in the dataflow's period format: a year (2020), quarter (2020-Q1), month (2020-01) or day (2024-01-01). Leave empty for no lower bound."
                    },
                    "endPeriod": {
                        "title": "End period",
                        "type": "string",
                        "description": "Optional end of the time range (same formats as Start period). Leave empty for no upper bound."
                    },
                    "lastNObservations": {
                        "title": "Last N observations",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Optional: keep only the most recent N observations per series (SDMX lastNObservations). Handy for \"latest value\" pulls. Leave empty to keep all in the period."
                    },
                    "firstNObservations": {
                        "title": "First N observations",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Optional: keep only the first N observations per series (SDMX firstNObservations). Leave empty to keep all."
                    },
                    "detail": {
                        "title": "Detail level",
                        "enum": [
                            "",
                            "full",
                            "dataonly",
                            "serieskeysonly",
                            "nodata"
                        ],
                        "type": "string",
                        "description": "Optional SDMX detail level. full = data + all attributes (default), dataonly = values without attributes, serieskeysonly / nodata = structure only. Leave empty for the service default.",
                        "default": ""
                    },
                    "dimensionAtObservation": {
                        "title": "Dimension at observation",
                        "type": "string",
                        "description": "Advanced: how observations are grouped. Leave empty for the default (TIME_PERIOD, series-keyed). AllDimensions returns a flat observation map. Both are decoded transparently either way."
                    },
                    "listDataflowsOnly": {
                        "title": "List dataflows only (discovery)",
                        "type": "boolean",
                        "description": "When on, ignore the query and instead list the dataflows the service exposes (id, agency, version, name) so you can find what to query. Hits {serviceRoot}/dataflow/{agency|all}/all/latest as SDMX-JSON. Some services only serve structure as XML — then this returns 0 rows and says so.",
                        "default": false
                    },
                    "maxRecords": {
                        "title": "Max records",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Optional cap on the number of rows emitted (observations, or dataflows in discovery mode). Each emitted observation is one billable record. Leave empty to emit everything the query returns.",
                        "default": 25
                    },
                    "bearer": {
                        "title": "Bearer token",
                        "type": "string",
                        "description": "Optional bearer token for gated SDMX services (sent as Authorization: Bearer <token>). Not required for public services (ECB, OECD, Eurostat…). Never logged."
                    },
                    "extraHeaders": {
                        "title": "Extra request headers",
                        "type": "object",
                        "description": "Optional extra HTTP headers as a JSON object, e.g. {\"Ocp-Apim-Subscription-Key\": \"...\"} for gated services. Not required for public APIs. Header values are never logged."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
