# SourceReceipt - Source Verification for AI Agents (`sassy_labs/source-receipt-evidence-gate`) Actor

Verify sources and citations before AI agents act. Check public URLs for required, contradictory, or stale evidence and return structured receipts with exact snippets, redirects, dates, and SHA-256 hashes.

- **URL**: https://apify.com/sassy\_labs/source-receipt-evidence-gate.md
- **Developed by:** [Sassy Labs](https://apify.com/sassy_labs) (community)
- **Categories:** AI, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 source receipts

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

## SourceReceipt - Source Verification for AI Agents

SourceReceipt is a deterministic **source-verification and citation-checking
utility for AI agents**. Before an agent acts on a price, deadline, eligibility
rule, policy, availability statement, or other time-sensitive claim, it checks
the cited public URL against explicit machine-readable evidence requirements.
It returns one compact receipt per URL: HTTP status, final URL, page title,
declared content date, freshness, normalized content hash, exact-match snippets,
contradiction matches, and a conservative verdict.

Each source check costs **$0.01**. No API key, browser session, proxy, or language
model is required. SourceReceipt is not a search engine, a semantic fact
checker, or a truth oracle: it reports exactly what the live source supports,
contradicts, or cannot establish under the rules supplied by the caller.

### When to use SourceReceipt

- verify that a source or citation is still reachable before an AI agent acts;
- check whether required wording, numbers, dates, or eligibility terms remain
  on the live page;
- catch explicit contradiction terms such as `closed`, `expired`,
  `discontinued`, or `no longer available`;
- enforce a content-freshness limit when the page declares a date;
- create an auditable receipt with snippets, redirects, metadata, and a SHA-256
  content hash for an agent workflow, API integration, or MCP-discovered tool.

To run it, add one to twenty public URLs, define the exact terms that must or
must not appear, optionally set `maxAgeDays`, and start the Actor. One structured
dataset item is returned for each checked source.

### Why this is different

Generic crawlers return page content and leave the caller to decide whether it
is current or actually contains the required evidence. SourceReceipt makes that
last mile deterministic:

- `supported` - the page is reachable, every explicit rule passes, and any
  requested freshness can be verified;
- `contradicted` - a forbidden term such as `closed`, `expired`, or
  `discontinued` appears;
- `stale` - the content rules pass but the declared date exceeds the caller's
  maximum age;
- `insufficient` - a required term or requested date signal is missing;
- `unreachable` - the URL, response, redirect chain, content type, or size could
  not be safely verified.

The caller supplies exact `mustContainAll`, `mustContainAny`, and
`mustNotContain` terms. The free-form `claim` is a label for humans and is never
silently interpreted by a model.

### Example input

```json
{
  "targets": [
    {
      "url": "https://example.com/program-rules",
      "label": "Program deadline",
      "claim": "The program remains open and offers a $100,000 cash pool.",
      "mustContainAll": ["$100,000"],
      "mustContainAny": ["applications are open", "entries are open"],
      "mustNotContain": ["closed", "expired", "cancelled"],
      "maxAgeDays": 30
    }
  ],
  "timeoutSeconds": 20,
  "maxResponseBytes": 1000000,
  "snippetChars": 240,
  "concurrency": 4
}
````

### Example output

```json
{
  "targetIndex": 0,
  "label": "Program deadline",
  "requestedUrl": "https://example.com/program-rules",
  "finalUrl": "https://example.com/program-rules",
  "httpStatus": 200,
  "verdict": "supported",
  "freshnessStatus": "fresh",
  "declaredDate": "2026-07-10T09:30:00.000Z",
  "contentHashSha256": "...",
  "responseBytes": 41238,
  "ruleSummary": {
    "allRequiredMatched": true,
    "anyRequiredMatched": true,
    "forbiddenMatched": false,
    "missingAll": [],
    "missingAny": [],
    "matchedForbidden": []
  },
  "evidence": [
    {
      "kind": "required_all",
      "term": "$100,000",
      "snippet": "...verified cash pool is $100,000...",
      "position": 148
    }
  ]
}
```

### Safety and privacy

- SourceReceipt is an independent utility. It is not affiliated with, endorsed
  by, or sponsored by any website a user chooses to check.
- Only public HTTP(S) pages are accepted.
- URL credentials, localhost, internal hostnames, and private, reserved,
  link-local, multicast, or otherwise non-public IP addresses are rejected.
- Every redirect destination is resolved and checked again.
- Responses have hard time and byte limits.
- Only supported text, HTML, XML, and JSON content is read.
- Scripts are never executed. Script, style, template, SVG, and canvas content
  is removed before matching.
- Output contains only short matching snippets, not a full copied page.
- No API key, LLM call, browser session, customer credential, or personal data
  is required.

### Marketplace economics

SourceReceipt uses Apify Store pay-per-event pricing. One explicit
`source-receipt` event costs **$0.01 per checked source** ($10 per 1,000), with
platform usage included in the price. Apify documents profit as 80% of event
revenue minus platform costs, so the pre-cost creator share is $0.008 per
receipt. A low-priced synthetic `apify-actor-start` event costs $0.00005 per
run. `apify-default-dataset-item` is not configured; the runtime fails closed
if a second result event could double charge a receipt.

The Actor uses no browser, proxy, or paid model, defaults to 256 MB, and is
capped at 512 MB. The private owner benchmark below establishes the measured
cost boundary; it is not customer demand or revenue evidence.

SourceReceipt runs with limited permissions and Standby disabled. The account
has completed the payout eligibility gate. The one owner benchmark remains
cost evidence, not demand or revenue evidence.

### Local verification

```powershell
npm ci
npm run verify
npm run preflight
npx --yes apify-cli@1.7.1 validate-schema
npm run demo
npm run benchmark
```

`npm run demo` performs one read-only request to `https://example.com/` and
prints the resulting receipt. Unit tests use injected responses and do not
depend on live websites.

#### Local PPE boundary test

The following uses Apify's documented local PPE test mode, where each test
event is modeled at $1. A three-target run with a $2 cap must fetch, emit, and
log exactly two receipts:

```powershell
$env:ACTOR_TEST_PAY_PER_EVENT = "true"
$env:ACTOR_USE_CHARGING_LOG_DATASET = "true"
$env:ACTOR_MAX_TOTAL_CHARGE_USD = "2"
npx --yes apify-cli@1.7.1 run --purge --input-file demo/ppe-input.json
```

The verified 16 July 2026 run produced two default-dataset items and two
`source-receipt` charging-log items. The third target was omitted before its
network request, proving the charge cap bounds work as well as output.

#### Local live cost preflight

`npm run benchmark` performs three bounded runs across ten varied public pages
and writes the full evidence to `var/source-receipt/local-benchmark.json`. The
16 July 2026 preflight measured a 388 ms median wall time per ten receipts,
25.8 receipts/second median throughput, and 161 MB maximum RSS. Eight pages were
supported and two conservatively returned unreachable (one oversized response
and one page with no extractable server text).

Using current documented Bronze rates, 256 MB memory, decoded response bytes
with a 25% transfer safety factor, a two-times runtime multiplier, storage
operations, and the five-second synthetic-start compute credit, the worst
modeled platform cost was **$0.0000227 per receipt**. That conservative model is
now bracketed by the measured private-cloud result below.

#### Private cloud cost evidence

On 16 July 2026, one private owner run used the 256 MB configuration and
finished in 6.06 seconds. It returned all ten schema-compatible receipts: eight
supported and two unreachable, matching the local benchmark's conservative
outcomes. The run processed 621,794 response bytes, consumed 0.000410069 compute
units, and reported **$0.000188695** total platform usage, or
**$0.00001887 per receipt**.

Against the $0.008 pre-cost creator share, that measured usage leaves
about **$0.007981 per receipt** before maintenance time and payout effects, a
99.76% unit margin on the creator share. This clears the private cost/output
gate. It does not establish willingness to pay, a paying customer, or revenue.

### Marketplace evidence, not revenue evidence

Public Apify Store data checked on 16 July 2026 showed substantial existing
agent demand for web inputs: the official RAG Web Browser reported about 27,000
users in the preceding 30 days and the official Website Content Crawler about
8,000. Apify documents native Store discovery, pay-per-event billing, an 80%
creator share before platform costs, and automatic eligibility for agentic
payments when a limited-permission PPE Actor meets its rules.

That is evidence for the distribution surface, not proof that SourceReceipt will
sell. The experiment is successful only after paid runs from users other than
the owner produce verified positive net revenue.

### Maintenance boundary

Dynamic, client-rendered pages may expose too little server HTML. SourceReceipt
returns `insufficient` with a warning rather than adding a costly browser tier
or pretending the content was observed. A browser-backed tier should be added
only if paid usage proves the need.

# Actor input Schema

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

One to twenty public HTTP(S) pages. Each target can require all terms, at least one alternative term, forbid contradiction terms, and optionally require a declared content date within a maximum age.

## `timeoutSeconds` (type: `integer`):

Hard network timeout per redirect hop.

## `maxResponseBytes` (type: `integer`):

Stops oversized responses before they consume unbounded memory.

## `snippetChars` (type: `integer`):

Maximum characters retained around each exact term match.

## `concurrency` (type: `integer`):

Bounded parallel checks per run.

## Actor input object example

```json
{
  "targets": [
    {
      "url": "https://example.com/",
      "label": "Default evidence check",
      "claim": "The live page is the Example Domain page.",
      "mustContainAll": [
        "Example Domain"
      ],
      "mustNotContain": [
        "expired"
      ]
    }
  ],
  "timeoutSeconds": 20,
  "maxResponseBytes": 1000000,
  "snippetChars": 240,
  "concurrency": 4
}
```

# Actor output Schema

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

Structured source-verification verdicts, exact-match evidence snippets, dates, redirects, and content hashes.

# 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 = {
    "targets": [
        {
            "url": "https://example.com/",
            "label": "Default evidence check",
            "claim": "The live page is the Example Domain page.",
            "mustContainAll": [
                "Example Domain"
            ],
            "mustNotContain": [
                "expired"
            ]
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("sassy_labs/source-receipt-evidence-gate").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 = { "targets": [{
            "url": "https://example.com/",
            "label": "Default evidence check",
            "claim": "The live page is the Example Domain page.",
            "mustContainAll": ["Example Domain"],
            "mustNotContain": ["expired"],
        }] }

# Run the Actor and wait for it to finish
run = client.actor("sassy_labs/source-receipt-evidence-gate").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 '{
  "targets": [
    {
      "url": "https://example.com/",
      "label": "Default evidence check",
      "claim": "The live page is the Example Domain page.",
      "mustContainAll": [
        "Example Domain"
      ],
      "mustNotContain": [
        "expired"
      ]
    }
  ]
}' |
apify call sassy_labs/source-receipt-evidence-gate --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sassy_labs/source-receipt-evidence-gate",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SourceReceipt - Source Verification for AI Agents",
        "description": "Verify sources and citations before AI agents act. Check public URLs for required, contradictory, or stale evidence and return structured receipts with exact snippets, redirects, dates, and SHA-256 hashes.",
        "version": "0.1",
        "x-build-id": "9vLjxBowBbQj2fYNP"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sassy_labs~source-receipt-evidence-gate/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sassy_labs-source-receipt-evidence-gate",
                "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/sassy_labs~source-receipt-evidence-gate/runs": {
            "post": {
                "operationId": "runs-sync-sassy_labs-source-receipt-evidence-gate",
                "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/sassy_labs~source-receipt-evidence-gate/run-sync": {
            "post": {
                "operationId": "run-sync-sassy_labs-source-receipt-evidence-gate",
                "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": [
                    "targets"
                ],
                "properties": {
                    "targets": {
                        "title": "Evidence targets",
                        "minItems": 1,
                        "maxItems": 20,
                        "type": "array",
                        "description": "One to twenty public HTTP(S) pages. Each target can require all terms, at least one alternative term, forbid contradiction terms, and optionally require a declared content date within a maximum age.",
                        "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                                "url": {
                                    "title": "Public URL",
                                    "description": "HTTP(S) page to verify. Local, private-network, credential-bearing, and non-web URLs are rejected.",
                                    "type": "string",
                                    "editor": "textfield",
                                    "minLength": 8,
                                    "maxLength": 2048
                                },
                                "label": {
                                    "title": "Label",
                                    "description": "Short name for this evidence target.",
                                    "type": "string",
                                    "editor": "textfield",
                                    "maxLength": 120
                                },
                                "claim": {
                                    "title": "Claim under review",
                                    "description": "Human-readable context only. The verdict is based on the explicit term rules below, not semantic interpretation of this text.",
                                    "type": "string",
                                    "editor": "textarea",
                                    "maxLength": 1000
                                },
                                "mustContainAll": {
                                    "title": "Every term required",
                                    "description": "Every listed term must appear in normalized visible page text.",
                                    "type": "array",
                                    "editor": "stringList",
                                    "maxItems": 20,
                                    "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 500
                                    }
                                },
                                "mustContainAny": {
                                    "title": "At least one term required",
                                    "description": "If supplied, at least one listed alternative must appear.",
                                    "type": "array",
                                    "editor": "stringList",
                                    "maxItems": 20,
                                    "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 500
                                    }
                                },
                                "mustNotContain": {
                                    "title": "Contradiction terms",
                                    "description": "A match produces a contradicted verdict, for example closed, expired, discontinued, or no longer available.",
                                    "type": "array",
                                    "editor": "stringList",
                                    "maxItems": 20,
                                    "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 500
                                    }
                                },
                                "maxAgeDays": {
                                    "title": "Maximum declared age in days",
                                    "description": "Optional freshness requirement based on page metadata or the HTTP Last-Modified header. Missing date evidence is reported as insufficient, never guessed.",
                                    "type": "integer",
                                    "editor": "number",
                                    "minimum": 0,
                                    "maximum": 3650
                                }
                            },
                            "required": [
                                "url"
                            ]
                        }
                    },
                    "timeoutSeconds": {
                        "title": "Timeout per request",
                        "minimum": 3,
                        "maximum": 60,
                        "type": "integer",
                        "description": "Hard network timeout per redirect hop.",
                        "default": 20
                    },
                    "maxResponseBytes": {
                        "title": "Maximum response bytes",
                        "minimum": 10000,
                        "maximum": 5000000,
                        "type": "integer",
                        "description": "Stops oversized responses before they consume unbounded memory.",
                        "default": 1000000
                    },
                    "snippetChars": {
                        "title": "Evidence snippet length",
                        "minimum": 80,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum characters retained around each exact term match.",
                        "default": 240
                    },
                    "concurrency": {
                        "title": "Concurrent checks",
                        "minimum": 1,
                        "maximum": 6,
                        "type": "integer",
                        "description": "Bounded parallel checks per run.",
                        "default": 4
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
