# Phone Number Fraud & Risk Scanner (`ntriqpro/phone-fraud-scanner`) Actor

Validate phone numbers and score fraud risk — detect VOIP, toll-free, premium-rate lines and get an ALLOW/REVIEW/BLOCK decision for KYC and fraud prevention onboarding. 100% offline, no scraping.

- **URL**: https://apify.com/ntriqpro/phone-fraud-scanner.md
- **Developed by:** [daehwan kim](https://apify.com/ntriqpro) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$50.00 / 1,000 phone number scoreds

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.md):

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

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

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

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

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

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

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

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

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


# README

## Phone Number Fraud & Risk Scanner

### What does this Actor do?

Phone Number Fraud & Risk Scanner validates phone numbers and assigns a **fraud risk score** to help you **instantly decide** whether to **ALLOW**, **REVIEW**, or **BLOCK** a number during KYC onboarding, fraud prevention, or account verification workflows. The Actor detects high-risk line types (VOIP, premium-rate, toll-free) and produces a transparent, deterministic risk score (0–100) with actionable recommendations for your compliance team. **100% offline — no external APIs, no scraping, pure libphonenumber validation.**

### Why use Phone Number Fraud & Risk Scanner?

- **Fraud Prevention**: Automatically flag risky line types (VOIP, premium-rate, toll-free) that correlate with fraud and account takeover
- **KYC Compliance**: Speed up onboarding decisions — no more manual review delays for every phone number
- **Transparent Scoring**: Fully deterministic, human-readable risk score (base 5 + line type adjustments)
- **Offline & Fast**: No external API dependencies — scores return in milliseconds
- **Privacy-First**: No scraped data, no external platform calls, no personal data stored
- **Cost-Effective**: $0.05 per valid phone number scored; invalid numbers are free

#### Use Cases
- **Banking/FinTech**: Filter out synthetic identities and fraud rings during account opening
- **Mobile/Telecom**: Detect ported numbers, VOIP gateways, and toll-free fronts
- **Compliance Teams**: Generate reports of risky phone numbers for secondary review
- **B2B Platforms**: Verify seller/buyer phone numbers before transaction approval

### How to use Phone Number Fraud & Risk Scanner

1. **Prepare your list**: Gather phone numbers in international format (e.g. `+14155552671`) or with a default country code
2. **Set disclaimers**: Acknowledge that you will use results for lawful fraud prevention / KYC only
3. **Run the Actor**: Click "Start" or call the API with your phone list
4. **Review results**: Download the dataset (JSON, CSV, Excel) — each row shows risk score, line type, and recommendation
5. **Act on recommendations**:
   - **ALLOW** (score <25): Proceed with normal onboarding
   - **REVIEW** (score 25–60): Manual verification step (call or SMS test)
   - **BLOCK** (score >60): Flag for fraud team, request alternative phone number

### Input

The Actor accepts:

| Field | Type | Required | Example | Description |
|-------|------|----------|---------|-------------|
| `phoneNumbers` | Array of strings | ✅ Yes | `["+14155552671", "+442071838750"]` | Phone numbers to score (international format preferred, or national format if `defaultCountry` is set) |
| `defaultCountry` | String | ❌ No | `"US"` | ISO country code for parsing numbers without country prefix (e.g. `(415) 555-2671` in the US) |
| `disclaimerAck` | Boolean | ✅ Yes | `true` | Must be checked to proceed. Confirms lawful use, compliance with GDPR/CCPA/PIPA, and no harassment/doxxing intent |

#### Example Input (JSON)
```json
{
  "phoneNumbers": ["+14155552671", "+442071838750", "+33679368229"],
  "defaultCountry": "US",
  "disclaimerAck": true
}
````

### Output

The Actor produces a **dataset** (table view in Apify Console) with one row per phone number:

| Field | Type | Example | Description |
|-------|------|---------|-------------|
| `input` | string | `"+14155552671"` | Original input number |
| `valid` | boolean | `true` | Whether the number parsed and validated successfully |
| `e164` | string | `"+14155552671"` | Normalized international format (if valid) |
| `national` | string | `"(415) 555-2671"` | National format (if valid) |
| `country` | string | `"US"` | ISO country code |
| `countryCallingCode` | number | `1` | International dialing code |
| `lineType` | string | `"MOBILE"` | Line type: MOBILE, FIXED\_LINE, VOIP, PREMIUM\_RATE, TOLL\_FREE, etc. |
| `riskScore` | number | `5` | Risk score (0–100, higher = riskier) |
| `riskFlags` | array | `[]` | Risk indicators (INVALID\_NUMBER, VOIP, PREMIUM\_RATE, TOLL\_FREE, UNKNOWN\_TYPE, etc.) |
| `recommendation` | string | `"ALLOW"` | Decision: ALLOW (<25), REVIEW (25–60), BLOCK (>60) |
| `disclaimer` | string | `"Risk score is advisory..."` | Legal disclaimer text |
| `scannedAt` | string (ISO 8601) | `"2024-01-15T10:30:45.123Z"` | Timestamp of scan |

#### Example Output (JSON)

```json
[
  {
    "input": "+14155552671",
    "valid": true,
    "e164": "+14155552671",
    "national": "(415) 555-2671",
    "country": "US",
    "countryCallingCode": 1,
    "lineType": "MOBILE",
    "riskScore": 5,
    "riskFlags": [],
    "recommendation": "ALLOW",
    "disclaimer": "Risk score is an advisory signal...",
    "scannedAt": "2024-01-15T10:30:45.123Z"
  },
  {
    "input": "+441234567890",
    "valid": true,
    "e164": "+441234567890",
    "national": "01234 567890",
    "country": "GB",
    "countryCallingCode": 44,
    "lineType": "VOIP",
    "riskScore": 45,
    "riskFlags": ["VOIP"],
    "recommendation": "REVIEW",
    "disclaimer": "Risk score is an advisory signal...",
    "scannedAt": "2024-01-15T10:30:46.456Z"
  }
]
```

You can download the dataset in **JSON, CSV, HTML, or Excel** formats via the Output tab.

### Data Table

#### Risk Score Breakdown

| Line Type | Base Score | Risk Level | Notes |
|-----------|-----------|------------|-------|
| MOBILE | 5 | Low | Residential cell phones (lowest risk) |
| FIXED\_LINE | 5 | Low | Landline numbers |
| FIXED\_LINE\_OR\_MOBILE | 20 | Medium | Mixed validation (additional review recommended) |
| TOLL\_FREE | 30 | Medium-High | 1-800 numbers, commonly spoofed |
| VOIP | 45 | High | VoIP/internet-based, high fraud correlation |
| PREMIUM\_RATE | 55 | Very High | 1-900, premium SMS gateways, toll-line proxies |
| PERSONAL\_NUMBER | 20 | Medium | Directory-listed non-geographic |
| UAN | 20 | Medium | Unified Access Numbers (less common) |
| SHARED\_COST | 20 | Medium | Shared-cost lines |
| UNKNOWN\_TYPE | 35 | High | Validation passed but type unclear (requires review) |
| INVALID\_NUMBER | 90 | Critical | Failed to parse or invalid format (BLOCK) |

**Score Thresholds:**

- **ALLOW** (0–24): Proceed to next step
- **REVIEW** (25–59): Secondary verification (SMS test, human review, callback)
- **BLOCK** (60+): Flag for fraud team, request alternative phone number

### Pricing

**Cost per scan:**

- **Valid phone numbers**: $0.05 per number (charged once it parses and validates)
- **Invalid numbers**: **Free** (no charge for parse failures)

#### Cost Estimation

- 100 valid numbers = $5.00
- 1,000 valid numbers = $50.00
- 10,000 valid numbers = $500.00

**Free tier**: First 10 runs per month (up to 100 valid numbers total) on Apify's free plan.

### Tips & Advanced Options

#### Optimize Performance

- **Batch large lists**: The Actor processes numbers sequentially; for 100K+ numbers, consider splitting into 10K batches and running in parallel
- **Use default country**: For domestic numbers (e.g. all US), set `defaultCountry: "US"` to avoid prefixing all 10,000+ numbers
- **Cache results**: If you're re-scanning the same customer base monthly, store results in your own DB to avoid duplicate charges

#### Improve Accuracy

- **Verify REVIEW-tier numbers**: Use SMS OTP or callback to confirm REVIEW-tier numbers (VOIP, toll-free, unknown types) before granting access
- **Combine with other signals**: Risk score is one signal — pair with IP geolocation, email verification, and account history for stronger fraud detection
- **Monitor false positives**: Some legitimate businesses use VOIP or toll-free numbers; build allowlist for known vendors

#### Reduce Costs

- **Pre-filter your list**: Remove obvious duplicates and formatting errors before submitting (saves 5–20% on wasted scans)
- **Use callback verification**: For borderline REVIEW cases, a $0.10 SMS or $0.05 callback is cheaper than $0.05 auto-block if it enables conversions
- **Retry only failures**: Only re-submit numbers that failed to parse (network glitch, formatting edge case), not all 10K every month

### FAQ, Disclaimers & Support

#### FAQ

**Q: Does this Actor make real-time API calls to carriers or third-party services?**\
A: No. All validation and scoring is done offline using libphonenumber-js (Google's open-source library). Zero external API dependencies.

**Q: Can I use this for SMS marketing or spam calling?**\
A: No. This Actor is for fraud prevention and authorized KYC workflows only. Unauthorized calling/SMS violates TCPA, GDPR, and local laws.

**Q: What about GDPR/CCPA privacy?**\
A: The Actor does not store personal data, does not call external platforms, and only returns metadata (country, line type, validity). You are responsible for user consent and data retention policies.

**Q: Why do some valid numbers get a high risk score?**\
A: Numbers flagged as VOIP, toll-free, or premium-rate correlate with fraud rings but have legitimate business uses. Use REVIEW scores for secondary verification instead of auto-blocking.

**Q: Can I integrate this with my app?**\
A: Yes, via the [Apify API](https://docs.apify.com/api/). Call the Actor's endpoint and parse the returned dataset. See Apify docs for webhooks, scheduling, and integrations.

#### Disclaimers

**Legal:** This tool validates phone numbers and produces a heuristic risk score from offline metadata (line type, validity, region). It does **NOT** access carrier databases, perform live lookups, or scrape any platform. The risk score is an **advisory signal for fraud-prevention and KYC workflows only** — NOT a definitive determination of fraud, identity, or suitability. **You assume full liability** for decisions made using this output.

**Compliance:** You are responsible for compliance with:

- GDPR (if processing EU residents)
- CCPA/CPRA (if processing California residents)
- TCPA (US telephone spam law)
- PIPA (Canada privacy law)
- Local telecom and data protection regulations

Misuse (harassment, doxxing, unauthorized calling, spam) is prohibited and may result in legal liability.

#### Limitations

- **No real-time validation**: Score is based on number format and known line-type metadata, not live carrier status
- **Regional metadata gaps**: Some developing regions have incomplete phonenumber databases; UNKNOWN\_TYPE flags may be higher
- **ported numbers**: Does not detect if a number was recently ported from VOIP to MOBILE (or vice versa)
- **SIM-only validation**: Validates SIM card format, not SIM activation status or current ownership

#### Support & Feedback

- **Bug reports**: Use the [Issues tab](https://apify.com/ntriqpro/phone-fraud-scanner/issues) to report parsing errors or incorrect risk scores
- **Feature requests**: Comment with your use case (fraud detection, compliance, banking, etc.) and we'll consider it
- **Custom solutions**: Need bulk verification, real-time webhooks, or custom scoring rules? [Contact Apify](https://apify.com/contact) for a consultation

***

**Built by ntriq** on the Apify platform. Powered by [libphonenumber-js](https://github.com/catamphetamine/libphonenumber-js) (Google's open-source library).

# Actor input Schema

## `phoneNumbers` (type: `array`):

Array of phone numbers to score for fraud risk. International format with country code preferred (e.g. +14155552671). Can also accept national format numbers if defaultCountry is specified.

## `defaultCountry` (type: `string`):

ISO country code (e.g. US, GB, FR) for parsing numbers without country prefix. Optional.

## `disclaimerAck` (type: `boolean`):

Required. By checking this you confirm that (1) you will use this Actor only for lawful purposes such as fraud prevention, authorized security research, KYC onboarding, or investigation of numbers you are authorized to investigate; (2) you will not use results to harass, stalk, dox, or harm any person; (3) you are responsible for compliance with applicable privacy laws (GDPR/CCPA/PIPA/etc.). This Actor returns public validation metadata only and stores no personal data.

## Actor input object example

```json
{
  "phoneNumbers": [
    "+14155552671",
    "+442071838750",
    "+33679368229"
  ],
  "defaultCountry": "US",
  "disclaimerAck": true
}
```

# Actor output Schema

## `dataset` (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 = {
    "phoneNumbers": [
        "+14155552671",
        "+442071838750",
        "+33679368229"
    ],
    "defaultCountry": "US",
    "disclaimerAck": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("ntriqpro/phone-fraud-scanner").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 = {
    "phoneNumbers": [
        "+14155552671",
        "+442071838750",
        "+33679368229",
    ],
    "defaultCountry": "US",
    "disclaimerAck": True,
}

# Run the Actor and wait for it to finish
run = client.actor("ntriqpro/phone-fraud-scanner").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 '{
  "phoneNumbers": [
    "+14155552671",
    "+442071838750",
    "+33679368229"
  ],
  "defaultCountry": "US",
  "disclaimerAck": true
}' |
apify call ntriqpro/phone-fraud-scanner --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ntriqpro/phone-fraud-scanner",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Phone Number Fraud & Risk Scanner",
        "description": "Validate phone numbers and score fraud risk — detect VOIP, toll-free, premium-rate lines and get an ALLOW/REVIEW/BLOCK decision for KYC and fraud prevention onboarding. 100% offline, no scraping.",
        "version": "1.0",
        "x-build-id": "quRCrnQFjbUclRwn9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ntriqpro~phone-fraud-scanner/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ntriqpro-phone-fraud-scanner",
                "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/ntriqpro~phone-fraud-scanner/runs": {
            "post": {
                "operationId": "runs-sync-ntriqpro-phone-fraud-scanner",
                "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/ntriqpro~phone-fraud-scanner/run-sync": {
            "post": {
                "operationId": "run-sync-ntriqpro-phone-fraud-scanner",
                "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": [
                    "phoneNumbers",
                    "disclaimerAck"
                ],
                "properties": {
                    "phoneNumbers": {
                        "title": "Phone Numbers",
                        "type": "array",
                        "description": "Array of phone numbers to score for fraud risk. International format with country code preferred (e.g. +14155552671). Can also accept national format numbers if defaultCountry is specified.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "defaultCountry": {
                        "title": "Default Country Code",
                        "type": "string",
                        "description": "ISO country code (e.g. US, GB, FR) for parsing numbers without country prefix. Optional."
                    },
                    "disclaimerAck": {
                        "title": "I acknowledge the legal disclaimer",
                        "type": "boolean",
                        "description": "Required. By checking this you confirm that (1) you will use this Actor only for lawful purposes such as fraud prevention, authorized security research, KYC onboarding, or investigation of numbers you are authorized to investigate; (2) you will not use results to harass, stalk, dox, or harm any person; (3) you are responsible for compliance with applicable privacy laws (GDPR/CCPA/PIPA/etc.). This Actor returns public validation metadata only and stores no personal data."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
