# Avisverifies Reviews Scraper (`reviewly/avisverifies-reviews-scraper`) Actor

Scrapes customer reviews from avis-verifies.com with pagination, date filtering, deduplication, and proxy support.

- **URL**: https://apify.com/reviewly/avisverifies-reviews-scraper.md
- **Developed by:** [Reviewly](https://apify.com/reviewly) (community)
- **Categories:** Automation, Other, Agents
- **Stats:** 4 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 record scrapeds

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Avis Vérifiés Reviews Scraper — Extract Customer Reviews at Scale

**Turn avis-verifies.com into a structured data feed.** Scrape customer reviews from any company page on Avis Vérifiés — with full pagination, date filtering, deduplication, and residential proxy support — in minutes, with no coding required.

- Scrape hundreds or thousands of reviews automatically
- Filter by date to only get what's new
- Run multiple companies in a single actor run
- Get clean, structured JSON — ready for analysis

---

### 📌 What This Actor Does

[Avis Vérifiés](https://www.avis-verifies.com) is one of France's leading certified review platforms, trusted by thousands of e-commerce and service companies. This Apify Actor scrapes all publicly available customer reviews from any company profile page on the platform.

It handles pagination automatically, rotating through every review page until your limits are reached — extracting review text, ratings, author names, publication dates, experience dates, and official company responses into a single structured dataset.

**Who is this for?**

- **E-reputation agencies** monitoring client reviews across platforms
- **Marketing & CX teams** tracking customer sentiment over time
- **Competitive intelligence analysts** benchmarking a brand against competitors
- **Developers & data engineers** building review pipelines or dashboards
- **Business owners** consolidating Avis Vérifiés data for CRM or reporting tools

---

### ✨ Key Features

- **Full pagination** — automatically scrapes every review page, not just the first
- **Multi-company support** — add multiple URLs and scrape them all in one run
- **Date filtering** — set a `targetDate` to only pull reviews from a specific period onwards (ideal for incremental runs)
- **Max reviews cap** — set a hard limit per company, or leave it at `0` for unlimited
- **Deduplication** — automatically skips duplicate reviews across paginated pages
- **Residential proxy support** — uses Apify's residential proxies to stay undetected
- **Exponential backoff retry** — automatically retries failed requests up to 10 times
- **Official response detection** — flags whether a review reply is from the verified company
- **Multi-layout support** — handles all known Avis Vérifiés page layouts (legacy, schema.org, new SKP)

---

### 🧠 Why This Actor is Different

Most generic scrapers break the moment a platform updates its HTML. This actor supports **three distinct page layouts** that Avis Vérifiés has used across different company profiles — so it works reliably whether you're scraping a legacy profile or a freshly redesigned one.

It also goes beyond raw HTML extraction:

| Feature | Generic scraper | This actor |
|---|---|---|
| Multi-layout support | ❌ | ✅ |
| Incremental date filtering | ❌ | ✅ |
| Deduplication across pages | ❌ | ✅ |
| Official reply detection | ❌ | ✅ |
| Exponential backoff retry | ❌ | ✅ |
| Experience date vs. publish date | ❌ | ✅ |
| Reviews grouped by company | ❌ | ✅ |

---

### ⚙️ Input Configuration

#### `startUrls` *(required)*

One or more Avis Vérifiés company review page URLs.

```json
[
  { "url": "https://www.avis-verifies.com/avis-clients/example-shop.fr" },
  { "url": "https://www.avis-verifies.com/avis-clients/another-brand.com" }
]
````

> **Tip:** Find the URL by going to the company's Avis Vérifiés profile and copying it from your browser's address bar. It always follows the pattern `https://www.avis-verifies.com/avis-clients/<company-slug>`.

***

#### `maxNumberOfReviews` *(optional)*

Maximum number of reviews to scrape per company.

- Set to `0` (default) for **no limit** — scrapes all available reviews
- Set to `100` to get only the 100 most recent reviews
- Reviews are scraped newest-first, so capping the count gives you the most recent ones

***

#### `targetDate` *(optional)*

Only scrape reviews published **on or after** this date. Format: `YYYY-MM-DD`.

- Leave empty to scrape all reviews
- Use this for **incremental runs**: set it to the date of your last run to only fetch new reviews
- The actor stops paginating as soon as it hits a review older than this date — saving time and cost

```
2024-01-01
```

***

#### `proxyConfiguration` *(optional)*

Controls the proxy used for requests. Residential proxies are pre-configured and strongly recommended — Avis Vérifiés blocks datacenter IPs.

```json
{
  "useApifyProxy": true,
  "apifyProxyGroups": ["RESIDENTIAL"]
}
```

***

#### Full input example

```json
{
  "startUrls": [
    { "url": "https://www.avis-verifies.com/avis-clients/my-company.fr" }
  ],
  "maxNumberOfReviews": 500,
  "targetDate": "2024-06-01",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

***

### 📤 Output Format

Each item in the dataset represents **one company**, containing its metadata and all scraped reviews grouped together.

#### Sample output record

```json
{
  "entity": {
    "keyword": "Example Shop",
    "totalRating": "4.8",
    "totalReviews": "1243",
    "url": "https://www.avis-verifies.com/avis-clients/example-shop.fr"
  },
  "reviews": [
    {
      "reviewId": "review-abc123",
      "rating": 5,
      "author": "Jean-Pierre M.",
      "reviewBody": "Excellent service, livraison rapide et produit conforme à la description. Je recommande vivement !",
      "answer": {
        "body": "Merci beaucoup pour votre retour ! Nous sommes ravis que tout se soit bien passé.",
        "isOfficial": true
      },
      "createdDate": "2024-07-15T00:00:00.000Z",
      "experiencedDate": "2024-07-10T00:00:00.000Z"
    }
  ]
}
```

#### Field reference

| Field | Type | Description |
|---|---|---|
| `entity.keyword` | `string` | Company name as displayed on Avis Vérifiés |
| `entity.totalRating` | `string` | Overall rating of the company (e.g. `"4.8"`) |
| `entity.totalReviews` | `string` | Total number of reviews on the profile |
| `entity.url` | `string` | Source URL that was scraped |
| `reviews` | `array` | All scraped reviews for this company |
| `reviews[].reviewId` | `string` | Unique identifier for the review |
| `reviews[].rating` | `number` | Review score from 1 to 5 |
| `reviews[].author` | `string` | Reviewer's display name |
| `reviews[].reviewBody` | `string` | Full review text |
| `reviews[].answer.body` | `string` | Company's reply text (if any) |
| `reviews[].answer.isOfficial` | `boolean` | `true` if the reply is from the verified company |
| `reviews[].createdDate` | `string` | ISO 8601 date the review was **published** |
| `reviews[].experiencedDate` | `string` | ISO 8601 date of the **customer's experience** |

***

### ▶️ How to Use

#### Option 1 — Apify Console (no code)

1. Click **Try for free** on the actor page in the Apify Store
2. In the **Input** tab, paste the Avis Vérifiés company URL(s) you want to scrape
3. Optionally set `maxNumberOfReviews` or `targetDate`
4. Click **Run** — results appear in the **Dataset** tab when finished
5. Export as JSON, CSV, or Excel

#### Option 2 — Apify API

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/<ACTOR_ID>/runs?token=<YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "startUrls": [{ "url": "https://www.avis-verifies.com/avis-clients/my-company.fr" }],
    "maxNumberOfReviews": 100,
    "targetDate": "2024-01-01"
  }'
```

#### Option 3 — Schedule for incremental runs

1. Open the actor and click **Schedules**
2. Set a daily or weekly cron (e.g. every Monday at 8:00 AM)
3. Set `targetDate` to only pull the latest reviews each time, avoiding re-scraping what you already have

***

### 📈 Use Cases

#### 1. E-reputation monitoring

Automatically collect new reviews every week and push them into your CRM, Slack, or a Google Sheet to stay on top of customer sentiment without manual checking.

#### 2. Competitive benchmarking

Scrape review pages for your top competitors simultaneously. Compare average ratings, response rates, and recurring complaint themes using the structured output.

#### 3. Review analytics dashboard

Feed the output into a BI tool (Metabase, Power BI, Tableau) to visualize rating trends over time, identify seasonal patterns, or track the impact of product launches on customer satisfaction.

#### 4. Customer feedback pipeline

Import reviews into a sentiment analysis pipeline (e.g. using an NLP model or LLM) to automatically categorize feedback by topic — delivery, quality, support — and prioritize improvements.

#### 5. Agency reporting

Manage reputation for multiple clients from one tool. Pass all client URLs in `startUrls`, get a single consolidated dataset, and generate per-company reports.

***

### 🛠️ Advanced Tips

#### Incremental scraping (recommended for regular runs)

Use `targetDate` to avoid re-scraping reviews you already have:

```json
{
  "targetDate": "2025-05-01"
}
```

The actor stops paginating as soon as it finds a review older than this date — saving compute time and cost.

#### Scraping multiple companies efficiently

Pass all company URLs in a single `startUrls` array. The actor processes them sequentially with a fresh proxy session per company:

```json
{
  "startUrls": [
    { "url": "https://www.avis-verifies.com/avis-clients/company-a.fr" },
    { "url": "https://www.avis-verifies.com/avis-clients/company-b.com" },
    { "url": "https://www.avis-verifies.com/avis-clients/company-c.fr" }
  ]
}
```

#### Controlling costs

- Use `maxNumberOfReviews` to cap output when you only need a sample
- Combine `targetDate` with a weekly schedule to only pay for new reviews on each run

***

### ❓ FAQ & Troubleshooting

**Q: Can I scrape reviews for many companies at once?**
Yes — add all URLs to the `startUrls` array. There is no hard limit on the number of companies per run.

**Q: Why is the actor returning 0 reviews?**
The most common causes are:

1. The URL format is wrong — it must follow `https://www.avis-verifies.com/avis-clients/<company-slug>`
2. The company page has no reviews yet
3. A proxy issue — make sure `useApifyProxy: true` with the `RESIDENTIAL` group is set

**Q: Why are some reviews missing?**
The actor deduplicates by `reviewId`. If a review has no ID on the source page (rare), it may be skipped. Also check that `targetDate` isn't filtering out reviews you expect.

**Q: Does this work for all Avis Vérifiés page layouts?**
Yes. The actor detects and handles three layouts automatically — the legacy list layout, the schema.org markup layout, and the current SKP component layout.

**Q: Are company responses included?**
Yes. The `answer.body` field contains the reply text, and `answer.isOfficial` is `true` when the response is identified as coming from the verified company.

**Q: Does this Actor support authentication or private profiles?**
No. It only scrapes publicly visible review pages.

***

### 📞 Support

Have a question, found a bug, or need a custom feature?

- 📧 Email: <me@ahmedhrid.com>
- 🐛 Issues: Use the **Issues** tab on the actor page in the Apify Store
- 💬 Community: [community.apify.com](https://community.apify.com)

# Actor input Schema

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

One or more avis-verifies.com company review page URLs.

## `maxNumberOfReviews` (type: `integer`):

Maximum number of reviews to scrape per company. Set to 0 (or leave empty) for no limit (paid users only — free users are capped at 50 reviews).

## `targetDate` (type: `string`):

Only scrape reviews published on or after this date (YYYY-MM-DD). Leave empty to scrape all reviews.

## `proxyConfiguration` (type: `object`):

Proxy servers used to avoid rate limiting and blocks. Residential proxies recommended.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.avis-verifies.com/avis-clients/tapisdentree.be"
    }
  ],
  "maxNumberOfReviews": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Each item contains an `entity` object (keyword, totalRating, totalReviews, url) and a `reviews` array. Each review has: reviewId, rating, author, reviewBody, answer, createdDate, experiencedDate.

# 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": [
        {
            "url": "https://www.avis-verifies.com/avis-clients/tapisdentree.be"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("reviewly/avisverifies-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.avis-verifies.com/avis-clients/tapisdentree.be" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("reviewly/avisverifies-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.avis-verifies.com/avis-clients/tapisdentree.be"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call reviewly/avisverifies-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Avisverifies Reviews Scraper",
        "description": "Scrapes customer reviews from avis-verifies.com with pagination, date filtering, deduplication, and proxy support.",
        "version": "0.0",
        "x-build-id": "H1LhjdMbmatIMMzve"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/reviewly~avisverifies-reviews-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-reviewly-avisverifies-reviews-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/reviewly~avisverifies-reviews-scraper/runs": {
            "post": {
                "operationId": "runs-sync-reviewly-avisverifies-reviews-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/reviewly~avisverifies-reviews-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-reviewly-avisverifies-reviews-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Company Review URLs",
                        "type": "array",
                        "description": "One or more avis-verifies.com company review page URLs.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxNumberOfReviews": {
                        "title": "Max reviews per company",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of reviews to scrape per company. Set to 0 (or leave empty) for no limit (paid users only — free users are capped at 50 reviews).",
                        "default": 0
                    },
                    "targetDate": {
                        "title": "Filter reviews after date",
                        "type": "string",
                        "description": "Only scrape reviews published on or after this date (YYYY-MM-DD). Leave empty to scrape all reviews."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy servers used to avoid rate limiting and blocks. Residential proxies recommended.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
