# Peopleperhour Jobs Search Scraper (`soft_alexist/peopleperhour-jobs-search-scraper`) Actor

Scrape freelancer service listings from PeoplePerHour with precision. Collect 25+ fields including pricing, ratings, contact details, and seller information — perfect for market research, competitive analysis, and talent scouting in the freelance economy.

- **URL**: https://apify.com/soft\_alexist/peopleperhour-jobs-search-scraper.md
- **Developed by:** [Soft Alexist](https://apify.com/soft_alexist) (community)
- **Categories:** Automation, Developer tools, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## PeoplePerHour Jobs Search Scraper: Extract Freelance Service Listings at Scale

---

### What Is PeoplePerHour?

PeoplePerHour is a global marketplace where freelancers offer services (called "Hourlies") across categories like technology, design, writing, and marketing. The platform hosts hundreds of thousands of active listings, with new services added constantly. Manually collecting data from search results is impractical — the **PeoplePerHour Jobs Search Scraper** automates extraction, capturing detailed service information in structured format.

---

### Overview

The **PeoplePerHour Jobs Search Scraper** extracts freelancer service listings from PeoplePerHour category and search pages, transforming unstructured web content into clean, machine-readable records. Ideal for:

- **Talent researchers** mapping freelance market supply and demand
- **Competitive analysts** benchmarking service pricing and reviewer ratings
- **Business intelligence teams** building datasets for labor market insights
- **Platform developers** aggregating freelance service data
- **Recruiter platforms** identifying and profiling freelance talent

The scraper is configurable, resilient (with `ignore_url_failures`), and scalable up to 200 items per URL.

---

### Input Format

The scraper accepts a JSON configuration:

```json
{
  "urls": [
    "https://www.peopleperhour.com/services/technology-programming/website-development?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

| Parameter | Type | Description |
|---|---|---|
| `urls` | Array | List of PeoplePerHour category, search, or filter pages to scrape. Accepts full URLs with pagination parameters (e.g., `?page=2`). Add multiple URLs for batch collection. |
| `max_items_per_url` | Integer | Maximum number of service listings to extract per URL (1–200). Default: 20. Set higher for comprehensive data collection. |
| `ignore_url_failures` | Boolean | If `true`, scraper continues even if a URL fails to load or returns no results. Prevents job interruption during bulk runs. |

**Example URL:** `https://www.peopleperhour.com/services/technology-programming/website-development?page=2` targets page 2 of Website Development services.

***

### Output Format

**Sample output**

```json
{
  "hourlie_id": 97838,
  "title": "professional Business Website With Hosting",
  "price": 140,
  "currency": "USD",
  "url": "https://www.peopleperhour.com/hourlie/professional-business-website-with-hosting/97838",
  "image": "https://dw3i9sxi97owk.cloudfront.net/uploads/hourliesAttachments/thumbs/260x195/2026/06/YyWncr7zSF2rRZsvJQrb_web design manchester london.png",
  "image_urls": {
    "260x195": "https://dw3i9sxi97owk.cloudfront.net/uploads/hourliesAttachments/thumbs/260x195/2026/06/YyWncr7zSF2rRZsvJQrb_web design manchester london.png",
    "110x83": "https://dw3i9sxi97owk.cloudfront.net/uploads/hourliesAttachments/thumbs/110x83/2026/06/YyWncr7zSF2rRZsvJQrb_web design manchester london.png",
    "550x413": "https://dw3i9sxi97owk.cloudfront.net/uploads/hourliesAttachments/thumbs/550x413/2026/06/YyWncr7zSF2rRZsvJQrb_web design manchester london.png",
    "400x303": "https://dw3i9sxi97owk.cloudfront.net/uploads/hourliesAttachments/thumbs/400x303/2026/06/YyWncr7zSF2rRZsvJQrb_web design manchester london.png"
  },
  "attachment_type": "image",
  "contact_url": "/marketing/member/contact?id=337015&job=H97838",
  "rating": 99,
  "featured": false,
  "featured_eligible": true,
  "sales": 136,
  "availability_delivery_days": 3,
  "requirements": "To help us get started smoothly, please provide the following details:\n\n1. Content & Structure: The text, images, and a list of pages/sub-pages you want on the site.\n\n2. Design Inspiration: 2–3 reference websites that match your preferred style and vibe.\n\n3. Branding Assets: Your logo, preferred colors, and any specific brand imagery. (Note: Basic logo design is included for free if you don't have one!)\n\n4. Domain & Hosting: Your login details if you already have them, or let me know if you'd like me to set them up for you.",
  "description": "Get a Professional Website That Wins You Customers. A clean, modern, mobile-ready website built to turn visitors into paying customers. Designed once. Works for years.\n\nTrusted by 500+ businesses across the UK\n✅ PeoplePerHour Certified Top-Rated (5+ Certs)\n✅ 500+ projects delivered — read real reviews\n✅ Top-selling web design service on PPH\n✅ 100% money-back guarantee — no questions asked\n\nYour £100 gets you a complete 4–5 page website:\n\nHome · About · Services · FAQs · Testimonials · Contact\n\nEverything a small business needs to look credible and get found online.\n\nEverything included — no hidden extras:\n\n☑ 1 year FREE web hosting+email account\n☑ FREE basic logo + favicon design\n☑ Mobile-responsive & fast-loading\n☑ Easy to edit yourself as you grow\n☑ SEO-ready + malware protection\n☑ Newsletter signup to grow your list\n☑ GDPR-compliant privacy & cookies policy\n☑ Google Analytics — set up and ready to go\n☑ Free premium stock images\n☑ Ongoing support after launch\n\nReady to get started?\n\nSend me your business name and what you do — I'll send back a free plan within 24 hours. No pressure, no obligation.",
  "short_description": "£100 business website — mobile-ready, SEO-optimised, free hosting & logo included. 500+ happy clients. Top-rated on PeoplePerHour.",
  "is_starred": false,
  "created_at": "2013-12-07 10:19:27",
  "response_time": "Instantly",
  "tag_list": [
    {
      "id": 3230,
      "label": "Landing page design"
    },
    {
      "id": 39293,
      "label": "Responsive website"
    },
    {
      "id": 44495,
      "label": "Website design"
    },
    {
      "id": 44451,
      "label": "Website development"
    }
  ],
  "geoname_id": null,
  "mem_id": 337015,
  "freelancer": {
    "mem_id": "337015",
    "reg_dt": "2012-08-11",
    "public_name": "Noman T",
    "fname": "Noman",
    "lname": "T.",
    "short_name": "Noman T.",
    "photo": "https://dw3i9sxi97owk.cloudfront.net/uploads/thumbs/b519308ad77ab0b65bf615eeb1a21bf5_150x150.jpg",
    "has_photo": true,
    "url": "https://www.peopleperhour.com/freelancer/technology-programming/noman-t-web-designer-web-developer-digital-xxjazq",
    "featured": false,
    "featured_eligible": true,
    "country": "United Kingdom",
    "country_code": "GB",
    "city": "London",
    "currency": "GBP",
    "hourly_rate": "25.00",
    "hourly_rate_converted": 33.3703985486042,
    "about": "Dynamic Web Designer & Developer with a proven track record of creating high-converting websites that drive business growth. I excel at transforming complex ideas into visually stunning and user-centric digital experiences. With a deep understanding of both design and development, I deliver exceptional websites that not only look great but also achieve tangible results.\r\n\r\nMy expertise lies in crafting websites that seamlessly blend aesthetics with functionality. I am passionate about helping businesses make a strong online presence and achieve their digital goals. By combining strategic planning, innovative design, and robust development, I create websites that captivate audiences and drive conversions.\r\n\r\nLet's discuss your project and explore how I can elevate your online presence. Contact me for a complimentary consultation.",
    "job_title": "Web Designer/Web Developer/Digital Marketing Manager",
    "cert": "5",
    "cover_image": "https://dw3i9sxi97owk.cloudfront.net/uploads/covers/443f419b87bf2fc05a10705b7e446d85.png",
    "verified": "1"
  },
  "category_id": 470,
  "category": {
    "subcate_id": "470",
    "cate_id": "42",
    "subcate_name": "Website Development",
    "cate_name": "Technology & Programming",
    "slug": "website-development"
  },
  "from_url": "https://www.peopleperhour.com/services/technology-programming/website-development?page=2"
}
```

Each scraped Hourly (service listing) returns a detailed record with 25+ fields:

#### Service Identification

| Field | Meaning |
|---|---|
| `Hourlie ID` | Unique PeoplePerHour identifier for this service listing |
| `Title` | Service title as displayed on the marketplace |
| `URL` | Direct link to the Hourly detail page |
| `Short Description` | Brief service summary (used in listings) |
| `Description` | Complete service description and details |

#### Pricing & Commercial

| Field | Meaning |
|---|---|
| `Price` | Numeric price amount for the service |
| `Currency` | Currency code (e.g., USD, GBP, EUR) |
| `Availability Delivery Days` | Estimated days to complete/deliver the service |
| `Requirements` | Prerequisites or info seller requests from buyers |

#### Ratings & Performance

| Field | Meaning |
|---|---|
| `Rating` | Numeric seller/service rating (e.g., 4.8 out of 5) |
| `Sales` | Number of times this specific Hourly has been purchased |
| `Response Time` | Seller's typical response time (e.g., "within 2 hours") |
| `Is Starred` | Boolean: whether the service is starred/favorited by the buyer's profile |
| `Featured` | Boolean: whether the listing has paid featured placement |
| `Featured Eligible` | Boolean: whether the listing is eligible for featured status |

#### Seller & Member Data

| Field | Meaning |
|---|---|
| `Freelancer` | Seller's username/profile name |
| `Member ID` | Unique identifier for the seller account |
| `Geoname ID` | Geographic location identifier (country/region code) |
| `Contact URL` | Link to contact or message the freelancer |

#### Media & Attachments

| Field | Meaning |
|---|---|
| `Image` | Primary service thumbnail image URL |
| `Image URLs` | Array of all images associated with the listing |
| `Attachment Type` | Type of portfolio/sample files (if any) |

#### Categorization

| Field | Meaning |
|---|---|
| `Category` | Service category name (e.g., "Website Development") |
| `Category ID` | Numeric category identifier |
| `Tag List` | Array of skill tags or keywords (e.g., `["React", "Node.js"]`) |

#### Timestamps

| Field | Meaning |
|---|---|
| `Created At` | Date the listing was originally published |

***

### How to Use

1. **Select your target** — Visit PeoplePerHour.com, navigate to a category (e.g., Technology → Website Development), and apply filters if needed.
2. **Copy the URL** — Grab the full page URL, including query parameters like `?page=2` for pagination.
3. **Configure the scraper** — Paste URLs into the `urls` array. Set `max_items_per_url` based on your data needs (higher = more items per page, longer runtime).
4. **Enable error tolerance** — Set `ignore_url_failures: true` for resilience during bulk runs.
5. **Execute** — Start the scraper and monitor progress via logs.
6. **Export & analyze** — Download results as JSON, CSV, or Excel for business intelligence, market research, or CRM integration.

**Best practices:**

- Use pagination (`?page=1`, `?page=2`, etc.) to distribute load across multiple runs.
- Set `max_items_per_url` to 200 for complete category snapshots; lower values for quick samples.
- Include `ignore_url_failures: true` when scraping multiple pages to avoid cascading failures.

***

### Use Cases & Business Value

- **Market benchmarking:** Track average pricing and rating trends across service categories
- **Talent acquisition:** Identify top-rated freelancers and filter by skills (via `Tag List`)
- **Competitive intelligence:** Monitor competitor Hourlies, pricing strategies, and sales volume
- **Platform development:** Build job boards, talent networks, or freelance aggregators powered by PeoplePerHour data
- **Research:** Analyze freelance labor supply, pricing elasticity, and seller performance metrics

The scraper delivers actionable insights in minutes, eliminating weeks of manual browsing and data entry.

***

### Conclusion

The **PeoplePerHour Jobs Search Scraper** unlocks structured data from one of the world's largest freelance marketplaces. With 25+ fields per listing and flexible configuration, it empowers researchers, businesses, and developers to harness freelance market intelligence at scale. Extract your first dataset today and gain competitive advantage in the gig economy.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.peopleperhour.com/services/technology-programming/website-development?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://www.peopleperhour.com/services/technology-programming/website-development?page=2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("soft_alexist/peopleperhour-jobs-search-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 = {
    "urls": ["https://www.peopleperhour.com/services/technology-programming/website-development?page=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("soft_alexist/peopleperhour-jobs-search-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 '{
  "urls": [
    "https://www.peopleperhour.com/services/technology-programming/website-development?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call soft_alexist/peopleperhour-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Peopleperhour Jobs Search Scraper",
        "description": "Scrape freelancer service listings from PeoplePerHour with precision. Collect 25+ fields including pricing, ratings, contact details, and seller information — perfect for market research, competitive analysis, and talent scouting in the freelance economy.",
        "version": "0.0",
        "x-build-id": "Zs9HBkp0UnXziuT4I"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/soft_alexist~peopleperhour-jobs-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-soft_alexist-peopleperhour-jobs-search-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/soft_alexist~peopleperhour-jobs-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-soft_alexist-peopleperhour-jobs-search-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/soft_alexist~peopleperhour-jobs-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-soft_alexist-peopleperhour-jobs-search-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",
                "properties": {
                    "urls": {
                        "title": "URLs of the Jobs list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
