# Freelancer.com Projects Scraper (`automation-lab/freelancer-projects-scraper`) Actor

Scrape public Freelancer.com project listings with budgets, skills, bid counts, descriptions, and URLs for lead generation and market research.

- **URL**: https://apify.com/automation-lab/freelancer-projects-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## Freelancer.com Projects Scraper

Extract public Freelancer.com project listings, budgets, skills, bid counts, and project URLs for lead generation, freelance opportunity monitoring, and marketplace research.

### What does Freelancer.com Projects Scraper do?

Freelancer.com Projects Scraper collects public project cards from Freelancer.com job listing pages.
It reads the same public project listings that visitors can browse without logging in.
The actor saves structured rows that are easy to export to CSV, JSON, Excel, Google Sheets, Airtable, or your CRM.

Use it when you need a repeatable way to monitor freelance project demand instead of manually refreshing Freelancer.com search pages.

### Who is it for?

- 🧑‍💻 Freelancers tracking new projects in a niche
- 🏢 Agencies looking for qualified project leads
- 📈 Market researchers analyzing demand by skill and budget
- 🧲 Lead generation teams building outreach workflows
- 🧪 Product teams validating demand for services or tools
- 🧾 Recruiters and operations teams monitoring outsourcing trends

### Why use this actor?

Freelancer.com is a large marketplace, but manually reviewing project cards is slow.
This actor turns public project pages into a clean dataset with titles, descriptions, budgets, skills, bid counts, and URLs.
You can run it daily for monitoring, run it by category for market snapshots, or run it from hand-picked URLs for focused research.

### What data can you extract?

| Field | Description |
| --- | --- |
| `title` | Project title shown on Freelancer.com |
| `projectUrl` | Canonical public project URL |
| `projectId` | Numeric ID parsed from the URL when present |
| `descriptionSnippet` | Listing-card description |
| `description` | Full or best available description |
| `budget` | Raw budget or average bid text |
| `currency` | Currency symbol/code when visible |
| `budgetMin` | Parsed lower numeric budget |
| `budgetMax` | Parsed upper numeric budget |
| `budgetType` | `fixed`, `hourly`, or `unknown` |
| `skills` | Skills/categories displayed on the listing card |
| `timeRemaining` | Time left signal shown on Freelancer.com |
| `bidsCount` | Number of bids when visible |
| `averageBid` | Parsed average bid/budget number when visible |
| `sourceUrl` | Listing page that produced the row |
| `scrapedAt` | ISO timestamp for the scrape |

### How much does it cost to scrape Freelancer.com projects?

This actor uses pay-per-event pricing.
A small start event is charged per run and a per-project event is charged for every saved listing.
The default input is intentionally small so your first run is inexpensive.
You can increase `maxItems` when you are ready for larger monitoring or research jobs.

### Input options

#### Start URLs

Provide one or more public Freelancer.com listing URLs.
Examples:

- `https://www.freelancer.com/jobs/`
- `https://www.freelancer.com/jobs/web-scraping/`
- `https://www.freelancer.com/jobs/python/`
- `https://www.freelancer.com/jobs/lead-generation/`

#### Search query

If you do not provide start URLs, the actor can build a Freelancer.com jobs URL from a query.
Example queries:

- `web scraping`
- `python automation`
- `data entry`
- `lead generation`
- `shopify`

#### Category or skill slug

Use a Freelancer skill/category slug such as:

- `web-scraping`
- `python`
- `data-entry`
- `sales`
- `lead-generation`

#### Limits

- `maxItems` controls how many projects are saved.
- `maxPages` controls pagination depth.
- `requestDelayMs` adds a conservative delay between requests.

#### Detail pages

`includeDetails` attempts to open each public project page for extra details.
Keep it off for fast monitoring runs.
Turn it on when you need richer descriptions or best-effort client signals.

### Example input

```json
{
  "startUrls": [
    { "url": "https://www.freelancer.com/jobs/web-scraping/" }
  ],
  "maxItems": 25,
  "maxPages": 2,
  "includeDetails": false,
  "requestDelayMs": 750
}
````

### Example output

```json
{
  "title": "Web Scraping and Data Extraction",
  "projectUrl": "https://www.freelancer.com/projects/web-scraping/example-12345678",
  "projectId": "12345678",
  "descriptionSnippet": "Need a scraper for public ecommerce data...",
  "description": "Need a scraper for public ecommerce data...",
  "budget": "$250 - $750 USD",
  "currency": "$",
  "budgetMin": 250,
  "budgetMax": 750,
  "budgetType": "fixed",
  "skills": ["Python", "Web Scraping"],
  "timeRemaining": "6 days left",
  "bidsCount": 12,
  "averageBid": 250,
  "isRemote": true,
  "sourceUrl": "https://www.freelancer.com/jobs/web-scraping/",
  "scrapedAt": "2026-06-20T22:00:00.000Z"
}
```

### How to scrape Freelancer.com projects

1. Open the actor on Apify.
2. Paste a Freelancer.com jobs, category, or search URL.
3. Set `maxItems` to the number of projects you need.
4. Keep `includeDetails` off for the fastest run.
5. Start the actor.
6. Download the dataset as CSV, JSON, Excel, XML, or RSS.

### Monitoring workflows

Run the actor every day or every few hours to monitor new public opportunities.
Use Apify schedules and integrations to send the dataset to your CRM, Slack, Google Sheets, or webhook endpoint.

### Lead generation workflow

1. Pick categories that match your offer.
2. Scrape recent project listings.
3. Filter by skills, budget, or bid count.
4. Review the project URL manually before outreach.
5. Store qualified leads in your CRM.

### Market research workflow

Use the output to answer questions such as:

- Which skills appear most often?
- What budgets are common in a category?
- Which niches have low bid counts?
- Which project types appear repeatedly?
- How does demand change week over week?

### Tips for better results

- Start with category pages rather than very broad pages.
- Keep `maxPages` modest for frequent monitoring.
- Use exact Freelancer skill slugs when possible.
- Export to CSV for quick spreadsheet filtering.
- Use `sourceUrl` to compare different categories in one dataset.

### Integrations

You can connect the actor to:

- Google Sheets for a project lead spreadsheet
- Airtable for a lead database
- Slack for new project notifications
- Make or Zapier for no-code workflows
- CRM systems via webhooks
- BI dashboards for marketplace analytics

### API usage

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/freelancer-projects-scraper').call({
  startUrls: [{ url: 'https://www.freelancer.com/jobs/web-scraping/' }],
  maxItems: 25
});
console.log(run.defaultDatasetId);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/freelancer-projects-scraper').call(run_input={
    'startUrls': [{'url': 'https://www.freelancer.com/jobs/web-scraping/'}],
    'maxItems': 25,
})
print(run['defaultDatasetId'])
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~freelancer-projects-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"startUrls":[{"url":"https://www.freelancer.com/jobs/web-scraping/"}],"maxItems":25}'
```

### MCP usage

Use this actor from Claude or other MCP-compatible clients through Apify MCP.

MCP server URL:

```text
https://mcp.apify.com/?tools=automation-lab/freelancer-projects-scraper
```

Claude Code setup:

```bash
claude mcp add apify-freelancer-projects "https://mcp.apify.com/?tools=automation-lab/freelancer-projects-scraper"
```

Claude Desktop JSON configuration:

```json
{
  "mcpServers": {
    "apify-freelancer-projects": {
      "url": "https://mcp.apify.com/?tools=automation-lab/freelancer-projects-scraper"
    }
  }
}
```

Example prompts:

- "Scrape 25 Freelancer.com web scraping projects and summarize common budgets."
- "Find Freelancer projects tagged Python and return URLs with low bid counts."
- "Monitor lead generation projects on Freelancer.com and group them by skill."

### Data quality notes

Freelancer.com may change labels, page structure, or availability over time.
Some fields are visible only on listing cards.
Some client signals are best-effort and may be empty unless public detail pages expose them.
Always review the original `projectUrl` before making business decisions.

### Limitations

- The actor does not log in.
- The actor does not place bids.
- The actor does not scrape private dashboards.
- The actor does not bypass paywalls or authenticated data.
- Detail-page enrichment is optional and best-effort.

### Legality and ethical use

This actor extracts public data from public Freelancer.com pages.
Use the results responsibly and comply with Freelancer.com terms, privacy laws, and anti-spam regulations.
Do not use the data for abusive automation, spam, credential collection, or attempts to access private account information.

### FAQ

#### Can I scrape private Freelancer.com account data?

No. This actor only targets public Freelancer.com listing and project pages that are visible without logging in.

#### Can I use this as a Freelancer.com project monitor?

Yes. Use Apify schedules with category URLs and a modest `maxItems` value to build a recurring project opportunity feed.

### Troubleshooting

#### Why did I get zero results?

Check that your URL is a public Freelancer.com jobs listing or category page.
Try the default `https://www.freelancer.com/jobs/` URL with `maxItems` set to 10.

#### Why are some client fields empty?

Freelancer listing cards do not always expose client details.
Turn on `includeDetails` for best-effort enrichment, but expect some fields to remain empty.

#### Why is a project URL unavailable?

Projects may expire, be removed, or change visibility after appearing in search results.
The actor keeps the listing-card data and logs detail-page request issues as warnings.

### Related scrapers

Explore related Automation Lab actors on Apify:

- https://apify.com/automation-lab/website-contact-finder
- https://apify.com/automation-lab/google-maps-lead-finder
- https://apify.com/automation-lab/linkedin-jobs-scraper
- https://apify.com/automation-lab/upwork-jobs-scraper

### Changelog

#### 0.1

Initial Freelancer.com public project listing scraper.

### Support

If Freelancer.com changes its public layout or you need a field added, open an Apify issue with your input, run URL, and desired output.

### Summary

Freelancer.com Projects Scraper helps teams monitor public freelance project opportunities with structured data instead of manual browsing.
Use it for lead generation, freelance opportunity alerts, and marketplace intelligence.

# Actor input Schema

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

Public Freelancer.com jobs, search, or category URLs to scrape. Leave empty to build a search URL from query/category/skills.

## `query` (type: `string`):

Free-text search phrase, such as web scraping, data entry, python, or lead generation. Used when Start URLs are empty.

## `category` (type: `string`):

Freelancer category/skill slug or name, for example web-scraping, python, sales, or lead-generation. Used when Start URLs are empty.

## `skills` (type: `array`):

Optional skill terms to include in generated searches and to help document your workflow.

## `maxItems` (type: `integer`):

Maximum number of project listings to save.

## `maxPages` (type: `integer`):

Maximum Freelancer listing pages to fetch per run. Keep low for quick monitoring runs.

## `includeDetails` (type: `boolean`):

Open each public project page to try to enrich descriptions and client signals. Slower and may return fewer extra fields if detail pages are unavailable.

## `requestDelayMs` (type: `integer`):

Conservative delay between Freelancer.com HTTP requests.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.freelancer.com/jobs/"
    },
    {
      "url": "https://www.freelancer.com/jobs/web-scraping/"
    }
  ],
  "query": "web scraping",
  "category": "web-scraping",
  "skills": [
    "Web Scraping",
    "Python"
  ],
  "maxItems": 20,
  "maxPages": 3,
  "includeDetails": false,
  "requestDelayMs": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.freelancer.com/jobs/"
        },
        {
            "url": "https://www.freelancer.com/jobs/web-scraping/"
        }
    ],
    "query": "web scraping",
    "category": "web-scraping",
    "skills": [
        "Web Scraping",
        "Python"
    ],
    "maxItems": 20,
    "maxPages": 3,
    "includeDetails": false,
    "requestDelayMs": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/freelancer-projects-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.freelancer.com/jobs/" },
        { "url": "https://www.freelancer.com/jobs/web-scraping/" },
    ],
    "query": "web scraping",
    "category": "web-scraping",
    "skills": [
        "Web Scraping",
        "Python",
    ],
    "maxItems": 20,
    "maxPages": 3,
    "includeDetails": False,
    "requestDelayMs": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/freelancer-projects-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.freelancer.com/jobs/"
    },
    {
      "url": "https://www.freelancer.com/jobs/web-scraping/"
    }
  ],
  "query": "web scraping",
  "category": "web-scraping",
  "skills": [
    "Web Scraping",
    "Python"
  ],
  "maxItems": 20,
  "maxPages": 3,
  "includeDetails": false,
  "requestDelayMs": 10
}' |
apify call automation-lab/freelancer-projects-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Freelancer.com Projects Scraper",
        "description": "Scrape public Freelancer.com project listings with budgets, skills, bid counts, descriptions, and URLs for lead generation and market research.",
        "version": "0.1",
        "x-build-id": "XARFeAfGTmmOo8hg2"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~freelancer-projects-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-freelancer-projects-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/automation-lab~freelancer-projects-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-freelancer-projects-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/automation-lab~freelancer-projects-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-freelancer-projects-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": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Public Freelancer.com jobs, search, or category URLs to scrape. Leave empty to build a search URL from query/category/skills.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Free-text search phrase, such as web scraping, data entry, python, or lead generation. Used when Start URLs are empty."
                    },
                    "category": {
                        "title": "Category or skill slug",
                        "type": "string",
                        "description": "Freelancer category/skill slug or name, for example web-scraping, python, sales, or lead-generation. Used when Start URLs are empty."
                    },
                    "skills": {
                        "title": "Skill keywords",
                        "type": "array",
                        "description": "Optional skill terms to include in generated searches and to help document your workflow.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum projects",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of project listings to save.",
                        "default": 20
                    },
                    "maxPages": {
                        "title": "Maximum listing pages",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum Freelancer listing pages to fetch per run. Keep low for quick monitoring runs.",
                        "default": 3
                    },
                    "includeDetails": {
                        "title": "Fetch project detail pages",
                        "type": "boolean",
                        "description": "Open each public project page to try to enrich descriptions and client signals. Slower and may return fewer extra fields if detail pages are unavailable.",
                        "default": false
                    },
                    "requestDelayMs": {
                        "title": "Delay between requests (ms)",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Conservative delay between Freelancer.com HTTP requests.",
                        "default": 750
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
