# Upwork Talent Scraper (`crw/upwork-talent-scraper`) Actor

Scrape freelancer profiles from Upwork talent search. Returns name, title, hourly rate, skills, earnings, hours billed, location, and badge status. Filter by keyword, region, timezone, talent type, rate range, and more — up to 1,000 profiles per run. No login required.

- **URL**: https://apify.com/crw/upwork-talent-scraper.md
- **Developed by:** [CRW](https://apify.com/crw) (community)
- **Categories:** Developer tools, Automation, Lead generation
- **Stats:** 3 total users, 2 monthly users, 81.8% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Upwork Talent Search Scraper

Find the right freelancers faster. Search Upwork's entire talent pool and export structured profile data in minutes — no manual browsing, no copy-pasting.

### Why Use This Scraper?

Upwork has over 18 million freelancers. Finding the right ones manually means endless scrolling, tab switching, and spreadsheet copying.

This scraper does that work for you. Set your filters once, run it, and get a clean dataset of matching freelancer profiles — ready to sort, analyze, or import into your workflow.

**Perfect for:**
- 🧑‍💼 **Hiring managers & clients** — Build a shortlist of candidates before even posting a job
- 🏢 **Agencies & recruiters** — Source and compare talent at scale across regions and skill sets
- 📊 **Market researchers** — Analyze freelancer supply, rate distributions, and skill trends by geography
- 🔍 **Competitive intelligence** — Benchmark how talent positions itself in your niche

### What You Get

Each collected profile includes:

| Field | Description |
|-------|-------------|
| **Name & Profile URL** | Direct link to the freelancer's Upwork profile |
| **Professional Title** | How they describe themselves |
| **Overview** | Full profile bio/description |
| **Hourly Rate** | Rate in USD |
| **Skills** | Full list of tagged skills |
| **Location** | Country, city, region, timezone |
| **Total Earnings** | Lifetime earnings on Upwork |
| **Jobs Completed** | Number of contracts finished |
| **Hours Billed** | Total hours worked on platform |
| **Top Rated / Top Rated Plus** | Badge status |
| **ID Verified** | Identity verification status |
| **Portfolio Count** | Number of portfolio items |

### Filters

All filters mirror what you see on Upwork's talent search page — no guessing required.

#### Search & Volume
- **Keyword** — Search by skill, title, or any term (e.g. `"React developer"`, `"logo design"`)
- **Max Results** — Collect anywhere from 1 to 1,000 profiles per run

#### Location
- **Regions** — Africa, Americas, Asia, Europe, Oceania, Antarctica
- **Subregions** — e.g. South-Eastern Asia, Western Europe, South America
- **Countries** — Any of 200+ countries (full list below)
- **Timezones** — Match freelancers by their local working hours

#### Talent Quality
- **Talent Badges** — Filter by Top Rated Plus, Top Rated, or Rising Talent (mix and match)
- **Earned Amount** — Any / $1+ / $100+ / $1K+ / $10K+ / No earnings yet
- **Hours Billed** — Any / 1+ / 100+ / 1,000+ hours (optionally limited to last 6 months)
- **English Level** — Basic / Conversational / Fluent / Native or Bilingual

#### Rate & Type
- **Hourly Rate Range** — Any / $10 and below / $10–$30 / $30–$60 / $60 and above
- **Talent Type** — All / Independent freelancers only / Agencies only
- **Other Languages** — Filter by language code (e.g. `"ja"`, `"fr"`, `"es"`)

### Example: Find Top-Rated Python Developers in Asia for $30–$60/hr

```json
{
  "keyword": "python developer",
  "maxResults": 100,
  "regions": ["Asia"],
  "talentBadges": ["Top Rated", "Top Rated Plus"],
  "hourlyRateRange": "30-60",
  "minEarnings": "1000"
}
````

### Example: Find US/Canada UX Designers Available in Eastern Hours

```json
{
  "keyword": "UX designer",
  "maxResults": 50,
  "countries": ["United States", "Canada"],
  "timezones": [
    "(UTC-07:00) Pacific Time (US & Canada); Los Angeles",
    "(UTC-04:00) Eastern Time (US & Canada)"
  ],
  "hourlyRateRange": "60+",
  "englishLevel": 3
}
```

### How to Run

1. Open the Actor and fill in the input form — or paste a JSON input directly
2. Click **Start** — results appear in the dataset as they're collected
3. Export as JSON, CSV, Excel, or connect via API

No account setup. No cookies to manage. Just run and export.

### Limits

- Up to **1,000 profiles** per run
- Results reflect Upwork's public, non-logged-in talent search

***

### All Supported Filter Values

#### Hourly Rate Range

`"any"` · `"0-10"` ($10/hr and below) · `"10-30"` ($10–$30) · `"30-60"` ($30–$60) · `"60+"` ($60 and above)

#### Earned Amount

`"any"` · `"1"` ($1+) · `"100"` ($100+) · `"1000"` ($1K+) · `"10000"` ($10K+) · `"none"` (no earnings yet)

#### Hours Billed

`"any"` · `"1"` (1+ hrs) · `"100"` (100+ hrs) · `"1000"` (1,000+ hrs)

#### English Level

`1` Basic · `2` Conversational · `3` Fluent · `4` Native/Bilingual

#### Regions

Africa, Americas, Antarctica, Asia, Europe, Oceania

#### Subregions

Australia and New Zealand, Caribbean, Central America, Central Asia, Eastern Africa, Eastern Asia, Eastern Europe, Melanesia, Micronesia, Middle Africa, Northern Africa, Northern America, Northern Europe, Polynesia, South America, South-Eastern Asia, Southern Africa, Southern Asia, Southern Europe, Western Africa, Western Asia, Western Europe

#### Countries

Albania, Algeria, American Samoa, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire Sint Eustatius and Saba, Bosnia and Herzegovina, Botswana, Bouvet Island, Brazil, British Indian Ocean Territory, British Virgin Islands, Brunei Darussalam, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Cayman Islands, Central African Republic, Chad, Chile, China, Christmas Island, Cocos (Keeling) Islands, Colombia, Comoros, Congo, Congo the Democratic Republic of the, Cook Islands, Costa Rica, Cote d'Ivoire, Croatia, Curacao, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Falkland Islands, Faroe Islands, Fiji, Finland, France, French Guiana, French Polynesia, French Southern and Antarctic Lands, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Heard Island and McDonald Islands, Holy See, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Marshall Islands, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia Federated States of, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Niue, Norfolk Island, Northern Mariana Islands, Norway, Oman, Pakistan, Palau, Palestinian Territories, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Pitcairn, Poland, Portugal, Puerto Rico, Qatar, Reunion, Romania, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin (French part), Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Sao Tome and Principe, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Sint Maarten (Dutch part), Slovakia, Slovenia, Solomon Islands, Somalia, South Africa, South Korea, Spain, Sri Lanka, Suriname, Svalbard and Jan Mayen, Swaziland, Sweden, Switzerland, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Turks and Caicos Islands, Tuvalu, Uganda, Ukraine, United Arab Emirates, United Kingdom, United States, United States Minor Outlying Islands, United States Virgin Islands, Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe

#### Timezones

Use the exact label as shown in the input form. Examples:

- `"(UTC-07:00) Pacific Time (US & Canada); Los Angeles"`
- `"(UTC+05:30) Mumbai, Kolkata, Chennai, New Delhi"`
- `"(UTC+09:00) Tokyo, Osaka, Sapporo, Seoul"`

Multiple entries with the same UTC offset are automatically deduplicated.

# Actor input Schema

## `keyword` (type: `string`):

Keyword to search for (e.g. 'React developer'). Leave empty to browse all.

## `maxResults` (type: `integer`):

Maximum number of profiles to collect (max 1000)

## `hourlyRateMin` (type: `integer`):

Minimum hourly rate filter

## `hourlyRateMax` (type: `integer`):

Maximum hourly rate filter

## `regions` (type: `array`):

Filter by region. Leave empty for all.

## `subregions` (type: `array`):

Filter by subregion. Leave empty for all.

## `countries` (type: `array`):

Filter by country. Leave empty for all.

## `timezones` (type: `array`):

Filter by talent time zone. Multiple selections with the same UTC offset are automatically deduplicated. Leave empty for all.

## `talentBadges` (type: `array`):

Filter by talent badge. Multiple badges can be selected (OR condition).

## `talentType` (type: `string`):

Filter by talent type: 'independent', 'agency', or 'all'

## `hourlyRateRange` (type: `string`):

Filter by hourly rate range

## `minEarnings` (type: `string`):

Minimum total earnings filter. Use 'none' for freelancers with no earnings yet.

## `hoursBilled` (type: `string`):

Minimum hours billed filter

## `hoursBilledRecentOnly` (type: `boolean`):

When enabled, the Hours Billed filter applies only to the last 6 months

## `englishLevel` (type: `integer`):

Minimum English proficiency rank (1 = Basic, 2 = Conversational, 3 = Fluent, 4 = Native/Bilingual)

## `languages` (type: `array`):

Filter by language. English is automatically included. 'Chinese' in the UI maps to Cantonese (yue).

## Actor input object example

```json
{
  "maxResults": 100,
  "talentType": "all",
  "hourlyRateRange": "any",
  "minEarnings": "any",
  "hoursBilled": "any",
  "hoursBilledRecentOnly": false
}
```

# Actor output Schema

## `profiles` (type: `string`):

Collected freelancer profiles including name, title, hourly rate, skills, earnings, hours billed, location, and badge status

# 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("crw/upwork-talent-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("crw/upwork-talent-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 '{}' |
apify call crw/upwork-talent-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Upwork Talent Scraper",
        "description": "Scrape freelancer profiles from Upwork talent search. Returns name, title, hourly rate, skills, earnings, hours billed, location, and badge status. Filter by keyword, region, timezone, talent type, rate range, and more — up to 1,000 profiles per run. No login required.",
        "version": "0.0",
        "x-build-id": "LUx4DykJEjzZduceR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crw~upwork-talent-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crw-upwork-talent-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/crw~upwork-talent-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crw-upwork-talent-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/crw~upwork-talent-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crw-upwork-talent-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": {
                    "keyword": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "Keyword to search for (e.g. 'React developer'). Leave empty to browse all."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of profiles to collect (max 1000)",
                        "default": 100
                    },
                    "hourlyRateMin": {
                        "title": "Min Hourly Rate (USD)",
                        "type": "integer",
                        "description": "Minimum hourly rate filter"
                    },
                    "hourlyRateMax": {
                        "title": "Max Hourly Rate (USD)",
                        "type": "integer",
                        "description": "Maximum hourly rate filter"
                    },
                    "regions": {
                        "title": "Regions",
                        "type": "array",
                        "description": "Filter by region. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Africa",
                                "Americas",
                                "Antarctica",
                                "Asia",
                                "Europe",
                                "Oceania"
                            ]
                        }
                    },
                    "subregions": {
                        "title": "Subregions",
                        "type": "array",
                        "description": "Filter by subregion. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Australia and New Zealand",
                                "Caribbean",
                                "Central America",
                                "Central Asia",
                                "Eastern Africa",
                                "Eastern Asia",
                                "Eastern Europe",
                                "Melanesia",
                                "Micronesia",
                                "Middle Africa",
                                "Northern Africa",
                                "Northern America",
                                "Northern Europe",
                                "Polynesia",
                                "South America",
                                "South-Eastern Asia",
                                "Southern Africa",
                                "Southern Asia",
                                "Southern Europe",
                                "Western Africa",
                                "Western Asia",
                                "Western Europe"
                            ]
                        }
                    },
                    "countries": {
                        "title": "Countries",
                        "type": "array",
                        "description": "Filter by country. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Albania",
                                "Algeria",
                                "American Samoa",
                                "Andorra",
                                "Angola",
                                "Anguilla",
                                "Antigua and Barbuda",
                                "Argentina",
                                "Armenia",
                                "Aruba",
                                "Australia",
                                "Austria",
                                "Azerbaijan",
                                "Bahamas",
                                "Bahrain",
                                "Bangladesh",
                                "Barbados",
                                "Belgium",
                                "Belize",
                                "Benin",
                                "Bermuda",
                                "Bhutan",
                                "Bolivia",
                                "Bonaire, Sint Eustatius and Saba",
                                "Bosnia and Herzegovina",
                                "Botswana",
                                "Bouvet Island",
                                "Brazil",
                                "British Indian Ocean Territory",
                                "British Virgin Islands",
                                "Brunei Darussalam",
                                "Bulgaria",
                                "Burkina Faso",
                                "Burundi",
                                "Cambodia",
                                "Cameroon",
                                "Canada",
                                "Cape Verde",
                                "Cayman Islands",
                                "Central African Republic",
                                "Chad",
                                "Chile",
                                "China",
                                "Christmas Island",
                                "Cocos (Keeling) Islands",
                                "Colombia",
                                "Comoros",
                                "Congo",
                                "Congo, the Democratic Republic of the",
                                "Cook Islands",
                                "Costa Rica",
                                "Cote d'Ivoire",
                                "Croatia",
                                "Curacao",
                                "Cyprus",
                                "Czech Republic",
                                "Denmark",
                                "Djibouti",
                                "Dominica",
                                "Dominican Republic",
                                "Ecuador",
                                "Egypt",
                                "El Salvador",
                                "Equatorial Guinea",
                                "Eritrea",
                                "Estonia",
                                "Ethiopia",
                                "Falkland Islands",
                                "Faroe Islands",
                                "Fiji",
                                "Finland",
                                "France",
                                "French Guiana",
                                "French Polynesia",
                                "French Southern and Antarctic Lands",
                                "Gabon",
                                "Gambia",
                                "Georgia",
                                "Germany",
                                "Ghana",
                                "Gibraltar",
                                "Greece",
                                "Greenland",
                                "Grenada",
                                "Guadeloupe",
                                "Guam",
                                "Guatemala",
                                "Guernsey",
                                "Guinea",
                                "Guinea-Bissau",
                                "Guyana",
                                "Haiti",
                                "Heard Island and McDonald Islands",
                                "Holy See",
                                "Honduras",
                                "Hong Kong",
                                "Hungary",
                                "Iceland",
                                "India",
                                "Indonesia",
                                "Ireland",
                                "Isle of Man",
                                "Israel",
                                "Italy",
                                "Jamaica",
                                "Japan",
                                "Jersey",
                                "Jordan",
                                "Kazakhstan",
                                "Kenya",
                                "Kiribati",
                                "Kuwait",
                                "Kyrgyzstan",
                                "Laos",
                                "Latvia",
                                "Lebanon",
                                "Lesotho",
                                "Liechtenstein",
                                "Lithuania",
                                "Luxembourg",
                                "Macao",
                                "Macedonia",
                                "Madagascar",
                                "Malawi",
                                "Malaysia",
                                "Maldives",
                                "Mali",
                                "Malta",
                                "Marshall Islands",
                                "Martinique",
                                "Mauritania",
                                "Mauritius",
                                "Mayotte",
                                "Mexico",
                                "Micronesia, Federated States of",
                                "Moldova",
                                "Monaco",
                                "Mongolia",
                                "Montenegro",
                                "Montserrat",
                                "Morocco",
                                "Mozambique",
                                "Myanmar",
                                "Namibia",
                                "Nauru",
                                "Nepal",
                                "Netherlands",
                                "Netherlands Antilles",
                                "New Caledonia",
                                "New Zealand",
                                "Nicaragua",
                                "Niger",
                                "Nigeria",
                                "Niue",
                                "Norfolk Island",
                                "Northern Mariana Islands",
                                "Norway",
                                "Oman",
                                "Pakistan",
                                "Palau",
                                "Palestinian Territories",
                                "Panama",
                                "Papua New Guinea",
                                "Paraguay",
                                "Peru",
                                "Philippines",
                                "Pitcairn",
                                "Poland",
                                "Portugal",
                                "Puerto Rico",
                                "Qatar",
                                "Reunion",
                                "Romania",
                                "Rwanda",
                                "Saint Barthelemy",
                                "Saint Helena",
                                "Saint Kitts and Nevis",
                                "Saint Lucia",
                                "Saint Martin (French part)",
                                "Saint Pierre and Miquelon",
                                "Saint Vincent and the Grenadines",
                                "Samoa",
                                "San Marino",
                                "Sao Tome and Principe",
                                "Saudi Arabia",
                                "Senegal",
                                "Serbia",
                                "Seychelles",
                                "Sierra Leone",
                                "Singapore",
                                "Sint Maarten (Dutch part)",
                                "Slovakia",
                                "Slovenia",
                                "Solomon Islands",
                                "Somalia",
                                "South Africa",
                                "South Korea",
                                "Spain",
                                "Sri Lanka",
                                "Suriname",
                                "Svalbard and Jan Mayen",
                                "Swaziland",
                                "Sweden",
                                "Switzerland",
                                "Taiwan",
                                "Tajikistan",
                                "Tanzania",
                                "Thailand",
                                "Timor-Leste",
                                "Togo",
                                "Tokelau",
                                "Tonga",
                                "Trinidad and Tobago",
                                "Tunisia",
                                "Turkey",
                                "Turkmenistan",
                                "Turks and Caicos Islands",
                                "Tuvalu",
                                "Uganda",
                                "Ukraine",
                                "United Arab Emirates",
                                "United Kingdom",
                                "United States",
                                "United States Minor Outlying Islands",
                                "United States Virgin Islands",
                                "Uruguay",
                                "Uzbekistan",
                                "Vanuatu",
                                "Venezuela",
                                "Vietnam",
                                "Wallis and Futuna",
                                "Western Sahara",
                                "Yemen",
                                "Zambia",
                                "Zimbabwe"
                            ]
                        }
                    },
                    "timezones": {
                        "title": "Talent Time Zones",
                        "type": "array",
                        "description": "Filter by talent time zone. Multiple selections with the same UTC offset are automatically deduplicated. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "(UTC-11:00) Midway Island, Samoa",
                                "(UTC-10:00) Hawaii",
                                "(UTC-08:00) Alaska",
                                "(UTC-07:00) Pacific Time (US & Canada); Los Angeles",
                                "(UTC-07:00) Pacific Time (US & Canada); Tijuana",
                                "(UTC-07:00) Arizona",
                                "(UTC-06:00) Mountain Time (US & Canada)",
                                "(UTC-06:00) Saskatchewan",
                                "(UTC-05:00) Eastern Time - Indiana - Starke County",
                                "(UTC-06:00) Nicaragua",
                                "(UTC-06:00) Mexico City, Tegucigalpa",
                                "(UTC-05:00) Central Time (US & Canada)",
                                "(UTC-04:00) Eastern Time (US & Canada)",
                                "(UTC-05:00) Bogota, Lima",
                                "(UTC-04:00) Eastern Time - Indiana - most locations",
                                "(UTC-03:00) Atlantic Time (Canada)",
                                "(UTC-04:00) La Paz",
                                "(UTC-04:00) Caracas",
                                "(UTC-03:00) NE Brazil (MA, PI, CE, RN, PB)",
                                "(UTC-03:00) E Argentina (BA, DF, SC, TF)",
                                "(UTC-02:30) Newfoundland",
                                "(UTC-03:00) Pernambuco",
                                "(UTC-03:00) S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS)",
                                "(UTC-02:00) Mid-Atlantic",
                                "(UTC+00:00) Azores, Cape Verde Island",
                                "(UTC+00:00) Tangiers, Casablanca",
                                "(UTC+01:00) (Coordinated Universal Time) Dublin, Edinburgh, London",
                                "(UTC+01:00) Lisbon",
                                "(UTC+00:00) (Coordinated Universal Time)",
                                "(UTC+02:00) Prague, Warsaw",
                                "(UTC+02:00) Paris, Madrid",
                                "(UTC+02:00) Berlin, Stockholm, Rome, Bern, Brussels",
                                "(UTC+01:00) Algeria",
                                "(UTC+03:00) Athens, Helsinki, Istanbul",
                                "(UTC+02:00) Eastern Europe",
                                "(UTC+03:00) Cairo",
                                "(UTC+02:00) Harare, Pretoria",
                                "(UTC+03:00) Israel",
                                "(UTC+03:00) Minsk",
                                "(UTC+03:00) Moscow, St. Petersburg, Volgograd",
                                "(UTC+03:30) Tehran",
                                "(UTC+03:00) Baghdad, Kuwait, Nairobi, Riyadh",
                                "(UTC+04:00) Abu Dhabi, Muscat, Tbilisi, Kazan",
                                "(UTC+05:00) Islamabad, Karachi",
                                "(UTC+04:30) Kabul",
                                "(UTC+04:00) Armenia",
                                "(UTC+05:45) Kathmandu, Nepal",
                                "(UTC+05:00) Tashkent",
                                "(UTC+05:00) Sverdlovsk",
                                "(UTC+06:00) Almaty, Dhaka",
                                "(UTC+05:30) Mumbai, Kolkata, Chennai, New Delhi",
                                "(UTC+06:00) Omsk, Novosibirsk",
                                "(UTC+07:00) Krasnoyarsk",
                                "(UTC+07:00) Bangkok, Jakarta, Hanoi",
                                "(UTC+08:00) Hong Kong SAR, Perth, Singapore, Taipei",
                                "(UTC+08:00) Irkutsk (Lake Baikal)",
                                "(UTC+08:00) Beijing, Chongqing, Urumqi",
                                "(UTC+09:00) Tokyo, Osaka, Sapporo, Seoul",
                                "(UTC+10:00) Guam, Port Moresby",
                                "(UTC+10:00) Magadan, Vladivostok",
                                "(UTC+10:00) Hobart",
                                "(UTC+09:30) Darwin",
                                "(UTC+10:00) Sydney, Melbourne",
                                "(UTC+10:00) Brisbane",
                                "(UTC+09:30) Adelaide",
                                "(UTC+09:00) Yakutsk (Lena River)",
                                "(UTC+12:00) Fiji Islands, Marshall Islands",
                                "(UTC+12:00) Wellington, Auckland",
                                "(UTC+12:00) Eniwetok, Kwajalein",
                                "(UTC+12:00) Kamchatka",
                                "(UTC+11:00) Solomon Islands, New Caledonia",
                                "(UTC+13:00) Apia (Samoa)"
                            ]
                        }
                    },
                    "talentBadges": {
                        "title": "Talent Badge",
                        "type": "array",
                        "description": "Filter by talent badge. Multiple badges can be selected (OR condition).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Top Rated Plus",
                                "Top Rated",
                                "Rising Talent"
                            ]
                        }
                    },
                    "talentType": {
                        "title": "Talent Type",
                        "enum": [
                            "all",
                            "independent",
                            "agency"
                        ],
                        "type": "string",
                        "description": "Filter by talent type: 'independent', 'agency', or 'all'",
                        "default": "all"
                    },
                    "hourlyRateRange": {
                        "title": "Hourly Rate",
                        "enum": [
                            "any",
                            "0-10",
                            "10-30",
                            "30-60",
                            "60+"
                        ],
                        "type": "string",
                        "description": "Filter by hourly rate range",
                        "default": "any"
                    },
                    "minEarnings": {
                        "title": "Earned Amount",
                        "enum": [
                            "any",
                            "1",
                            "100",
                            "1000",
                            "10000",
                            "none"
                        ],
                        "type": "string",
                        "description": "Minimum total earnings filter. Use 'none' for freelancers with no earnings yet.",
                        "default": "any"
                    },
                    "hoursBilled": {
                        "title": "Hours Billed",
                        "enum": [
                            "any",
                            "1",
                            "100",
                            "1000"
                        ],
                        "type": "string",
                        "description": "Minimum hours billed filter",
                        "default": "any"
                    },
                    "hoursBilledRecentOnly": {
                        "title": "Within last 6 months only",
                        "type": "boolean",
                        "description": "When enabled, the Hours Billed filter applies only to the last 6 months",
                        "default": false
                    },
                    "englishLevel": {
                        "title": "English Level",
                        "minimum": 1,
                        "maximum": 4,
                        "type": "integer",
                        "description": "Minimum English proficiency rank (1 = Basic, 2 = Conversational, 3 = Fluent, 4 = Native/Bilingual)"
                    },
                    "languages": {
                        "title": "Other Languages",
                        "type": "array",
                        "description": "Filter by language. English is automatically included. 'Chinese' in the UI maps to Cantonese (yue).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Afrikaans",
                                "Albanian",
                                "Algerian Sign Language",
                                "American Sign Language",
                                "Amharic",
                                "Arabic",
                                "Argentine Sign Language",
                                "Armenian",
                                "Assamese",
                                "Azerbaijani",
                                "Basque",
                                "Belarusian",
                                "Bengali",
                                "Bhojpuri",
                                "Bosnian",
                                "Brazilian Sign Language",
                                "British Sign Language",
                                "Bulgarian",
                                "Burmese",
                                "Cantonese",
                                "Catalan, Valencian",
                                "Cebuano",
                                "Chhattisgarhi",
                                "Chinese Sign Language",
                                "Colombian Sign Language",
                                "Croatian",
                                "Czech",
                                "Danish",
                                "Dutch",
                                "Ecuadorian Sign Language",
                                "El Salvadoran Sign Language",
                                "English",
                                "Estonian",
                                "Ethiopian Sign Language",
                                "Finnish",
                                "French Sign Language",
                                "French",
                                "Fula",
                                "Galician",
                                "Georgian",
                                "German Sign Language",
                                "German",
                                "Ghanaian Sign Language",
                                "Greek, Modern",
                                "Gujarati",
                                "Hausa",
                                "Hebrew (modern)",
                                "Hindi",
                                "Hungarian",
                                "Icelandic",
                                "Igbo",
                                "Indonesian",
                                "Indopakistani Sign Language",
                                "Irish Sign Language",
                                "Irish",
                                "Italian Sign Language",
                                "Italian",
                                "Japanese Sign Language",
                                "Japanese",
                                "Javanese",
                                "Kannada",
                                "Kazakh",
                                "Kenyan Sign Language",
                                "Khmer",
                                "Kinyarwanda",
                                "Korean Sign Language",
                                "Korean",
                                "Krio",
                                "Kurdish",
                                "Kyrgyz",
                                "Latin",
                                "Latvian",
                                "Lithuanian",
                                "Macedonian",
                                "Magahi",
                                "Maithili",
                                "Malay",
                                "Malayalam",
                                "Malaysian Sign Language",
                                "Maltese",
                                "Marathi (Marāṭhī)",
                                "Mexican Sign Language",
                                "Mongolian",
                                "Moroccan Sign Language",
                                "Nepali",
                                "Norwegian",
                                "Odia",
                                "Oromo",
                                "Panjabi, Punjabi",
                                "Pashto",
                                "Persian Sign Language",
                                "Persian",
                                "Philippine Sign Language",
                                "Polish Sign Language",
                                "Polish",
                                "Portuguese Sign Language",
                                "Portuguese",
                                "Romanian, Moldavian, Moldovan",
                                "Rundi",
                                "Russian Sign Language",
                                "Russian",
                                "Saraiki",
                                "Saudi Arabian Sign Language",
                                "Serbian",
                                "Sindhi",
                                "Sinhala, Sinhalese",
                                "Slovak",
                                "Slovene",
                                "Somali",
                                "South African Sign Language",
                                "Spanish Sign Language",
                                "Spanish",
                                "Sunda",
                                "Swahili",
                                "Swedish",
                                "Sylheti",
                                "Tagalog",
                                "Tamil",
                                "Tanzanian Sign Language",
                                "Telugu",
                                "Thai",
                                "Tigrinya",
                                "Turkish Sign Language",
                                "Turkish",
                                "Ukrainian Sign Language",
                                "Ukrainian",
                                "Urdu",
                                "Uyghur",
                                "Uzbek",
                                "Vietnamese",
                                "Yiddish",
                                "Yoruba",
                                "Zimbabwe Sign Language",
                                "Zulu"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
