# Website SEO Audit Intelligence (`skootle/website-seo-audit-intelligence`) Actor

Bounded website SEO audit with explainable issues, structured page records, agent summaries, API output, scheduling, and monitoring.

- **URL**: https://apify.com/skootle/website-seo-audit-intelligence.md
- **Developed by:** [Skootle](https://apify.com/skootle) (community)
- **Categories:** SEO tools, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Website SEO Audit Intelligence

![Website SEO audit illustration](https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&w=1200&q=80)

### TL;DR

Website SEO Audit Intelligence crawls buyer-provided public websites, remains on each starting origin, and returns one agent-ready `SUMMARY` row followed by one `page_audit` row per fetched page. Each page row includes status and final URL, title, meta description, canonical, heading counts, image alt coverage, internal and external links, Open Graph fields, JSON-LD types, robots signals, sitemap hint, word count, a numeric SEO health score, and prioritized fixes. It does not claim Core Web Vitals because browser-based performance measurement is outside this Actor's scope.

Export audit data, run the Actor via API, schedule and monitor runs, or integrate with other tools.

### What does this website SEO audit do?

The Actor is for a bounded first-pass technical and on-page review. Give it one or more public starting URLs. It fetches each page, follows same-origin links until `maxPagesPerSite`, and emits normalized rows that a human, workflow, or AI agent can rank and act on. The summary provides count, source status, warnings, numeric health-score aggregate, and crawl boundaries.

The crawl respects its own bounds and reads the page-level `noindex` signal plus `robots.txt` availability. A page with `noindex` is recorded as a signal, not silently removed. This helps distinguish an intentional private or utility page from an accidental indexing issue.

### Why use this SEO audit for lead qualification and content operations?

Agencies can route high-priority fixes into a ticket queue. Content teams can find missing titles, descriptions, H1s, canonical tags, image alt text, and structured-data opportunities. Sales teams can qualify a website with a concrete, reproducible technical finding rather than a vague audit score. AI agents receive stable IDs, source URLs, timestamps, completeness scores, and Markdown briefings for every row.

### Why choose this Actor?

The leader category is proven, but the useful difference is operational: rows are already suitable for agents, failures are deterministic, and crawling stays same-origin and bounded. It does not substitute a silent empty result for a blocked response, parser change, malformed HTML response, or unexpected empty crawl. The leader evidence used in design was 20 users in 30 days and 87 successful runs, while other competitors showed 23 failures in 26 runs. This Actor focuses on predictable semantics and concrete prioritized fixes, not price claims.

### Input

```json
{
  "startUrls": ["https://example.com"],
  "maxPagesPerSite": 5,
  "includeExternalLinkChecks": false,
  "requestTimeoutSecs": 15
}
````

- `startUrls`: public buyer-provided URLs. The Actor does not discover targets for you.
- `maxPagesPerSite`: 1 to 50 same-origin pages per input origin.
- `includeExternalLinkChecks`: checks up to 10 external links per audited page and reports status where reachable.
- `requestTimeoutSecs`: per-request timeout from 3 to 60 seconds.

### How do I run a website SEO audit?

1. Open the Actor in Apify and paste public URLs you are authorized to assess.
2. Begin with five pages per site for a quick audit.
3. Run the Actor and open the dataset. Read the first `SUMMARY` row first.
4. Sort `page_audit` rows by `seoHealthScore` or inspect `prioritizedIssues`.
5. Use `agentMarkdown` as a compact handoff to a task, CRM, or agent workflow.

### Output format

All rows contain `schemaVersion`, `recordType`, `id`, `sourceUrl`, `retrievedAt`, `fieldCompletenessScore`, and `agentMarkdown`. Dates are ISO 8601. Counts and scores are numeric. Enum values use lowercase snake case where applicable.

```json
{
  "recordType": "summary",
  "count": 1,
  "sourceStatus": "success",
  "averageSeoHealthScore": 90,
  "boundedMaxPagesPerSite": 5,
  "domainIntelligence": { "sameOriginCrawl": true, "coreWebVitalsClaimed": false }
}
```

```json
{
  "recordType": "page_audit",
  "sourceUrl": "https://example.com/",
  "statusCode": 200,
  "title": "Example Domain",
  "headings": { "h1": 1, "h2": 0, "h3": 0 },
  "images": { "total": 0, "missingAlt": 0 },
  "seoHealthScore": 90,
  "prioritizedIssues": [{ "priority": "low", "code": "missing_canonical" }]
}
```

### Worked examples

These examples use the same row shape exercised by the live E2E run against `https://example.com` and `https://www.shopify.com`. Values vary as websites change.

#### Audit one landing page

Input: `{"startUrls":["https://example.com"],"maxPagesPerSite":1}`. Output starts with a `summary` and then a `page_audit` whose keys include `statusCode`, `title`, `metaDescription`, `canonical`, `headings`, `images`, `links`, `openGraph`, `jsonLdTypes`, `robots`, `wordCount`, `seoHealthScore`, and `prioritizedIssues`.

#### Compare a commercial page and an example page

Input: `{"startUrls":["https://www.shopify.com","https://example.com"],"maxPagesPerSite":1}`. The live E2E output had three rows: one summary plus two `page_audit` records, each retaining its input source URL and retrieval timestamp.

#### Check image accessibility and SEO coverage

Input: `{"startUrls":["https://example.com"],"maxPagesPerSite":3}`. Inspect `images.missingAlt`, `headings.h1`, and `prioritizedIssues` to create an accessible-content backlog.

#### Verify outbound links while staying crawl-bounded

Input: `{"startUrls":["https://example.com"],"maxPagesPerSite":2,"includeExternalLinkChecks":true}`. The `links` object adds `externalChecksRequested` and `externalLinkChecks`, capped at 10 links per page.

### How much will a website SEO audit cost?

Live Store pricing is $0.01 per Actor start plus $0.003 per dataset result, displayed as $3.00 per 1,000 results. Apify platform usage is included rather than billed separately. Use the input page limits and your Apify run-charge controls to keep each audit within budget.

### How should an agent prioritize SEO audit findings?

Start with `prioritizedIssues`, not the aggregate score. A missing title can make a page harder to understand in search results, while a missing canonical becomes more relevant when the same content is served on multiple paths. The recommended order is: check `noindex_signal` against the page's business purpose, repair absent titles and descriptions for important pages, correct heading and image-alt gaps, then decide whether canonical or structured-data additions fit the site's architecture. The actor gives a bounded evidence set. A change should still be reviewed in the site's CMS, template, and release process.

Use the row's `sourceUrl`, `finalUrl`, and `statusCode` together. A source URL that lands on a different final URL may indicate a normal redirect, an outdated campaign link, or a migration artifact. The Actor records the response it reached but does not make a judgment that every redirect is wrong. Pair this evidence with the intended URL map before changing redirects.

`fieldCompletenessScore` is data quality context, not an SEO ranking score. It reflects whether key collected fields were available on the page. A page with a complete set of collected fields can still need SEO work, and a partially complete record can reflect a simple or intentionally minimal page.

### What can I learn from robots, sitemap, and structured data signals?

The `robots` object reports the page-level robots meta value, whether `robots.txt` was retrievable, and whether the page contains a noindex signal. `sitemapHint` is only a hint found in `robots.txt`; it is not proof that the sitemap was fetched or validated. This distinction matters when a robots file is unavailable due to a transient response or a site policy.

`jsonLdTypes` collects readable `@type` declarations from JSON-LD blocks when they parse. It is a discovery aid for types such as Organization, Product, Article, or FAQPage. It does not validate schema eligibility, required properties, rich-result eligibility, or search-engine indexing. Use it to identify pages worth a structured-data review.

Open Graph fields are included because many marketing teams use the same page as a search landing page and social sharing page. Missing Open Graph does not directly prove a search issue, but it is a useful cross-channel content-quality check.

### What are sensible crawl boundaries for an SEO audit?

Begin with one to five pages per site while validating that the input is the intended public origin. Increase toward 50 only when the buyer needs a broader inventory and accepts the additional time. The Actor queues same-origin HTTP and HTTPS links only. It does not log in, submit forms, bypass a challenge, or crawl a linked external domain. This bounded behavior avoids turning a quick audit into an unbounded crawler.

For a multi-site portfolio, submit one representative page from each domain and keep `maxPagesPerSite` low. The summary row preserves the query and bound, which lets a downstream agent distinguish a shallow landscape scan from a deeper single-domain audit. For a redesign migration, use the most important old and new public pages as separate inputs, then compare their row-level titles, canonicals, robots values, and issue lists outside the Actor.

### Troubleshooting public website audits

If the run reports a source failure, first open the same URL in a normal browser and verify it is public, responds without authentication, and is spelled correctly. A 403, 429, network failure, malformed source response, or empty source body is intentionally not converted into a zero-result success. Retry later only when the public source has recovered. Do not reduce the request timeout to work around a blocked site.

If an expected empty summary appears, the submitted list was empty. Provide at least one public starting URL for an audit. If a real website unexpectedly returns no page rows, that is a failure condition and should be reported with the run timestamp and URL.

### Limits and responsible use

The audit is a snapshot of the public response at `retrievedAt`. Content can vary by geography, device, cookie state, language, A/B experiment, cache, and deployment. Keep the timestamp with the finding and rerun before treating a historical row as current. The Actor does not attempt to identify people, collect personal data, or access pages that require a session. It should be used as a repeatable quality signal, not as a substitute for editorial judgment or a contractual accessibility review.

### Integrations and API use

The first row is always the summary, so a workflow can safely inspect `recordType: "summary"` before processing page rows. Store `id` as an idempotency key for a point-in-time row, preserve `retrievedAt` for audit history, and attach `agentMarkdown` to a concise handoff. For a ticketing workflow, map high-priority codes to a review queue and keep lower-priority suggestions in a backlog until the page owner confirms intent.

Do not treat this output as a replacement for consent, accessibility, legal, performance, or security reviews. The Actor fetches public HTML and headers only. It does not use a browser performance trace and does not inspect authenticated or personalized content.

### Is it legal to use this website SEO audit?

Use it only on public websites you are authorized to assess. Respect applicable laws, website terms, rate limits, copyright, and robots directives. Do not use it to bypass authentication, paywalls, access controls, or anti-bot systems. This Actor is not affiliated with, endorsed by, or sponsored by any audited website or search engine.

### FAQ

#### Does it measure Core Web Vitals?

No. It explicitly does not claim Core Web Vitals because that needs browser-based measurement.

#### Can it crawl another domain from a link?

No. It follows only same-origin links. Optional external checks are status checks, not an external crawl.

#### What happens if a page is blocked or returns an error?

The run fails closed with a source failure. It does not write a misleading successful empty audit.

#### What does an expected empty result mean?

An empty `startUrls` list produces a zero-count `expected_no_match` summary. A malformed response or unexpected empty crawl throws instead.

#### Can I schedule audits with the Apify API?

Yes. The input and normalized output are designed for API, scheduler, and integration use.

#### Does a score guarantee rankings?

No. The score is a prioritized on-page and technical heuristic, not a ranking prediction.

#### Can it find every SEO issue?

No. It is a bounded audit and should complement a full technical review where needed.

### Other Skootle actors you might like

- [Website Tech Stack Intelligence](https://apify.com/skootle/website-tech-stack-intelligence) for explainable technology and security-header clues.
- [Clinical Trials Intelligence](https://apify.com/skootle/clinical-trials-intel) for normalized research pipelines.

### Support and feedback

Open an issue or use the Actor support channel with the input shape, failing public URL, timestamp, and run ID. Do not include credentials. If this Actor saves time, leave a review through the Store review prompt. Feedback on missing high-value SEO checks is especially useful.

# Actor input Schema

## `startUrls` (type: `array`):

Public HTTP or HTTPS website URLs to audit. Private and local network targets are rejected.

## `maxPagesPerSite` (type: `integer`):

Maximum same-origin pages to audit for each starting website.

## `includeExternalLinkChecks` (type: `boolean`):

Check up to ten discovered external links per audited page.

## `requestTimeoutSecs` (type: `integer`):

Maximum seconds allowed for each public website request.

## Actor input object example

```json
{
  "startUrls": [
    "https://example.com"
  ],
  "maxPagesPerSite": 5,
  "includeExternalLinkChecks": false,
  "requestTimeoutSecs": 15
}
```

# Actor output Schema

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

Default dataset. The first row is a summary, followed by one page\_audit row for each audited public page.

## `agentBriefing` (type: `string`):

Markdown briefing derived from the summary row.

# 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 = {
    "startUrls": [
        "https://example.com"
    ],
    "maxPagesPerSite": 5,
    "includeExternalLinkChecks": false,
    "requestTimeoutSecs": 15
};

// Run the Actor and wait for it to finish
const run = await client.actor("skootle/website-seo-audit-intelligence").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 = {
    "startUrls": ["https://example.com"],
    "maxPagesPerSite": 5,
    "includeExternalLinkChecks": False,
    "requestTimeoutSecs": 15,
}

# Run the Actor and wait for it to finish
run = client.actor("skootle/website-seo-audit-intelligence").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 '{
  "startUrls": [
    "https://example.com"
  ],
  "maxPagesPerSite": 5,
  "includeExternalLinkChecks": false,
  "requestTimeoutSecs": 15
}' |
apify call skootle/website-seo-audit-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=skootle/website-seo-audit-intelligence",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Website SEO Audit Intelligence",
        "description": "Bounded website SEO audit with explainable issues, structured page records, agent summaries, API output, scheduling, and monitoring.",
        "version": "0.0",
        "x-build-id": "5EGWI9bEpo3svQANU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/skootle~website-seo-audit-intelligence/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-skootle-website-seo-audit-intelligence",
                "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/skootle~website-seo-audit-intelligence/runs": {
            "post": {
                "operationId": "runs-sync-skootle-website-seo-audit-intelligence",
                "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/skootle~website-seo-audit-intelligence/run-sync": {
            "post": {
                "operationId": "run-sync-skootle-website-seo-audit-intelligence",
                "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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Starting URLs",
                        "minItems": 1,
                        "type": "array",
                        "description": "Public HTTP or HTTPS website URLs to audit. Private and local network targets are rejected.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPagesPerSite": {
                        "title": "Maximum same-origin pages",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum same-origin pages to audit for each starting website.",
                        "default": 5
                    },
                    "includeExternalLinkChecks": {
                        "title": "Check external links",
                        "type": "boolean",
                        "description": "Check up to ten discovered external links per audited page.",
                        "default": false
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout seconds",
                        "minimum": 3,
                        "maximum": 60,
                        "type": "integer",
                        "description": "Maximum seconds allowed for each public website request.",
                        "default": 15
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
