# OpenStreetMap Business & POI Scraper (`logiover/openstreetmap-business-poi-scraper`) Actor

Scrape businesses and points of interest from OpenStreetMap via Overpass API. Extract name, address, phone, website, opening hours and GPS coordinates for any city worldwide. Free alternative to Google Maps API. No API key needed.

- **URL**: https://apify.com/logiover/openstreetmap-business-poi-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** Developer tools, Lead generation, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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

## 🗺️ OpenStreetMap Business & POI Scraper

Extract structured business and point of interest data from **OpenStreetMap** using the free **Overpass API**. Get name, address, phone number, website, opening hours, GPS coordinates and category — for any city in the world.

No API key. No Google Maps billing. No proxy. No browser. Just clean, structured data from the world's most comprehensive open geographic database.

---

### 🔍 What you can scrape

50+ business and POI categories across 7 groups:

| Group | Categories |
|-------|-----------|
| 🍽️ Food & Drink | Restaurants, cafes, bars, pubs, fast food |
| 🏨 Accommodation | Hotels, hostels, guesthouses |
| 🏥 Health | Pharmacies, hospitals, clinics, dentists, opticians, veterinary |
| 🛒 Shopping | Supermarkets, bakeries, clothes, electronics, bookshops, florists, jewellery |
| 💼 Services | Hairdressers, beauty salons, laundry, travel agencies |
| 🏛️ Public | Schools, universities, libraries, police stations, post offices |
| 🚗 Automotive | Fuel stations, car repair, car dealers |

---

### 💡 Use cases

**Lead Generation**
Build targeted business lists for sales outreach — restaurants, hotels, clinics, salons — with phone numbers and websites included. Filter by city or neighbourhood and export to CSV in seconds.

**Google Maps Alternative**
When Google Maps API costs too much or your quota runs out, Overpass delivers the same geographic data for free. OpenStreetMap covers 190+ countries with millions of mapped businesses.

**Local Directory Sites**
Seed a local business directory with real addresses, phone numbers, opening hours and categories. Ideal for neighbourhood guides, city portals and vertical directories.

**GIS & Research**
Download structured POI data for spatial analysis, catchment area modelling, competitor proximity studies or urban planning research. Export as JSON or CSV and load directly into QGIS, PostGIS or Python.

**Real Estate & Site Selection**
Find all pharmacies, supermarkets and schools within 1km of a prospective site. Combine radius search with the category filter for instant amenity scoring.

**Market Research**
Count restaurants per neighbourhood, map competitor density, identify underserved areas. The data is updated continuously by OpenStreetMap contributors.

---

### ⚙️ Search modes

#### City / Place Name (default)
Search by city name. The scraper resolves the name to an OSM area boundary and queries everything inside it.
```json
{
  "searchMode": "city",
  "city": "Istanbul",
  "categories": ["restaurant", "cafe"],
  "maxResults": 500
}
````

#### Bounding Box

Define a precise rectangular search area using latitude/longitude coordinates.

```json
{
  "searchMode": "bbox",
  "bboxSouth": 41.0082,
  "bboxWest": 28.9784,
  "bboxNorth": 41.0622,
  "bboxEast": 29.0636,
  "categories": ["hotel", "restaurant"],
  "maxResults": 1000
}
```

#### Radius

Search within a circle around a specific point.

```json
{
  "searchMode": "radius",
  "centerLat": 48.8584,
  "centerLng": 2.2945,
  "radiusMeters": 2000,
  "categories": ["restaurant", "cafe", "bar"],
  "maxResults": 500
}
```

***

### 📦 Output fields

| Field | Description | Example |
|-------|-------------|---------|
| `osmId` | OpenStreetMap element ID | `"123456789"` |
| `osmType` | Element type | `"node"` / `"way"` / `"relation"` |
| `name` | Business name | `"Café de Flore"` |
| `category` | Top-level category | `"Food & Drink"` |
| `subcategory` | OSM tag value | `"cafe"` |
| `lat` | GPS latitude | `48.8540` |
| `lng` | GPS longitude | `2.3323` |
| `street` | Street name | `"Boulevard Saint-Germain"` |
| `houseNumber` | House number | `"172"` |
| `city` | City | `"Paris"` |
| `postcode` | Postal code | `"75006"` |
| `country` | Country code | `"FR"` |
| `fullAddress` | Formatted full address | `"Boulevard Saint-Germain 172, Paris, 75006, FR"` |
| `phone` | Phone number | `"+33 1 45 48 55 26"` |
| `website` | Website URL | `"https://cafedeflore.fr"` |
| `email` | Contact email | `"contact@cafe.fr"` |
| `openingHours` | OSM opening hours string | `"Mo-Su 07:30-01:30"` |
| `brand` | Brand name for chains | `"McDonald's"` |
| `operator` | Operator or owner | `"Compass Group"` |
| `cuisine` | Cuisine type | `"french;coffee_shop"` |
| `wheelchair` | Wheelchair access | `"yes"` / `"no"` / `"limited"` |
| `osmUrl` | Link to OSM element | `"https://openstreetmap.org/node/..."` |

***

### 📊 Sample output

```json
{
  "osmId": "1234567890",
  "osmType": "node",
  "name": "Mado",
  "category": "Food & Drink",
  "subcategory": "restaurant",
  "lat": 41.0151,
  "lng": 28.9795,
  "street": "İstiklal Caddesi",
  "houseNumber": "18",
  "city": "İstanbul",
  "postcode": "34433",
  "country": "TR",
  "fullAddress": "İstiklal Caddesi 18, İstanbul, 34433, TR",
  "phone": "+90 212 244 4353",
  "website": "https://mado.com.tr",
  "email": null,
  "openingHours": "Mo-Su 09:00-23:00",
  "brand": "Mado",
  "operator": null,
  "cuisine": "turkish",
  "wheelchair": "yes",
  "osmUrl": "https://www.openstreetmap.org/node/1234567890",
  "scrapedAt": "2026-03-30T12:00:00.000Z"
}
```

***

### ⚡ Performance

- **No browser, no proxy** — direct HTTP POST to Overpass API
- A single city with 5 categories (~500 POIs): under 30 seconds
- Large city with all categories (~5,000 POIs): 3–5 minutes
- Uses 3 fallback Overpass endpoints for reliability
- 1 second polite delay between category requests

***

### 🔒 About the data

OpenStreetMap data is contributed by millions of volunteers worldwide and updated continuously. Coverage varies by country and city — major European and North American cities have near-complete business data including phone numbers and opening hours. Data quality in smaller cities or less-mapped regions may be lower.

All data is released under the **Open Database License (ODbL)**. When using the data in published work, attribution to © OpenStreetMap contributors is required.

***

### 💰 Pricing

| Volume | Cost |
|--------|------|
| 1,000 POIs | $0.30 |
| 5,000 POIs | $1.50 |
| 10,000 POIs | $3.00 |
| 50,000 POIs | $15.00 |

***

### ❓ FAQ

**How does this compare to Google Maps API?**
Google Maps API charges per request and has usage quotas. Overpass API is completely free with generous rate limits (10,000 requests/day per IP). OpenStreetMap has better coverage for some regions (notably Europe) and includes data Google Maps doesn't expose like opening hours in machine-readable format.

**How up to date is the data?**
Overpass API serves the live OpenStreetMap database, updated every few minutes. New businesses added to OSM appear in results almost immediately.

**Why are some POIs missing phone numbers or websites?**
OSM data completeness varies. Major chains are usually well-tagged; smaller independent businesses may have only a name and coordinates. Enable `requireAddress` to filter out incomplete records.

**Can I scrape an entire country?**
Yes, but use bbox mode with the country's bounding box. Very large queries may time out on the public Overpass API — the scraper automatically retries on fallback endpoints.

**What does the opening\_hours string format mean?**
OpenStreetMap uses a standardised format: `Mo-Fr 09:00-18:00; Sa 10:00-14:00`. Libraries like `opening_hours.js` can parse this into human-readable schedules or check if a place is open at a given time.

# Actor input Schema

## `searchMode` (type: `string`):

How to define the search area.

## `city` (type: `string`):

City to search in. Used only when Search Mode = city.

## `bboxSouth` (type: `number`):

Southern boundary. Used when Search Mode = bbox.

## `bboxWest` (type: `number`):

Western boundary. Used when Search Mode = bbox.

## `bboxNorth` (type: `number`):

Northern boundary. Used when Search Mode = bbox.

## `bboxEast` (type: `number`):

Eastern boundary. Used when Search Mode = bbox.

## `centerLat` (type: `number`):

Center point latitude. Used when Search Mode = radius.

## `centerLng` (type: `number`):

Center point longitude. Used when Search Mode = radius.

## `radiusMeters` (type: `integer`):

Search radius in meters. Used when Search Mode = radius.

## `categories` (type: `array`):

Which types of POIs to search for.

## `requireName` (type: `boolean`):

Only return POIs that have a name tag in OSM.

## `requireAddress` (type: `boolean`):

Skip POIs that have no street or city address.

## `maxResults` (type: `integer`):

Maximum number of POIs to return. Set to 0 for unlimited.

## `queryConcurrency` (type: `integer`):

How many Overpass API batches to run in parallel. Keep low (2-3) to avoid rate limiting.

## Actor input object example

```json
{
  "searchMode": "bbox",
  "city": "London",
  "bboxSouth": 51.47,
  "bboxWest": -0.15,
  "bboxNorth": 51.53,
  "bboxEast": -0.07,
  "centerLat": 51.5074,
  "centerLng": -0.1278,
  "radiusMeters": 1000,
  "categories": [
    "restaurant",
    "cafe",
    "hotel"
  ],
  "requireName": true,
  "requireAddress": false,
  "maxResults": 500,
  "queryConcurrency": 3
}
```

# Actor output Schema

## `osmId` (type: `string`):

OpenStreetMap element ID

## `osmType` (type: `string`):

node / way / relation

## `name` (type: `string`):

Business or place name

## `category` (type: `string`):

Top-level category (e.g. food)

## `subcategory` (type: `string`):

OSM tag value (e.g. restaurant)

## `lat` (type: `string`):

GPS latitude

## `lng` (type: `string`):

GPS longitude

## `fullAddress` (type: `string`):

Formatted full address

## `street` (type: `string`):

Street name

## `houseNumber` (type: `string`):

House or building number

## `city` (type: `string`):

City or town

## `postcode` (type: `string`):

Postal code

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

Country

## `phone` (type: `string`):

Phone number

## `website` (type: `string`):

Website URL

## `email` (type: `string`):

Contact email

## `openingHours` (type: `string`):

OSM opening\_hours string

## `brand` (type: `string`):

Brand name if chain

## `operator` (type: `string`):

Operator or owner name

## `cuisine` (type: `string`):

Cuisine type (restaurants)

## `wheelchair` (type: `string`):

Wheelchair accessibility

## `osmUrl` (type: `string`):

Link to OSM element page

## `scrapedAt` (type: `string`):

ISO timestamp of scrape

# 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 = {
    "categories": [
        "restaurant",
        "cafe",
        "hotel"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/openstreetmap-business-poi-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 = { "categories": [
        "restaurant",
        "cafe",
        "hotel",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("logiover/openstreetmap-business-poi-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 '{
  "categories": [
    "restaurant",
    "cafe",
    "hotel"
  ]
}' |
apify call logiover/openstreetmap-business-poi-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "OpenStreetMap Business & POI Scraper",
        "description": "Scrape businesses and points of interest from OpenStreetMap via Overpass API. Extract name, address, phone, website, opening hours and GPS coordinates for any city worldwide. Free alternative to Google Maps API. No API key needed.",
        "version": "0.0",
        "x-build-id": "Z3L1Y0cQt2nDvibJL"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/logiover~openstreetmap-business-poi-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-logiover-openstreetmap-business-poi-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/logiover~openstreetmap-business-poi-scraper/runs": {
            "post": {
                "operationId": "runs-sync-logiover-openstreetmap-business-poi-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/logiover~openstreetmap-business-poi-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-logiover-openstreetmap-business-poi-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": {
                    "searchMode": {
                        "title": "Search Mode",
                        "enum": [
                            "city",
                            "bbox",
                            "radius"
                        ],
                        "type": "string",
                        "description": "How to define the search area.",
                        "default": "bbox"
                    },
                    "city": {
                        "title": "City Name",
                        "type": "string",
                        "description": "City to search in. Used only when Search Mode = city.",
                        "default": "London"
                    },
                    "bboxSouth": {
                        "title": "BBox South (latitude)",
                        "type": "number",
                        "description": "Southern boundary. Used when Search Mode = bbox.",
                        "default": 51.47
                    },
                    "bboxWest": {
                        "title": "BBox West (longitude)",
                        "type": "number",
                        "description": "Western boundary. Used when Search Mode = bbox.",
                        "default": -0.15
                    },
                    "bboxNorth": {
                        "title": "BBox North (latitude)",
                        "type": "number",
                        "description": "Northern boundary. Used when Search Mode = bbox.",
                        "default": 51.53
                    },
                    "bboxEast": {
                        "title": "BBox East (longitude)",
                        "type": "number",
                        "description": "Eastern boundary. Used when Search Mode = bbox.",
                        "default": -0.07
                    },
                    "centerLat": {
                        "title": "Center Latitude",
                        "type": "number",
                        "description": "Center point latitude. Used when Search Mode = radius.",
                        "default": 51.5074
                    },
                    "centerLng": {
                        "title": "Center Longitude",
                        "type": "number",
                        "description": "Center point longitude. Used when Search Mode = radius.",
                        "default": -0.1278
                    },
                    "radiusMeters": {
                        "title": "Radius (meters)",
                        "minimum": 100,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Search radius in meters. Used when Search Mode = radius.",
                        "default": 1000
                    },
                    "categories": {
                        "title": "Categories",
                        "type": "array",
                        "description": "Which types of POIs to search for.",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "restaurant",
                            "cafe",
                            "hotel"
                        ]
                    },
                    "requireName": {
                        "title": "Require Name",
                        "type": "boolean",
                        "description": "Only return POIs that have a name tag in OSM.",
                        "default": true
                    },
                    "requireAddress": {
                        "title": "Require Address",
                        "type": "boolean",
                        "description": "Skip POIs that have no street or city address.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Maximum number of POIs to return. Set to 0 for unlimited.",
                        "default": 500
                    },
                    "queryConcurrency": {
                        "title": "Query Concurrency",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "How many Overpass API batches to run in parallel. Keep low (2-3) to avoid rate limiting.",
                        "default": 3
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
