# Local Landing Page QA (`junipr/local-landing-page-qa`) Actor

Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals.

- **URL**: https://apify.com/junipr/local-landing-page-qa.md
- **Developed by:** [junipr](https://apify.com/junipr) (community)
- **Categories:** SEO tools, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.90 / 1,000 page auditeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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

## Local Landing Page QA

Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals.

Run a focused quality audit for city and service landing pages. Each page receives ten separate checks covering HTTPS, indexability, title, meta description, canonical URL, H1, local structured data, internal links, location relevance, and visible content depth.

### Results At A Glance

- Structured dataset rows designed for filtering, exports, and API delivery.
- Stable source and record identifiers for repeatable runs.
- Honest null values and diagnostic rows when evidence is unavailable.
- Explicit limits for targets, records, source bytes, and optional reports.
- Pay-per-event billing that stops before paid output when the run budget is exhausted.

### Common Uses

- Check city pages before publication
- Compare quality controls across service-area pages
- Find noindex, canonical, heading, and structured-data gaps
- Produce evidence rows for an SEO remediation backlog
- Verify that a page actually mentions its intended city or service

### How It Works

1. Normalize each page and preserve the expected city and service supplied by the user.
2. Retrieve public HTML only when `fetchUrls` is enabled.
3. Extract page-level metadata and visible content signals.
4. Run ten independent checks rather than collapsing the audit into one score.
5. Write one row per check with evidence and a concrete recommendation.
6. Summarize pass, warning, and failure counts in optional report records.

### Input

| Field | Purpose |
| --- | --- |
| `targets` | Landing pages with URL, HTML, city, state, and service context. |
| `urls` | Public landing-page URLs for bounded retrieval. |
| `fetchUrls` | Enables public HTTP(S) retrieval. |
| `maxTargets` | Limits pages to 1-50. |
| `maxTextBytes` | Caps retained HTML per page. |
| `includeReport` | Writes JSON and Markdown report records. |

No field is required for the first run. The bundled bounded example demonstrates the output without making a network request. For URL retrieval, provide public HTTP(S) URLs without embedded credentials and enable the relevant retrieval control.

#### Input Example

```json
{
  "targets": [
    {
      "sourceId": "nashville-roof-repair",
      "sourceUrl": "https://example.com/nashville-roof-repair",
      "locationName": "Nashville",
      "city": "Nashville",
      "state": "TN",
      "service": "Roof Repair",
      "html": "<!doctype html><html><head><title>Nashville Roof Repair | Acme Roofing</title><meta name=\"description\" content=\"Schedule roof repair and storm damage inspections with Acme Roofing professionals serving Nashville and nearby communities in Middle Tennessee.\"><link rel=\"canonical\" href=\"https://example.com/nashville-roof-repair\"><meta name=\"robots\" content=\"index,follow\"><script type=\"application/ld+json\">{\"@type\":\"LocalBusiness\",\"name\":\"Acme Roofing Nashville\"}</script></head><body><h1>Nashville Roof Repair Services</h1><p>Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. Nashville roof repair inspections storm damage local roofing service directions estimates. </p><a href=\"/services\">Services</a><a href=\"/contact\">Contact</a></body></html>"
    }
  ],
  "maxTargets": 1,
  "fetchUrls": false,
  "includeReport": true
}
````

### Dataset Output

- One row for each of ten named controls
- Pass, warning, failure, or blocked status with severity and score
- Extracted evidence such as title, canonical URL, H1, robots directive, and link count
- City, service, page URL, and a correction recommendation

Every dataset row includes `pricingEventName` so cost-bearing output can be traced to its event. A blocked source can produce a diagnostic row with a null event name; that row is not represented as successful extraction.

#### Output Records

- Dataset: `{{links.apiDefaultDatasetUrl}}/items`
- Results JSON: `{{links.apiDefaultKeyValueStoreUrl}}/records/LOCAL_LANDING_PAGE_QA_RESULTS.json`
- Summary JSON: `{{links.apiDefaultKeyValueStoreUrl}}/records/LOCAL_LANDING_PAGE_QA_SUMMARY.json`
- Markdown report: `{{links.apiDefaultKeyValueStoreUrl}}/records/LOCAL_LANDING_PAGE_QA_REPORT.md`

Report records are written only when `includeReport` is enabled, there is paid output to report, and the report event is accepted. Digest records follow the same rule for `includeDigest`.

### Pricing

This actor uses pay-per-event pricing. The configured event prices include platform usage; no separate platform-usage pass-through is expected for these events.

| Event | Price (USD) | When it is charged |
| --- | ---: | --- |
| `actor-start` | $0.00500 | Before paid run setup. |
| `page-audited` | $0.00490 | Before a page audit is accepted. |
| `record-extracted` | $0.00372 | Before an extracted row is written. |
| `finding-emitted` | $0.00372 | Before a finding-bearing row is written. |
| `audit-report-generated` | $0.05000 | Before audit report records are written. |

The default maximum charge is `$10.00`. Input limits and run-budget limits remain independent: a broad input can still stop early when another event cannot be charged. A rejected or partial charge prevents the matching paid row or report from being written.

### Public Tasks

- **Audit public URLs for Local Landing Page QA issues**: Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals. This task uses one bounded, credential-free example.
- **Find Local Landing Page QA problems across a website**: Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals. This task uses one bounded, credential-free example.
- **Generate a technical Local Landing Page QA report**: Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals. This task uses one bounded, credential-free example.
- **Check a city service landing page**: Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals. This task uses one bounded, credential-free example.
- **Review local SEO page evidence**: Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals. This task uses one bounded, credential-free example.

Each task uses one bounded, credential-free input and can be edited before a run. URL retrieval remains disabled in tasks that already include source evidence.

### Cost And Scope Controls

- Start with one target and inspect the dataset before increasing limits.
- Keep report generation off when only dataset rows are needed.
- Supply HTML, XML, text, or records directly when repeatability matters.
- Use URL retrieval only for public sources you are authorized to access.
- Keep byte and record limits close to the downstream requirement.
- Treat charge-limit truncation as partial output, not a complete inventory.

### Safety

Only public HTTP(S) sources are accepted for retrieval. Credentialed URLs, loopback hosts, private and reserved address ranges, private DNS answers, and redirects are blocked. Responses are read with time and byte limits. The actor does not bypass authentication, CAPTCHAs, paywalls, access controls, or source restrictions.

Do not submit secrets, session cookies, private contact lists, or sensitive personal data. Review source terms and legal requirements before collecting or redistributing public information.

### Limitations

- Automated checks do not replace editorial review of copy quality.
- The actor does not claim ranking improvement or search-engine approval.
- Structured-data presence is checked; full rich-result eligibility is outside scope.
- Private pages, credentialed URLs, and private-network addresses are blocked.

### Troubleshooting

#### A blocked diagnostic row appears

Confirm that source evidence was supplied. For URL retrieval, verify that the URL is public HTTP(S), has no credentials, does not redirect, and fits within the byte and timeout limits.

#### Fewer rows appear than expected

Check the target and record caps, source formatting, duplicate identifiers, and `truncatedByChargeLimit` in the summary. Increase one limit at a time after inspecting cost and output quality.

#### Report records are absent

Set `includeReport` to true and confirm the run produced paid dataset rows. A report is skipped when its billing event cannot be accepted.

#### Values are null

Null means the supplied source did not establish the value. Add structured evidence at the source or provide a structured input record; do not treat null as a guessed value.

### Integration

Dataset items can be consumed through the Apify API, webhooks, exports, or platform integrations. Use stable `sourceId` and record identifiers as join keys. Preserve `checkedAt`, source URLs, status, issue codes, and hashes when building recurring comparisons or audit trails.

For scheduled use, begin with one bounded target, compare output across two runs, and only then increase limits. Downstream automation should handle blocked diagnostics, null values, charge-limit truncation, and source-format changes explicitly.

### Output Quality Checklist

Before using results operationally:

1. Confirm the source URL or supplied evidence is the intended source.
2. Review warning, failure, blocked, and issue-code fields.
3. Check null fields against the source rather than filling them automatically.
4. Confirm the summary does not report charge-limit truncation.
5. Retain source identifiers and timestamps with exported records.
6. Validate changed records before sending a digest or updating another system.

### FAQ

#### Does the first run call external websites?

No. The bounded input includes source evidence and leaves URL retrieval disabled.

#### Can I process several sources?

Yes. Use the target or URL arrays and raise the relevant cap gradually.

#### Are missing values inferred?

No. Missing values remain null or are named in issue fields.

#### What happens when a charge is rejected?

The actor stops before writing the matching paid output. Already completed rows remain available and the summary identifies truncation where applicable.

#### Is the Markdown report the primary output?

No. Dataset rows are the primary machine-readable output. Reports and digests are optional buyer-readable records.

#### Does this guarantee SEO, compliance, or business outcomes?

No. The actor provides extraction and QA evidence. It does not guarantee rankings, legal compliance, completeness of a third-party source, or commercial results.

# Actor input Schema

## `targets` (type: `array`):

Source objects to inspect for this run.

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

Public URLs to fetch when URL fetching is enabled.

## `fetchUrls` (type: `boolean`):

Fetch public URLs when inline content is not supplied.

## `fetchTimeoutMs` (type: `integer`):

Maximum time to wait when fetching a public URL.

## `maxTargets` (type: `integer`):

Maximum number of targets to process.

## `maxTextBytes` (type: `integer`):

Maximum bytes of text, HTML, or XML to read per source.

## `includeReport` (type: `boolean`):

Write summary report artifacts.

## `dryRun` (type: `boolean`):

Validate input and report diagnostics without paid output rows.

## `debug` (type: `boolean`):

Enable additional diagnostic logging.

## Actor input object example

```json
{
  "fetchUrls": false,
  "fetchTimeoutMs": 10000,
  "maxTargets": 2,
  "maxTextBytes": 120000,
  "includeReport": true,
  "dryRun": false,
  "debug": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `resultsJson` (type: `string`):

No description

## `summary` (type: `string`):

No description

## `markdownReport` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("junipr/local-landing-page-qa").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("junipr/local-landing-page-qa").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 '{}' |
apify call junipr/local-landing-page-qa --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=junipr/local-landing-page-qa",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Local Landing Page QA",
        "description": "Audit city/service landing pages for metadata, structure, internal links, schema, and content quality signals.",
        "version": "1.0",
        "x-build-id": "UEMRWoN5RsA17xx2s"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/junipr~local-landing-page-qa/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-junipr-local-landing-page-qa",
                "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/junipr~local-landing-page-qa/runs": {
            "post": {
                "operationId": "runs-sync-junipr-local-landing-page-qa",
                "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/junipr~local-landing-page-qa/run-sync": {
            "post": {
                "operationId": "run-sync-junipr-local-landing-page-qa",
                "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": {
                    "targets": {
                        "title": "Landing pages",
                        "maxItems": 50,
                        "type": "array",
                        "description": "Source objects to inspect for this run.",
                        "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                                "sourceId": {
                                    "type": "string",
                                    "title": "Source ID",
                                    "description": "Stable identifier for this source or record."
                                },
                                "sourceUrl": {
                                    "type": "string",
                                    "title": "Source URL",
                                    "description": "Public source URL for this item."
                                },
                                "url": {
                                    "type": "string",
                                    "title": "URL",
                                    "description": "Public URL for this item."
                                },
                                "title": {
                                    "type": "string",
                                    "title": "Title",
                                    "description": "Title for this item."
                                },
                                "locationName": {
                                    "type": "string",
                                    "title": "Location name",
                                    "description": "Location display name."
                                },
                                "city": {
                                    "type": "string",
                                    "title": "City",
                                    "description": "City for this location."
                                },
                                "state": {
                                    "type": "string",
                                    "title": "State",
                                    "description": "State, province, or region for this location."
                                },
                                "service": {
                                    "type": "string",
                                    "title": "Service",
                                    "description": "Service or offer represented by the page."
                                },
                                "text": {
                                    "type": "string",
                                    "title": "Text",
                                    "description": "Plain-text snapshot to parse without live fetching."
                                },
                                "html": {
                                    "type": "string",
                                    "title": "HTML",
                                    "description": "HTML snapshot to parse without live fetching."
                                }
                            }
                        }
                    },
                    "urls": {
                        "title": "Public URLs",
                        "maxItems": 50,
                        "type": "array",
                        "description": "Public URLs to fetch when URL fetching is enabled.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchUrls": {
                        "title": "Fetch URLs",
                        "type": "boolean",
                        "description": "Fetch public URLs when inline content is not supplied.",
                        "default": false
                    },
                    "fetchTimeoutMs": {
                        "title": "Fetch timeout",
                        "minimum": 1000,
                        "maximum": 30000,
                        "type": "integer",
                        "description": "Maximum time to wait when fetching a public URL.",
                        "default": 10000
                    },
                    "maxTargets": {
                        "title": "Max targets",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum number of targets to process.",
                        "default": 2
                    },
                    "maxTextBytes": {
                        "title": "Max text bytes",
                        "minimum": 1000,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum bytes of text, HTML, or XML to read per source.",
                        "default": 120000
                    },
                    "includeReport": {
                        "title": "Create report",
                        "type": "boolean",
                        "description": "Write summary report artifacts.",
                        "default": true
                    },
                    "dryRun": {
                        "title": "Dry run",
                        "type": "boolean",
                        "description": "Validate input and report diagnostics without paid output rows.",
                        "default": false
                    },
                    "debug": {
                        "title": "Debug logging",
                        "type": "boolean",
                        "description": "Enable additional diagnostic logging.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
