# TrueLocal AU Directory Listings & Reviews Scraper (`abotapi/truelocal-com-au-scraper`) Actor

Scrape TrueLocal.com.au business listings by keyword, location, or URL. Extract names, addresses, GPS coordinates, phones, emails, websites, ratings, and review counts. Optional review mode exports individual reviews with author, rating, text, and date. Automatic pagination included.

- **URL**: https://apify.com/abotapi/truelocal-com-au-scraper.md
- **Developed by:** [AbotAPI](https://apify.com/abotapi) (community)
- **Categories:** Lead generation, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/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

## TrueLocal AU Directory Listings & Reviews Scraper

Pull structured directory data from TrueLocal.com.au, the Australian local listings portal. Search by keyword and location (or paste any TrueLocal URL) and get clean records: name, full address, GPS coordinates, phone, email, website, category, star rating, and review count. Flip on the dedicated reviews mode to export every customer review as its own row, with author, star rating, review text, and date. Pagination is automatic, so one search keyword in one location can walk thousands of listings.

### Why this scraper

- Three modes in one actor: keyword + location search, URL paste (search or profile URLs), and a flat one-row-per-review mode.
- 20+ fields per listing including the listing description, GPS latitude/longitude, public phone (plus secondary), public email, website, full category trail with codes, and structured weekly + holiday opening hours.
- Reviews come free with each profile page, so nested reviews on a listing record cost no extra fetch.
- Forward auto-pagination verified to walk fully disjoint result pages (no duplicate rows across pages).
- Cross-product search expansion: pass several keywords and several locations and every combination is searched.
- Lean mode (profile fetch off) returns the SERP card alone for fast, low-cost enumeration.

### Data you get

Listing record (search and URL modes), example values are real results captured from the live site:

| Field | Example |
| --- | --- |
| id | `00000001` |
| url | `https://www.truelocal.com.au/sydney-nsw/tlp/sample-listing-00000001` |
| name | `Sample Listing Name` |
| description | `The listing's own description text appears here, when the owner wrote one.` |
| primaryCategory | `Sample Category` |
| categories | `["Sample Category"]` |
| categoryCodes | `["00000000"]` |
| phone | `(02) 0000 0000` |
| secondaryPhone | `null` |
| email | `contact@example.com` |
| website | `https://example.com` |
| fullAddress | `1 Sample Street, Sydney NSW 2000` |
| suburb | `Sydney` |
| state | `NSW` |
| postcode | `2000` |
| latitude | `-33.0000` |
| longitude | `151.0000` |
| openingHours | `{ "MONDAY": "0000-2359", "TUESDAY": "0000-2359", ... }` |
| holidayHours | `{ "New Year's Day": [["2026/01/01", "Open 24 Hours"]], ... }` |
| permanentlyClosed | `false` |
| ratingValue | `5` |
| reviewCount | `6` |
| reviewsReturned | `6` |
| reviews | `[{ "author": "Jane D.", "rating": 5, "body": "...", "date": "2024-01-01" }]` |
| scrapedAt | `2026-01-01T00:00:00.000Z` |

> Sample shape, values are illustrative placeholders rather than from a live listing.

Note on `description`: TrueLocal exposes the listing's own description text when the owner wrote one; listings that never added a description return `null` (the site shows only an auto-generated title there). `openingHours` times use a 24-hour `HHMM-HHMM` format (`"0000-2359"` = open 24 hours).

Review record (reviews mode), one row per review:

| Field | Example |
| --- | --- |
| businessId | `00000001` |
| businessName | `Sample Listing Name` |
| businessUrl | `https://www.truelocal.com.au/sydney-nsw/tlp/sample-listing-00000001` |
| businessCategory | `Sample Category` |
| businessSuburb | `Sydney` |
| businessState | `NSW` |
| businessRating | `5` |
| businessReviewCount | `6` |
| author | `Jane D.` |
| rating | `5` |
| reviewBody | `Review text appears here when reviews are present on the listing.` |
| datePublished | `2024-01-01` |

### How to use

Search by keyword and location (one record per listing, reviews nested):

```json
{
  "mode": "search",
  "searchTerms": ["restaurants"],
  "locations": ["Sydney NSW"],
  "fetchDetails": true,
  "fetchReviews": true,
  "maxReviews": 20,
  "maxPages": 3,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "AU" }
}
````

Several keywords across several locations (every combination is searched):

```json
{
  "mode": "search",
  "searchTerms": ["plumber", "electrician"],
  "locations": ["Sydney NSW", "Melbourne VIC"],
  "maxPages": 5,
  "maxListings": 200
}
```

URL mode, paste a search URL and a profile URL together:

```json
{
  "mode": "url",
  "urls": [
    "https://www.truelocal.com.au/search?search_terms=cafe&geo_location_terms=Melbourne+VIC",
    "https://www.truelocal.com.au/sydney-nsw/tlp/sample-listing-00000001"
  ],
  "maxPages": 2
}
```

Reviews mode, one row per review (works with search inputs or pasted profile URLs):

```json
{
  "mode": "reviews",
  "urls": ["https://www.truelocal.com.au/sydney-nsw/tlp/sample-listing-00000001"],
  "maxReviews": 50
}
```

### Input parameters

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| mode | string | `search` | `search`, `url`, or `reviews`. |
| searchTerms | array | `["restaurants"]` | Keywords to search (search and reviews modes). |
| locations | array | `["Sydney NSW"]` | Free-text locations; suburb level is accepted. Every keyword is searched in every location. |
| urls | array | (none) | TrueLocal search and/or profile URLs. In search/reviews modes, pasting URLs here overrides searchTerms + locations. |
| fetchDetails | boolean | `true` | Open each profile page for address, GPS, email, website, rating and reviews. Off returns the lean SERP card. Reviews mode always fetches profiles. |
| fetchReviews | boolean | `true` | Nest a reviews array on each listing record (search/URL modes). |
| maxReviews | integer | `20` | Max reviews captured per listing. 0 = all. |
| maxPages | integer | `3` | Max SERP pages per keyword/location or per pasted search URL. ~30 listings per page. |
| maxListings | integer | `0` | Stop after this many listings across all searches. 0 = no cap. |
| proxy | object | Apify residential AU | Proxy configuration. AU residential is recommended. |

### Output example

```json
{
  "id": "00000001",
  "url": "https://www.truelocal.com.au/sydney-nsw/tlp/sample-listing-00000001",
  "name": "Sample Listing Name",
  "description": "The listing's own description text appears here when the owner wrote one.",
  "primaryCategory": "Sample Category",
  "categories": ["Sample Category"],
  "categoryCodes": ["00000000"],
  "categoryId": "00000000",
  "phone": "(02) 0000 0000",
  "secondaryPhone": null,
  "email": "contact@example.com",
  "website": "https://example.com",
  "fullAddress": "1 Sample Street, Sydney NSW 2000",
  "suburb": "Sydney",
  "state": "NSW",
  "postcode": "2000",
  "latitude": -33.0000,
  "longitude": 151.0000,
  "openingHours": {
    "MONDAY": "0000-2359", "TUESDAY": "0000-2359", "WEDNESDAY": "0000-2359",
    "THURSDAY": "0000-2359", "FRIDAY": "0000-2359", "SATURDAY": "0000-2359", "SUNDAY": "0000-2359"
  },
  "holidayHours": { "New Year's Day": [["2026/01/01", "Open 24 Hours"]] },
  "permanentlyClosed": false,
  "ratingValue": 5,
  "reviewCount": 6,
  "reviewsReturned": 6,
  "reviews": [
    { "author": "Jane D.", "rating": 5, "body": "Review text appears here when reviews are present on the listing.", "date": "2024-01-01" }
  ],
  "scrapedAt": "2026-01-01T00:00:00.000Z"
}
```

### Plan requirement

TrueLocal accepts clean Australian residential IPs reliably. Datacenter IPs (the default on the Apify free plan) are accepted only intermittently; the scraper rotates exit IPs to recover, but results are slower and less complete.

- Recommended: an Apify plan with the RESIDENTIAL proxy group, country set to AU (Starter and above).
- Free plan: residential proxy is not included. The scraper falls back to the default Apify proxy and rotates IPs, but some pages may be rejected. You can also paste your own AU residential proxy URLs in the proxy field.
- Set the proxy country to AU for the most consistent acceptance.

# Actor input Schema

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

Search = keyword + location builder (one record per listing). URL = paste TrueLocal search or profile URLs. Reviews = same inputs as Search/URL but the output is one flat record PER review.

## `searchTerms` (type: `array`):

Keywords or categories to search, e.g. "restaurants", "plumber", "hairdresser". One or more.

## `locations` (type: `array`):

Free-text locations, e.g. "Sydney NSW", "Melbourne VIC", "Bondi Beach". Suburb-level granularity is accepted. Every keyword above is searched in every location here.

## `urls` (type: `array`):

One or more full TrueLocal URLs. Either a search URL (https://www.truelocal.com.au/search?search\_terms=cafe\&geo\_location\_terms=Sydney+NSW) which is paginated forward, or a profile URL (https://www.truelocal.com.au/sydney-nsw/tlp/some-listing-580000000) which is fetched directly. Multi-URL supported.

## `fetchDetails` (type: `boolean`):

When ON, open each listing's profile page for full address, GPS, email, website, star rating and reviews. When OFF (Search/URL modes only), output is the lean SERP card (name, profile URL, phone, category). Reviews mode always fetches profile pages.

## `fetchReviews` (type: `boolean`):

When ON, each listing record includes a nested reviews\[] array. Has no extra cost (reviews ship with the profile page). Ignored in Reviews mode, which always emits reviews.

## `maxReviews` (type: `integer`):

Cap the number of reviews captured per listing. 0 = all available reviews.

## `maxPages` (type: `integer`):

Hard cap on how many SERP pages to walk per keyword/location (or per pasted search URL). Each page returns up to ~30 listings.

## `maxListings` (type: `integer`):

Stop after this many listings across all searches. In Reviews mode this caps the number of listings whose reviews are emitted. 0 = no cap.

## `proxy` (type: `object`):

TrueLocal accepts clean AU residential IPs reliably. Datacenter IPs are accepted only intermittently (the scraper rotates to recover). For consistent results use Apify residential with country AU.

## Actor input object example

```json
{
  "mode": "search",
  "searchTerms": [
    "restaurants"
  ],
  "locations": [
    "Sydney NSW"
  ],
  "urls": [
    "https://www.truelocal.com.au/search?search_terms=cafe&geo_location_terms=Melbourne+VIC"
  ],
  "fetchDetails": true,
  "fetchReviews": true,
  "maxReviews": 20,
  "maxPages": 1,
  "maxListings": 0,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "AU"
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "searchTerms": [
        "restaurants"
    ],
    "locations": [
        "Sydney NSW"
    ],
    "urls": [
        "https://www.truelocal.com.au/search?search_terms=cafe&geo_location_terms=Melbourne+VIC"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "AU"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/truelocal-com-au-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 = {
    "searchTerms": ["restaurants"],
    "locations": ["Sydney NSW"],
    "urls": ["https://www.truelocal.com.au/search?search_terms=cafe&geo_location_terms=Melbourne+VIC"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "AU",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/truelocal-com-au-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 '{
  "searchTerms": [
    "restaurants"
  ],
  "locations": [
    "Sydney NSW"
  ],
  "urls": [
    "https://www.truelocal.com.au/search?search_terms=cafe&geo_location_terms=Melbourne+VIC"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "AU"
  }
}' |
apify call abotapi/truelocal-com-au-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TrueLocal AU Directory Listings & Reviews Scraper",
        "description": "Scrape TrueLocal.com.au business listings by keyword, location, or URL. Extract names, addresses, GPS coordinates, phones, emails, websites, ratings, and review counts. Optional review mode exports individual reviews with author, rating, text, and date. Automatic pagination included.",
        "version": "1.0",
        "x-build-id": "RkhAbamSPhU4h0x88"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~truelocal-com-au-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-truelocal-com-au-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/abotapi~truelocal-com-au-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-truelocal-com-au-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/abotapi~truelocal-com-au-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-truelocal-com-au-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "1. Mode",
                        "enum": [
                            "search",
                            "url",
                            "reviews"
                        ],
                        "type": "string",
                        "description": "Search = keyword + location builder (one record per listing). URL = paste TrueLocal search or profile URLs. Reviews = same inputs as Search/URL but the output is one flat record PER review.",
                        "default": "search"
                    },
                    "searchTerms": {
                        "title": "Search terms (what)",
                        "type": "array",
                        "description": "Keywords or categories to search, e.g. \"restaurants\", \"plumber\", \"hairdresser\". One or more.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "locations": {
                        "title": "Locations (where)",
                        "type": "array",
                        "description": "Free-text locations, e.g. \"Sydney NSW\", \"Melbourne VIC\", \"Bondi Beach\". Suburb-level granularity is accepted. Every keyword above is searched in every location here.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "urls": {
                        "title": "TrueLocal URLs",
                        "type": "array",
                        "description": "One or more full TrueLocal URLs. Either a search URL (https://www.truelocal.com.au/search?search_terms=cafe&geo_location_terms=Sydney+NSW) which is paginated forward, or a profile URL (https://www.truelocal.com.au/sydney-nsw/tlp/some-listing-580000000) which is fetched directly. Multi-URL supported.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchDetails": {
                        "title": "Fetch profile pages (richer data)",
                        "type": "boolean",
                        "description": "When ON, open each listing's profile page for full address, GPS, email, website, star rating and reviews. When OFF (Search/URL modes only), output is the lean SERP card (name, profile URL, phone, category). Reviews mode always fetches profile pages.",
                        "default": true
                    },
                    "fetchReviews": {
                        "title": "Include reviews (Search/URL modes)",
                        "type": "boolean",
                        "description": "When ON, each listing record includes a nested reviews[] array. Has no extra cost (reviews ship with the profile page). Ignored in Reviews mode, which always emits reviews.",
                        "default": true
                    },
                    "maxReviews": {
                        "title": "Max reviews per listing",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cap the number of reviews captured per listing. 0 = all available reviews.",
                        "default": 20
                    },
                    "maxPages": {
                        "title": "Max pages per search",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on how many SERP pages to walk per keyword/location (or per pasted search URL). Each page returns up to ~30 listings.",
                        "default": 1
                    },
                    "maxListings": {
                        "title": "Max listings (total)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after this many listings across all searches. In Reviews mode this caps the number of listings whose reviews are emitted. 0 = no cap.",
                        "default": 0
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "TrueLocal accepts clean AU residential IPs reliably. Datacenter IPs are accepted only intermittently (the scraper rotates to recover). For consistent results use Apify residential with country AU."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
