# Reviews.io Automation (`techbe/reviews-io-automation`)

Automated review submission system for Reviews.io platform with advanced human-like behavior simulation, fingerprinting, and anti-detection features.

- **URL**: https://apify.com/techbe/reviews-io-automation.md
- **Developed by:** [Rafael](https://apify.com/techbe) (community)
- **Categories:** Automation, AI, E-commerce
- **Stats:** 1 total users, 1 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 reviews

This Actor is paid per result. You are not charged for the Apify platform usage, but only a fixed price for dataset items the Actor outputs.

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

# README

## Reviews.io Automation Actor

Automated review submission system for Reviews.io platform with advanced human-like behavior simulation, fingerprinting, and anti-detection features.

### Features

- ✅ **Human-like behavior**: Realistic typing, mouse movements, and scrolling patterns
- ✅ **Advanced anti-detection**: Browser fingerprinting and stealth plugins
- ✅ **Configurable timing**: Adjustable typing speed, action delays, and scroll duration
- ✅ **URL parameter support**: Smart merge of URL parameters and input fields
- ✅ **Optional merchant metrics**: Support for 7 different merchant rating fields
- ✅ **Proxy support**: Built-in Apify Proxy integration with residential proxies
- ✅ **Retry logic**: Automatic retry on failures with configurable attempts
- ✅ **Success validation**: Automatic detection of submission confirmation page

### Input Configuration

#### Required Fields

| Field | Type | Description |
|-------|------|-------------|
| reviewText | string | The complete review text to be submitted |

#### Optional Fields

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| reviewUrl | string | - | Complete Reviews.io URL with pre-filled parameters (store, user, email, order\_id, rating). If provided, parameters are extracted and can be overridden by individual input fields |
| rating | integer (1-5) | 5 | Star rating for the review (overrides URL 'rating' param if both provided) |
| reviewerName | string | - | Name of the person submitting the review (overrides URL 'user' param if both provided) |
| reviewerEmail | string | - | Email address of the reviewer (overrides URL 'email' param if both provided) |
| store | string | - | Store domain identifier (overrides URL 'store' param if both provided) |
| orderId | string | - | Order ID for the review (overrides URL 'order\_id' param if both provided) |

#### Store Identification

**Option 1: Provide store and orderId directly**

- store: www-example-store-com
- orderId: ORDER-12345

**Option 2: Provide complete URL with all parameters**

- reviewUrl: https://www.reviews.io/store/landing\_new\_review?store=www-example-store-com\&user=John%20Doe\&email=john@example.com\&order\_id=ORDER-12345\&rating=5

**Option 3: Mix both (input fields override URL parameters)**

- reviewUrl: https://www.reviews.io/store/landing\_new\_review?store=www-example-store-com\&order\_id=ORDER-12345
- reviewerName: "John Doe"
- reviewerEmail: "john@example.com"

#### Timing Configuration

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| minTypingDelay | integer | 50 | Minimum delay between keystrokes (ms) |
| maxTypingDelay | integer | 150 | Maximum delay between keystrokes (ms) |
| minActionDelay | integer | 500 | Minimum delay between actions (ms) |
| maxActionDelay | integer | 3000 | Maximum delay between actions (ms) |
| minScrollDuration | integer | 1000 | Minimum scroll animation duration (ms) |
| maxScrollDuration | integer | 3000 | Maximum scroll animation duration (ms) |

#### Optional Merchant Metrics

Available fields:

- deliveryOnTime: "Yes", "No"
- deliveryMethod: "Courier", "Postal Service", "Own Driver"
- itemDamaged: "Yes", "No"
- deliveryDays: "Next Day", "Within 5 Days", "Over 7 Days", "Over a month"
- communicationMethod: "Live Chat", "Email", "Telephone"
- companyReplySpeed: "Under an hour", "2-3 Hours", "3-6 Hours", "6-12 Hours", "Over a week"
- customerServiceRating: 0-5 (0 = skip, 1-5 = stars)

#### Other Options

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| submitAnonymously | boolean | false | Submit review anonymously |
| useProxy | boolean | true | Enable proxy usage |
| headless | boolean | true | Run browser in headless mode |
| maxRetries | integer | 3 | Maximum retry attempts on failure |
| screenshotOnFailure | boolean | true | Capture screenshot on errors |

### Example Input

#### Minimal Input (using reviewUrl with all parameters)

```json
{
  "reviewUrl": "https://www.reviews.io/store/landing_new_review?store=example-store&user=John%20Doe&email=john.doe@example.com&order_id=ORDER-12345&rating=5",
  "reviewText": "Amazing quality! The product exceeded my expectations."
}
```

#### Full Input (with all optional fields)

```json
{
  "store": "www-example-store-com",
  "orderId": "ORDER-12345",
  "reviewText": "Amazing quality! The product exceeded my expectations. Fast shipping and great customer service. Will definitely order again.",
  "rating": 5,
  "reviewerName": "John Doe",
  "reviewerEmail": "john.doe@example.com",
  "deliveryOnTime": "Yes",
  "deliveryMethod": "Courier",
  "itemDamaged": "No",
  "deliveryDays": "Within 5 Days",
  "submitAnonymously": false,
  "minTypingDelay": 50,
  "maxTypingDelay": 150,
  "minActionDelay": 500,
  "maxActionDelay": 3000,
  "minScrollDuration": 1000,
  "maxScrollDuration": 3000,
  "useProxy": true,
  "headless": true,
  "maxRetries": 3,
  "screenshotOnFailure": true
}
```

### How It Works

#### URL Construction

The Actor intelligently merges URL parameters with input fields:

1. Extracts all parameters from `reviewUrl` (if provided)
2. Overrides with explicit input fields (if provided)
3. Applies defaults for missing required parameters (rating=5, type=company)

**Priority**: Input fields > URL parameters > Defaults

**Example**:

- reviewUrl has `rating=4`
- Input has `rating=3`
- **Result**: Uses `rating=3` (input overrides URL)

#### Human-like Behavior Simulation

**Typing**

- Character-by-character input with random delays
- Occasional thinking pauses between words

**Mouse Movement**

- Bezier curve trajectories for smooth natural paths
- Random target points within clickable elements
- Variable speed (slower at start/end, faster in middle)

**Scrolling**

- Ultra-smooth 60fps frame-by-frame animation
- Sine wave easing for natural acceleration/deceleration
- Random micro-pauses simulating reading behavior
- Configurable duration (3-15 seconds)

**Clicking**

- 10-step validation process before each click
- Ensures element is visible in viewport with 50px safety margin
- Automatic scroll-to-element if needed
- Hover delay before click

#### Anti-Detection Features

- Browser Fingerprinting: Realistic device fingerprints
- Stealth Mode: Playwright Extra with stealth plugins
- Residential Proxies: Apify Proxy with rotating IPs
- Random User Agents: Latest Chrome and Firefox user agents
- Natural Timing: All delays randomized within configured ranges

#### Robust Error Handling

- Automatic retry on failures (configurable attempts)
- Screenshot capture on errors
- Detailed error logging
- Graceful fallbacks for missing optional fields

### Best Practices

1. Use Residential Proxies: Enable useProxy for better success rates
2. Slow Down: Use higher scroll and action delays for maximum human-likeness
3. Vary Timing: Use wide ranges for delays to avoid pattern detection
4. Test First: Run with headless=false locally to verify behavior
5. Monitor Success: Check screenshots and logs for any issues

### Limitations

- Only works with Reviews.io platform
- Requires valid store and order ID
- Some merchant metrics may not be available for all stores
- Rate limiting may apply (use delays appropriately)

### Need Custom Automation?

**Looking for a tailored automation solution for your business?**

I specialize in building high-quality, production-ready automation systems like this one. Whether you need web scraping, form automation, data extraction, or custom integrations, I can help bring your project to life.

#### 📬 Contact & Hire Me

- **Portfolio & Services**: [Fiverr - Tech\_Be](https://www.fiverr.com/tech_be)
- **Enterprise Projects**: [Upwork Profile](https://www.upwork.com/freelancers/~01f0abcf70bbd95376)
- **GitHub**: [TechBeme](https://github.com/TechBeme)
- **Business Email**: <apify@techbe.me>

💡 **Get a free quote** for your automation needs - from simple scripts to complex enterprise solutions!

### License

This Actor is provided as-is for use on the Apify platform.

# Actor input Schema

## `store` (type: `string`):

The store domain identifier. Required if not provided in reviewUrl.

## `orderId` (type: `string`):

The order ID for this review. Optional - can be provided in reviewUrl or here.

## `reviewUrl` (type: `string`):

Reviews.io URL with parameters.

## `reviewText` (type: `string`):

The complete review text to be submitted. Will be typed character by character with natural delays.

## `rating` (type: `integer`):

Star rating for the review (1 to 5 stars).

## `reviewerName` (type: `string`):

Name of the person submitting the review.

## `reviewerEmail` (type: `string`):

Email address of the reviewer.

## `minTypingDelay` (type: `integer`):

Minimum delay between keystrokes in milliseconds.

## `maxTypingDelay` (type: `integer`):

Maximum delay between keystrokes in milliseconds.

## `minActionDelay` (type: `integer`):

Minimum delay between major actions (clicks, navigation) in milliseconds.

## `maxActionDelay` (type: `integer`):

Maximum delay between major actions (clicks, navigation) in milliseconds.

## `minScrollDuration` (type: `integer`):

Minimum duration for smooth scrolling animation in milliseconds (recommended: 1000-3000).

## `maxScrollDuration` (type: `integer`):

Maximum duration for smooth scrolling animation in milliseconds (recommended: 2000-5000).

## `useProxy` (type: `boolean`):

Enable residential proxy for unique IP per session (recommended for safety).

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

Apify Proxy configuration. Residential proxies recommended for best results.

## `headless` (type: `boolean`):

Run browser in headless mode (faster, less resources). Set to false for debugging.

## `maxRetries` (type: `integer`):

Maximum number of retry attempts if submission fails.

## `screenshotOnFailure` (type: `boolean`):

Take a screenshot and save to key-value store if submission fails.

## `deliveryOnTime` (type: `string`):

Optional merchant metric question.

## `deliveryMethod` (type: `string`):

Optional merchant metric question.

## `itemDamaged` (type: `string`):

Optional merchant metric question.

## `deliveryDays` (type: `string`):

Optional merchant metric question.

## `communicationMethod` (type: `string`):

Optional merchant metric question.

## `companyReplySpeed` (type: `string`):

Optional merchant metric question.

## `customerServiceRating` (type: `integer`):

Optional merchant metric question - rating from 1 to 5 stars. Use 0 to skip.

## `submitAnonymously` (type: `boolean`):

Submit the review anonymously (name hidden from public but visible to company).

## `forceResubmit` (type: `boolean`):

If true, will resubmit the review even if one already exists for this order. If false, will return success with a message that review already exists.

## Actor input object example

```json
{
  "store": "www-example-store-com",
  "orderId": "ORDER-12345",
  "reviewUrl": "https://www.reviews.io/store/landing_new_review?store=example-store",
  "reviewText": "Great service! I was very satisfied with the product quality and customer support.",
  "rating": 5,
  "reviewerName": "John Doe",
  "reviewerEmail": "john.doe@example.com",
  "minTypingDelay": 50,
  "maxTypingDelay": 150,
  "minActionDelay": 500,
  "maxActionDelay": 3000,
  "minScrollDuration": 1000,
  "maxScrollDuration": 3000,
  "useProxy": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "headless": true,
  "maxRetries": 3,
  "screenshotOnFailure": true,
  "deliveryOnTime": "",
  "deliveryMethod": "",
  "itemDamaged": "",
  "deliveryDays": "",
  "communicationMethod": "",
  "companyReplySpeed": "",
  "customerServiceRating": 0,
  "submitAnonymously": false,
  "forceResubmit": false
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

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

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

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

```

## Python example

```python
from apify_client import ApifyClient

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

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("techbe/reviews-io-automation").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call techbe/reviews-io-automation --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Reviews.io Automation",
        "description": "Automated review submission system for Reviews.io platform with advanced human-like behavior simulation, fingerprinting, and anti-detection features.",
        "version": "1.0",
        "x-build-id": "8CTgmAG2HWUkbZsAr"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/techbe~reviews-io-automation/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-techbe-reviews-io-automation",
                "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/techbe~reviews-io-automation/runs": {
            "post": {
                "operationId": "runs-sync-techbe-reviews-io-automation",
                "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/techbe~reviews-io-automation/run-sync": {
            "post": {
                "operationId": "run-sync-techbe-reviews-io-automation",
                "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": [
                    "reviewText"
                ],
                "properties": {
                    "store": {
                        "title": "Store Domain",
                        "type": "string",
                        "description": "The store domain identifier. Required if not provided in reviewUrl."
                    },
                    "orderId": {
                        "title": "Order ID",
                        "type": "string",
                        "description": "The order ID for this review. Optional - can be provided in reviewUrl or here."
                    },
                    "reviewUrl": {
                        "title": "Review Page URL (Optional)",
                        "type": "string",
                        "description": "Reviews.io URL with parameters."
                    },
                    "reviewText": {
                        "title": "Review Text",
                        "type": "string",
                        "description": "The complete review text to be submitted. Will be typed character by character with natural delays."
                    },
                    "rating": {
                        "title": "Rating (1-5 stars)",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Star rating for the review (1 to 5 stars).",
                        "default": 5
                    },
                    "reviewerName": {
                        "title": "Reviewer Name",
                        "type": "string",
                        "description": "Name of the person submitting the review."
                    },
                    "reviewerEmail": {
                        "title": "Reviewer Email",
                        "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
                        "type": "string",
                        "description": "Email address of the reviewer."
                    },
                    "minTypingDelay": {
                        "title": "Minimum Typing Delay (ms)",
                        "minimum": 20,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Minimum delay between keystrokes in milliseconds.",
                        "default": 50
                    },
                    "maxTypingDelay": {
                        "title": "Maximum Typing Delay (ms)",
                        "minimum": 50,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum delay between keystrokes in milliseconds.",
                        "default": 150
                    },
                    "minActionDelay": {
                        "title": "Minimum Action Delay (ms)",
                        "minimum": 500,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Minimum delay between major actions (clicks, navigation) in milliseconds.",
                        "default": 500
                    },
                    "maxActionDelay": {
                        "title": "Maximum Action Delay (ms)",
                        "minimum": 1000,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum delay between major actions (clicks, navigation) in milliseconds.",
                        "default": 3000
                    },
                    "minScrollDuration": {
                        "title": "Minimum Scroll Duration (ms)",
                        "minimum": 1000,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Minimum duration for smooth scrolling animation in milliseconds (recommended: 1000-3000).",
                        "default": 1000
                    },
                    "maxScrollDuration": {
                        "title": "Maximum Scroll Duration (ms)",
                        "minimum": 2000,
                        "maximum": 15000,
                        "type": "integer",
                        "description": "Maximum duration for smooth scrolling animation in milliseconds (recommended: 2000-5000).",
                        "default": 3000
                    },
                    "useProxy": {
                        "title": "Use Proxy",
                        "type": "boolean",
                        "description": "Enable residential proxy for unique IP per session (recommended for safety).",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify Proxy configuration. Residential proxies recommended for best results.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "headless": {
                        "title": "Headless Mode",
                        "type": "boolean",
                        "description": "Run browser in headless mode (faster, less resources). Set to false for debugging.",
                        "default": true
                    },
                    "maxRetries": {
                        "title": "Maximum Retries",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of retry attempts if submission fails.",
                        "default": 3
                    },
                    "screenshotOnFailure": {
                        "title": "Screenshot on Failure",
                        "type": "boolean",
                        "description": "Take a screenshot and save to key-value store if submission fails.",
                        "default": true
                    },
                    "deliveryOnTime": {
                        "title": "Was your delivery on time?",
                        "enum": [
                            "",
                            "Yes",
                            "No"
                        ],
                        "type": "string",
                        "description": "Optional merchant metric question.",
                        "default": ""
                    },
                    "deliveryMethod": {
                        "title": "Who made the delivery?",
                        "enum": [
                            "",
                            "Courier",
                            "Postal Service",
                            "Own Driver"
                        ],
                        "type": "string",
                        "description": "Optional merchant metric question.",
                        "default": ""
                    },
                    "itemDamaged": {
                        "title": "Was the item damaged?",
                        "enum": [
                            "",
                            "Yes",
                            "No"
                        ],
                        "type": "string",
                        "description": "Optional merchant metric question.",
                        "default": ""
                    },
                    "deliveryDays": {
                        "title": "How many days did the delivery take?",
                        "enum": [
                            "",
                            "Next Day",
                            "Within 5 Days",
                            "Over 7 Days",
                            "Over a month"
                        ],
                        "type": "string",
                        "description": "Optional merchant metric question.",
                        "default": ""
                    },
                    "communicationMethod": {
                        "title": "How did you communicate with the company?",
                        "enum": [
                            "",
                            "Live Chat",
                            "Email",
                            "Telephone"
                        ],
                        "type": "string",
                        "description": "Optional merchant metric question.",
                        "default": ""
                    },
                    "companyReplySpeed": {
                        "title": "How quick did the company reply to your queries?",
                        "enum": [
                            "",
                            "Under an hour",
                            "2 - 3 Hours",
                            "3 - 6 Hours",
                            "6 - 12 Hours",
                            "Over a week"
                        ],
                        "type": "string",
                        "description": "Optional merchant metric question.",
                        "default": ""
                    },
                    "customerServiceRating": {
                        "title": "How would you rate the customer service you received? (1-5 stars)",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Optional merchant metric question - rating from 1 to 5 stars. Use 0 to skip.",
                        "default": 0
                    },
                    "submitAnonymously": {
                        "title": "Submit Anonymously",
                        "type": "boolean",
                        "description": "Submit the review anonymously (name hidden from public but visible to company).",
                        "default": false
                    },
                    "forceResubmit": {
                        "title": "Force Resubmit (Ignore Existing Review)",
                        "type": "boolean",
                        "description": "If true, will resubmit the review even if one already exists for this order. If false, will return success with a message that review already exists.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
