# Freelancer.com Project Scraper (`techforce.global/freelancer`) Actor

Scrape live Freelancer.com projects by keyword with budget, skills & poster info. Filter by budget, export to CSV/JSON/Excel, or deliver leads to Notion, Slack & Jira via MCP connectors.

- **URL**: https://apify.com/techforce.global/freelancer.md
- **Developed by:** [Techforce Global](https://apify.com/techforce.global) (community)
- **Categories:** Agents, Jobs, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 Project Scraper & MCP Connector

Pull **fresh, live projects from Freelancer.com** for any set of keywords — title, budget, required skills, and poster details — without logging in, without an API key, and without clicking through search pages by hand.

Built for freelancers, agencies, and lead-gen teams who want a constant feed of new jobs to bid on, filtered by budget and keyword, delivered straight into the tools they already work in.

> **Give it keywords → get matching projects with budget & poster info → deliver it straight into Notion, Slack, Jira, or your CRM.**

---

### ⭐ Why This Actor?

- ✅ **Just add keywords** — no login, API key, or session tokens required. Uses Freelancer's own public project-search endpoint.
- ✅ **Multiple keywords in one run** — search `python`, `web scraping`, `react` (or any list) in a single Actor call.
- ✅ **Budget filtering built in** — set a minimum and/or maximum budget so you only see projects worth your time.
- ✅ **Rich poster info** — display name, country, and profile URL for every project, so you know who you'd be pitching before you open the listing.
- ✅ **Never silently drops results** — pagination continues per keyword until the limit is hit or Freelancer runs out of matches.
- ✅ **Deliver anywhere via MCP connectors** — push new projects straight into Notion, Slack, Jira, GitHub, Linear, Airtable, and more, as a summary digest, one message per project, or chunked batches.
- ✅ **Export-ready** — JSON, CSV, Excel, or direct API integration for your own pipeline.

---

### 📝 Use Cases & ROI

| Use Case | Time Saved | What You Get |
| --- | --- | --- |
| **Lead generation for freelancers** | 1–2 hrs/day | A live list of new jobs matching your skills, budget, and keywords |
| **Agency bid pipelines** | 3–5 hrs/week | Structured project data ready to route into a CRM or Slack channel |
| **Market & rate research** | 2–4 hrs/batch | Budgets and skill demand across a keyword set, at a glance |
| **Competitor / niche monitoring** | 2–3 hrs/week | See what's being posted in a niche without manually searching |
| **Automated alerting** | Ongoing | New matching projects pushed into Notion/Slack the moment a run finishes |

---

### 🚀 How to Use

1. Open the Actor on Apify.
2. Add one or more **Search Keywords** (e.g. `python`, `web scraping`, `react`).
3. Set **Results Per Keyword** — how many projects to fetch for each keyword (default: `20`, max: `100`).
4. _(Optional)_ Set **Minimum Budget ($)** and/or **Maximum Budget ($)** to filter out projects outside your range (`0` = no limit).
5. _(Optional)_ Pick an **MCP connector** to deliver matching projects into Notion, Slack, Jira, etc.
6. Click **Run** — results stream into the dataset as each keyword is processed.
7. Download as CSV, Excel, or JSON — or let the connector push them into your tools automatically.

> 💡 First time with a connector? Run once with a connector selected — the run log prints the connector's available tool names, so you know what to put in **Connector Tool Name**.

---

### 🧩 Input Configuration

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `keywords` | Array | ✔️ Yes | Keywords to search for on Freelancer.com (e.g. `python`, `web scraping`, `react`). Default: `["python", "web scraping"]`. |
| `limitPerKeyword` | Integer | Optional | How many projects to fetch per keyword (1–100). Default: `20`. |
| `minBudget` | Integer | Optional | Only include projects with a budget above this amount. `0` = no minimum. Default: `0`. |
| `maxBudget` | Integer | Optional | Only include projects with a budget below this amount. `0` = no maximum. Default: `0`. |
| `mcpConnector` | Connector | Optional | Deliver scraped projects into a connector you've authorized (Notion, Slack, Linear, Airtable, Jira, GitHub, or any MCP-compatible connector). Leave empty to only save results to the dataset. |
| `deliveryMode` | Enum | Optional | How to package projects when sending them to the connector: `summary` (one digest call for the whole run), `perProject` (one call per project), `chunked` (a few grouped digest calls), or `none`. Default: `summary`. |
| `mcpTool` | String | Optional | Name of the tool to call on the selected MCP connector (e.g. `create-pages`, `send_message`). |
| `mcpArguments` | Object | Optional | JSON object of arguments to pass to the tool; string values support `{placeholder}` tokens. |
| `mcpMessageTemplate` | String | Optional | Template used to build the `{message}` placeholder available in Tool Arguments. |

#### Example — Search two keywords with a budget floor

```json
{
    "keywords": ["python", "web scraping"],
    "limitPerKeyword": 30,
    "minBudget": 100
}
````

#### Example — Post each matching project to Slack

```json
{
    "keywords": ["react", "node.js"],
    "limitPerKeyword": 20,
    "mcpConnector": "<your-slack-connector>",
    "deliveryMode": "perProject",
    "mcpTool": "send_message",
    "mcpArguments": { "channel": "#leads", "text": "{message}" },
    "mcpMessageTemplate": "*{title}* — {budget}\n\nSkills: {skills}\nPoster: {posterDisplayName} ({posterCountry})\n{projectUrl}"
}
```

#### Example — Create one Notion page per project

```json
{
    "keywords": ["python"],
    "limitPerKeyword": 25,
    "mcpConnector": "<your-notion-connector>",
    "deliveryMode": "perProject",
    "mcpTool": "create-pages",
    "mcpArguments": {
        "parent": { "page_id": "<your-page-id>" },
        "pages": [
            {
                "properties": { "title": "{title}" },
                "content": "{message}"
            }
        ]
    },
    "mcpMessageTemplate": "{title} — {budget}\n\nSkills: {skills}\nPoster: {posterDisplayName} ({posterCountry})\nURL: {projectUrl}"
}
```

#### Example — One summary digest of the whole run

```json
{
    "keywords": ["python", "web scraping"],
    "limitPerKeyword": 20,
    "mcpConnector": "<your-notion-connector>",
    "deliveryMode": "summary",
    "mcpTool": "create-pages",
    "mcpArguments": {
        "parent": { "page_id": "<your-page-id>" },
        "pages": [
            {
                "properties": { "title": "Freelancer Scrape - {projectCount} projects ({keywords})" },
                "content": "{digest}"
            }
        ]
    }
}
```

#### Placeholders available in arguments / template

**Summary & chunked modes:** `{projectCount}` · `{keywords}` · `{digest}` · `{message}`
**Chunked mode adds:** `{part}` · `{partCount}`
**Per-project mode adds:** `{title}` · `{budget}` · `{budgetMin}` · `{budgetMax}` · `{currency}` · `{skills}` · `{posterUsername}` · `{posterDisplayName}` · `{posterCountry}` · `{posterProfileUrl}` · `{projectUrl}` · `{postedAt}` · `{keyword}` · `{message}`

> ⚠️ `{title}`, `{budget}`, `{skills}`, and the other per-project fields only exist in **`perProject`** mode. In `summary` or `chunked` mode, reference `{digest}` (all matching projects formatted as text) instead — unknown placeholders render as empty strings, not errors.

***

### 📦 Output Fields

Every record in the dataset always carries the fields below.

| Field | Description |
| --- | --- |
| `title` | Project title |
| `budget` | Formatted budget range, e.g. `"$250 - $750"`, or `"N/A"` |
| `budgetMin` / `budgetMax` | Raw minimum and maximum budget |
| `currency` | Currency symbol (e.g. `$`) |
| `skills` | Array of required skills/tags |
| `poster.username` / `poster.displayName` / `poster.country` / `poster.profileUrl` | Poster's Freelancer username, display name, country, and profile link |
| `projectUrl` | Direct link to the project on Freelancer.com |
| `postedAt` | ISO timestamp the project was submitted |
| `scrapedAt` | ISO timestamp this Actor scraped it |
| `keyword` | The search keyword that matched this project |

#### Example Output

```json
[
    {
        "title": "Build a Python web scraper for e-commerce sites",
        "budget": "$250 - $750",
        "budgetMin": 250,
        "budgetMax": 750,
        "currency": "$",
        "skills": ["Python", "Web Scraping", "BeautifulSoup"],
        "poster": {
            "username": "janedoe123",
            "displayName": "Jane Doe",
            "country": "United States",
            "profileUrl": "https://www.freelancer.com/u/janedoe123"
        },
        "projectUrl": "https://www.freelancer.com/projects/python/Build-Python-web-scraper",
        "postedAt": "2026-07-19T14:32:00Z",
        "scrapedAt": "2026-07-20T05:44:42Z",
        "keyword": "python"
    }
]
```

> You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

***

### 🔌 Integrations & Delivery

Deliver matching projects into any MCP connector you've authorized in Apify — no glue code, no webhooks:

- **Notion** — create a page per project, or one summary page per run
- **Slack / Discord** — post new leads to a channel as they're found
- **Jira / GitHub / Linear** — open a task or issue per project to track a bid
- **Airtable / Google Sheets** — append a structured row per project
- …or any other MCP-compatible connector

Credentials stay private — delivery runs through the **Apify MCP Proxy**, so the Actor never sees your connector tokens. You can also consume the dataset directly via the **Apify API**, or wire it into **n8n, Zapier, and Make**.

> ⚙️ **Delivery modes:** `summary` sends one digest of all matching projects, `perProject` sends one call per project (so you get per-project placeholders like `{title}` and `{budget}`), `chunked` groups projects into a few digest calls to stay under service size limits, and `none` skips delivery entirely. MCP delivery only runs on the Apify platform and never affects what's saved to the dataset.

***

### 🛠️ How It Works

`my_actor/main.py` reads the input, then:

1. For each keyword, pages through Freelancer's public project-search API (`/api/projects/0.1/projects/active`), applying `minBudget`/`maxBudget` filters and stopping once `limitPerKeyword` is reached or results run out.
2. Normalizes each raw project into title, formatted budget, skills, and poster info, and tags it with the keyword that matched it.
3. Pushes every scraped project to the dataset.
4. If a connector is configured, delivers the projects via MCP — as a summary digest, one call per project, or grouped chunks — without ever affecting what was already saved to the dataset.

**Built with:** [Apify Client for Python](https://docs.apify.com/api/client/python/) · [requests](https://pypi.org/project/requests/) · [MCP](https://modelcontextprotocol.io/)

***

### 🆘 Support

For issues, custom scraping requests, or feature suggestions:

**Email**: bhavin.shah@techforceglobal.com

***

#### Need a Custom Pipeline?

Want multi-keyword batch runs, scheduled refreshes, deeper enrichment, or a full data-warehouse integration?

#### [📅 Book a Free 15-min Consultation](https://calendly.com/techforce-infotech-pvt-ltd/intro-meeting?month=2026-01)

***

Made with ❤️ by **[Techforce](https://www.techforceglobal.com)**
Specialists in High-Performance Web Scrapers and AI Automation.

***

### Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Freelancer.com or Freelancer Technology Pty Limited. Freelancer® is a trademark of its respective owner; all trademarks are property of their respective owners. The Actor collects only publicly available project listings via Freelancer's public search endpoint and does not log into, or scrape behind the authentication of, any platform. Use the data responsibly and in compliance with applicable laws (including GDPR/CCPA) and the terms of the platforms you operate on.

# Actor input Schema

## `keywords` (type: `array`):

Keywords to search for on Freelancer.com (e.g. python, web scraping, react)

## `limitPerKeyword` (type: `integer`):

How many projects to fetch per keyword (max 100)

## `minBudget` (type: `integer`):

Filter projects with budget above this amount (0 = no minimum)

## `maxBudget` (type: `integer`):

Filter projects with budget below this amount (0 = no maximum)

## `mcpConnector` (type: `string`):

Optionally deliver scraped projects into a connector you have authorized - Notion, Slack, Linear, Airtable, Jira, GitHub, or any MCP-compatible connector. Leave empty to only save results to the dataset.

## `deliveryMode` (type: `string`):

How to package projects when sending them to the connector.

## `mcpTool` (type: `string`):

Name of the tool to call on the selected MCP connector (e.g. create-page, send-message).

## `mcpArguments` (type: `object`):

JSON object of arguments to pass to the tool. Use {placeholder} tokens (e.g. {title}, {message}, {digest}, {projectUrl}) which get filled in per delivery.

## `mcpMessageTemplate` (type: `string`):

Template used to build the {message} placeholder available in Tool Arguments. Supports {title}, {budget}, {skills}, {projectUrl}, {digest}, {projectCount}, {keywords}, {part}, {partCount}.

## Actor input object example

```json
{
  "keywords": [
    "python",
    "web scraping"
  ],
  "limitPerKeyword": 20,
  "minBudget": 0,
  "maxBudget": 0,
  "deliveryMode": "summary",
  "mcpTool": "",
  "mcpArguments": {},
  "mcpMessageTemplate": ""
}
```

# Actor output Schema

## `results` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("techforce.global/freelancer").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("techforce.global/freelancer").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 techforce.global/freelancer --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Freelancer.com Project Scraper",
        "description": "Scrape live Freelancer.com projects by keyword with budget, skills & poster info. Filter by budget, export to CSV/JSON/Excel, or deliver leads to Notion, Slack & Jira via MCP connectors.",
        "version": "0.0",
        "x-build-id": "PYAusMKN3Ixs6WpZZ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/techforce.global~freelancer/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-techforce.global-freelancer",
                "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/techforce.global~freelancer/runs": {
            "post": {
                "operationId": "runs-sync-techforce.global-freelancer",
                "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/techforce.global~freelancer/run-sync": {
            "post": {
                "operationId": "run-sync-techforce.global-freelancer",
                "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": [
                    "keywords"
                ],
                "properties": {
                    "keywords": {
                        "title": "Search Keywords",
                        "type": "array",
                        "description": "Keywords to search for on Freelancer.com (e.g. python, web scraping, react)",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "python",
                            "web scraping"
                        ]
                    },
                    "limitPerKeyword": {
                        "title": "Results Per Keyword",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "How many projects to fetch per keyword (max 100)",
                        "default": 20
                    },
                    "minBudget": {
                        "title": "Minimum Budget ($)",
                        "type": "integer",
                        "description": "Filter projects with budget above this amount (0 = no minimum)",
                        "default": 0
                    },
                    "maxBudget": {
                        "title": "Maximum Budget ($)",
                        "type": "integer",
                        "description": "Filter projects with budget below this amount (0 = no maximum)",
                        "default": 0
                    },
                    "mcpConnector": {
                        "title": "Deliver to (MCP connector)",
                        "type": "string",
                        "description": "Optionally deliver scraped projects into a connector you have authorized - Notion, Slack, Linear, Airtable, Jira, GitHub, or any MCP-compatible connector. Leave empty to only save results to the dataset."
                    },
                    "deliveryMode": {
                        "title": "Delivery Mode",
                        "enum": [
                            "summary",
                            "perProject",
                            "chunked",
                            "none"
                        ],
                        "type": "string",
                        "description": "How to package projects when sending them to the connector.",
                        "default": "summary"
                    },
                    "mcpTool": {
                        "title": "Connector Tool Name",
                        "type": "string",
                        "description": "Name of the tool to call on the selected MCP connector (e.g. create-page, send-message).",
                        "default": ""
                    },
                    "mcpArguments": {
                        "title": "Tool Arguments Template",
                        "type": "object",
                        "description": "JSON object of arguments to pass to the tool. Use {placeholder} tokens (e.g. {title}, {message}, {digest}, {projectUrl}) which get filled in per delivery.",
                        "default": {}
                    },
                    "mcpMessageTemplate": {
                        "title": "Message Template",
                        "type": "string",
                        "description": "Template used to build the {message} placeholder available in Tool Arguments. Supports {title}, {budget}, {skills}, {projectUrl}, {digest}, {projectCount}, {keywords}, {part}, {partCount}.",
                        "default": ""
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
