# Freelancer.com Scraper (`solidcode/freelancer-com-scraper`) Actor

\[💰 $0.95 / 1K] Extract active project listings from Freelancer.com — titles, descriptions, skills, budgets, bid counts, and employer flags. Filter by keyword, category, fixed vs hourly, budget range, country, and sort order. Built for lead generation, market research, and pricing intelligence.

- **URL**: https://apify.com/solidcode/freelancer-com-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Lead generation, Jobs, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.95 / 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

## Freelancer.com Scraper

Pull active project listings from Freelancer.com at scale — titles, full descriptions, skills tags, fixed and hourly budgets, bid counts and average bid amounts, employer country, posted and bid-close dates, and quality badges like Featured, Urgent, Sealed, and Guaranteed. Built for sales teams, agencies, and market-research analysts who need fresh freelance-marketplace demand signal without building and maintaining their own data pipeline.

### Why This Scraper?

- **16 top-level Freelancer categories** — Websites/IT/Software, Mobile & Computing, Writing & Content, Design Media & Architecture, Engineering & Science, Sales & Marketing, Translation, Trades & Services, and 8 more — selectable from a single dropdown.
- **7 project-quality badges per row** — Featured, Urgent, Sealed, Guaranteed, NDA, Top, and Full-time — surface high-intent posts at a glance.
- **50-country employer filter** — pinpoint projects posted by clients in the US, UK, Canada, Australia, India, UAE, Germany, Singapore, Brazil, and 41 more, returned as a 2-letter ISO `country` field on every row.
- **Fixed-price and hourly split** — `budgetMin` / `budgetMax` are emitted as numbers in the project's native currency, with a separate `currency` ISO code so you can normalize across rows.
- **Live bid intelligence** — every row carries `bidCount` and `bidAvg` so you instantly see how crowded a project is and the going rate clients are accepting.
- **Posted and closing timestamps** — `submitDate` and `bidEndDate` ISO 8601, plus a human-readable `timeLeft` string like "3 days left" or "Closes today".
- **Direct URL pasting** — drop any Freelancer.com URL (`/jobs/<skill>`, `/jobs/<skill>/<page>`, `/search/projects?q=...`) into the input and it's parsed into the right filters automatically.
- **Four sort orders** — Relevance, Newest first, Lowest budget first, Highest budget first.
- **Up to 10,000 results per run** — large-scale demand snapshots without hand-paging.

### Use Cases

**Lead Generation**
- Build outreach lists of clients posting projects matching your service area
- Filter by minimum budget to target premium clients with real spend
- Capture employer country to prioritize same-timezone leads
- Identify Featured and Urgent posts where clients want to move fast

**Market Research & Demand Tracking**
- Track freelance demand by skill, region, and budget range over time
- Compare project volume across the 16 Freelancer categories
- Measure average budgets per skill to benchmark market rates
- Spot rising and declining technology demand week over week

**Competitive Intelligence**
- See exactly which projects competing agencies are bidding on
- Monitor average bid counts to gauge how saturated a niche is
- Track which client countries dominate a given skill category
- Watch a competitor's preferred client patterns by mirroring their search filters

**Pricing & Rate Benchmarking**
- Compute average fixed-price and hourly budgets per skill
- Compare US-employer budgets against India, Philippines, or UK budgets
- Build internal rate cards anchored to live marketplace data
- Detect when premium-budget projects appear in your niche

**Recruiting & Sourcing**
- Find clients who post recurring work in a specific skill area
- Identify long-bid-window projects ideal for thoughtful proposals
- Track NDA-flagged and Sealed projects for high-trust opportunities

### Getting Started

#### Search by Keyword

The simplest way to start:

```json
{
    "searchQueries": ["shopify"],
    "maxResults": 100
}
````

#### Filter by Category and Budget

```json
{
    "searchQueries": ["react native"],
    "category": "websites-it-software",
    "projectType": "fixed",
    "minBudget": 500,
    "maxBudget": 5000,
    "sortBy": "newest",
    "maxResults": 200
}
```

#### Target Premium US Clients

```json
{
    "searchQueries": ["seo", "content marketing"],
    "country": "us",
    "minBudget": 1000,
    "sortBy": "budget_high",
    "maxResults": 500
}
```

#### Paste Freelancer.com URLs Directly

```json
{
    "searchUrls": [
        "https://www.freelancer.com/jobs/web-development",
        "https://www.freelancer.com/search/projects?q=python&minbudget=500"
    ],
    "maxResults": 300
}
```

### Input Reference

#### Search Inputs

| Parameter | Type | Default | Description |
|---|---|---|---|
| `searchQueries` | array of strings | `["seo"]` | Free-text keywords. Each query produces its own result set. |
| `searchUrls` | array of strings | `[]` | Paste Freelancer.com category, search, or project URLs. Filters in the URL are honored. |

#### Filters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `category` | string | none | One of 16 Freelancer categories (e.g. `websites-it-software`, `design-media-architecture`, `writing-content`). |
| `projectType` | string | `all` | `all`, `fixed`, or `hourly`. |
| `minBudget` | integer | none | Minimum project budget in USD. |
| `maxBudget` | integer | none | Maximum project budget in USD. |
| `country` | string | none | 2-letter employer country code (e.g. `us`, `gb`, `de`). 50 countries supported. |

#### Sort & Limits

| Parameter | Type | Default | Description |
|---|---|---|---|
| `sortBy` | string | `relevance` | `relevance`, `newest`, `budget_low`, or `budget_high`. |
| `maxResults` | integer | `1000` | Total row cap across all queries and URLs. Maximum 10,000. Set to `0` to request the full 10,000-row maximum. |

### Output

#### Example Row

```json
{
    "projectId": 38492013,
    "projectName": "Shopify Plus migration with custom theme",
    "projectDescription": "We are migrating from BigCommerce to Shopify Plus...",
    "projectDescriptionHtml": "We are migrating from BigCommerce to Shopify Plus...<br><br>Requirements:...",
    "url": "https://www.freelancer.com/projects/shopify-plus-migration-custom-theme",
    "seoUrl": "shopify-plus-migration-custom-theme",
    "jobType": "fixed",
    "currency": "USD",
    "budgetMin": 1500,
    "budgetMax": 4500,
    "budgetDisplay": "$1500 - $4500 USD",
    "bidCount": 27,
    "bidAvg": 2890.5,
    "timeLeft": "5 days left",
    "submitDate": "2026-05-06T14:22:01Z",
    "bidEndDate": "2026-05-13T14:22:01Z",
    "country": "us",
    "location": "California",
    "skills": ["Shopify", "Liquid", "JavaScript", "BigCommerce"],
    "featured": true,
    "urgent": false,
    "sealed": false,
    "guaranteed": true,
    "fulltime": false,
    "top": false,
    "nda": false,
    "language": "en",
    "scrapedAt": "2026-05-08T10:31:42Z"
}
```

#### Core Fields

| Field | Type | Description |
|---|---|---|
| `projectId` | integer | Numeric Freelancer project ID. |
| `projectName` | string | Project title. |
| `projectDescription` | string | Full plaintext description with line breaks. |
| `projectDescriptionHtml` | string | Same description with `<br>` tags for HTML rendering. |
| `url` | string | Direct link to the project page on Freelancer.com. |
| `seoUrl` | string | URL slug portion (e.g. `shopify-plus-migration-custom-theme`). |
| `jobType` | string | `fixed` or `hourly`. |
| `language` | string | Language code declared by the employer. |

#### Budget & Currency

| Field | Type | Description |
|---|---|---|
| `currency` | string | ISO 4217 currency code (e.g. `USD`, `EUR`, `GBP`). |
| `budgetMin` | number | Minimum budget in the project's native currency. |
| `budgetMax` | number | Maximum budget in the project's native currency. |
| `budgetDisplay` | string | Human-readable formatted range (e.g. `$1500 - $4500 USD`). |

#### Engagement & Bids

| Field | Type | Description |
|---|---|---|
| `bidCount` | integer | Number of bids submitted so far. |
| `bidAvg` | number | Average bid amount in the project's native currency. |
| `skills` | array of strings | Skill tags the employer attached (e.g. `["Shopify", "Liquid"]`). |

#### Employer & Location

| Field | Type | Description |
|---|---|---|
| `country` | string | Lowercase 2-letter ISO country code of the employer (derived from currency country). |
| `location` | string | Administrative area or country name when the employer publishes one. |

#### Quality Badges

| Field | Type | Description |
|---|---|---|
| `featured` | boolean | Featured listing — paid placement boost. |
| `urgent` | boolean | Marked urgent by the employer. |
| `sealed` | boolean | Bids are hidden from competing freelancers. |
| `guaranteed` | boolean | Funds held in escrow / qualified project. |
| `fulltime` | boolean | Long-term, full-time engagement. |
| `top` | boolean | Premium / top-tier placement. |
| `nda` | boolean | NDA required to view full details. |

#### Timestamps

| Field | Type | Description |
|---|---|---|
| `submitDate` | string | ISO 8601 UTC — when the project was posted. |
| `bidEndDate` | string | ISO 8601 UTC — when the bid window closes. |
| `timeLeft` | string | Human-readable countdown (e.g. `"3 days left"`, `"Closes today"`, `"Closed"`). |
| `scrapedAt` | string | ISO 8601 UTC — when this row was extracted. |

### Tips for Best Results

- **Drop the keyword for pure budget sorts.** When `searchQueries` is set, results are blended with a relevance score — for clean lowest-or-highest budget order, use `searchUrls` with `sortBy=budget_low` or `budget_high` and no query.
- **Combine `country=us` with `minBudget=1000`** to surface premium US clients in your timezone — one of the highest-ROI filter combinations for outreach.
- **Use `searchUrls` for category landing pages** like `https://www.freelancer.com/jobs/seo` to ride Freelancer's own skill taxonomy instead of guessing keywords.
- **Sort by `newest` for live monitoring.** Run the actor on a schedule (every 30 minutes) with a tight `maxResults` to capture fresh posts the moment they appear.
- **Filter by `projectType=hourly`** when benchmarking long-term retainers — fixed-price posts skew toward one-off work.
- **Watch `bidCount` for saturation.** Categories with average `bidCount` above 40 are crowded; below 15 means less competition for your bids.
- **The default `maxResults=1000`** is the sweet spot for most queries — comprehensive enough to map an active niche, low enough to keep runs quick. Bump up to `10000` (or set to `0`) for full-market snapshots.

### Pricing

**No compute charges — you only pay per result returned.**

| Results | Cost |
|---|---|
| 100 | $0.10 |
| 1,000 | $0.95 |
| 10,000 | $9.50 |
| 100,000 | $95.00 |

Pricing is per result delivered (billing rounded to the nearest cent). Free runs that return 0 results cost nothing.

### Integrations

- **Zapier & Make** — trigger downstream workflows when new high-budget projects appear.
- **Google Sheets** — push fresh listings into a sheet for your sales team to work each morning.
- **Apify API & webhooks** — kick off runs from your own backend or get notified the moment a run finishes.
- **CRM systems** — drop `projectId`, `country`, `budgetMax`, and `skills` directly into Salesforce, HubSpot, or Airtable as new lead records.
- **BI tools** — connect output datasets to Looker, Power BI, or Tableau for trend dashboards.

### Legal & Ethical Use

This actor extracts only **publicly listed active projects** — content that Freelancer.com surfaces to anonymous visitors. It does not access freelancer profiles, private bids, or any logged-in user data.

You are responsible for using the data lawfully. Respect Freelancer.com's Terms of Service, applicable data-protection laws (GDPR, CCPA), and any sender-permission rules (CAN-SPAM, GDPR consent) before contacting employers based on extracted information. Do not use the data for spam or harassment.

# Actor input Schema

## `searchQueries` (type: `array`):

Free-text keywords to search across active Freelancer.com projects (e.g. 'shopify', 'logo design', 'react native'). Each query produces its own set of results. Leave empty if you only want to use Search URLs below.

## `searchUrls` (type: `array`):

Paste one or more Freelancer.com URLs. Accepts category listings (e.g. https://www.freelancer.com/jobs/web-development), keyword searches (https://www.freelancer.com/search/projects?q=python), or direct project pages. Filters in the URL are honored as-is.

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

Restrict results to a Freelancer category. Leave blank to search across all categories.

## `projectType` (type: `string`):

Fixed-price projects pay a single agreed amount. Hourly projects bill by the hour.

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

Only include projects with a budget at or above this amount. Leave empty for no minimum.

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

Only include projects with a budget at or below this amount. Leave empty for no maximum.

## `country` (type: `string`):

Restrict to projects posted by employers in a specific country. Leave blank for all countries.

## `sortBy` (type: `string`):

How to order project results. Note: when a Search Query is set, results are blended with a relevance score — pure budget or date order is most reliable when no query is specified.

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

Cap on total project rows across all queries and URLs. Default 1000 — lower for quick runs, raise for larger pulls, or set to 0 to request the full 10,000-row maximum. The actor stops requesting new pages once this number is reached but keeps the full final page, which can slightly overshoot the cap.

## Actor input object example

```json
{
  "searchQueries": [
    "seo"
  ],
  "searchUrls": [],
  "projectType": "all",
  "sortBy": "relevance",
  "maxResults": 1000
}
```

# Actor output Schema

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

Active project listings — title, budget, bids, skills, country, posted date, and the seven employer-quality flags (Featured, Urgent, Sealed, Guaranteed, Full-time, Top, NDA).

## `detail` (type: `string`):

Full per-project detail — every field including descriptions, both budget endpoints, bid timestamps, and the language code.

# 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 = {
    "searchQueries": [
        "seo"
    ],
    "searchUrls": [],
    "projectType": "all",
    "sortBy": "relevance",
    "maxResults": 1000
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/freelancer-com-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 = {
    "searchQueries": ["seo"],
    "searchUrls": [],
    "projectType": "all",
    "sortBy": "relevance",
    "maxResults": 1000,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/freelancer-com-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 '{
  "searchQueries": [
    "seo"
  ],
  "searchUrls": [],
  "projectType": "all",
  "sortBy": "relevance",
  "maxResults": 1000
}' |
apify call solidcode/freelancer-com-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Freelancer.com Scraper",
        "description": "[💰 $0.95 / 1K] Extract active project listings from Freelancer.com — titles, descriptions, skills, budgets, bid counts, and employer flags. Filter by keyword, category, fixed vs hourly, budget range, country, and sort order. Built for lead generation, market research, and pricing intelligence.",
        "version": "1.0",
        "x-build-id": "48dG7G1UwhT3cHK5w"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~freelancer-com-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-freelancer-com-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/solidcode~freelancer-com-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-freelancer-com-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/solidcode~freelancer-com-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-freelancer-com-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": {
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Free-text keywords to search across active Freelancer.com projects (e.g. 'shopify', 'logo design', 'react native'). Each query produces its own set of results. Leave empty if you only want to use Search URLs below.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchUrls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "Paste one or more Freelancer.com URLs. Accepts category listings (e.g. https://www.freelancer.com/jobs/web-development), keyword searches (https://www.freelancer.com/search/projects?q=python), or direct project pages. Filters in the URL are honored as-is.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "websites-it-software",
                            "mobile-phones-computing",
                            "writing-content",
                            "design-media-architecture",
                            "data-entry-admin",
                            "engineering-science",
                            "sales-marketing",
                            "business-accounting-human-resources-legal",
                            "product-sourcing-manufacturing",
                            "translation-languages",
                            "freight-shipping-transportation",
                            "education",
                            "trades-services",
                            "local-jobs-services",
                            "telecommunications",
                            "other"
                        ],
                        "type": "string",
                        "description": "Restrict results to a Freelancer category. Leave blank to search across all categories."
                    },
                    "projectType": {
                        "title": "Project Type",
                        "enum": [
                            "all",
                            "fixed",
                            "hourly"
                        ],
                        "type": "string",
                        "description": "Fixed-price projects pay a single agreed amount. Hourly projects bill by the hour.",
                        "default": "all"
                    },
                    "minBudget": {
                        "title": "Minimum Budget (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include projects with a budget at or above this amount. Leave empty for no minimum."
                    },
                    "maxBudget": {
                        "title": "Maximum Budget (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include projects with a budget at or below this amount. Leave empty for no maximum."
                    },
                    "country": {
                        "title": "Employer Country",
                        "enum": [
                            "us",
                            "gb",
                            "ca",
                            "au",
                            "in",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "nl",
                            "se",
                            "ch",
                            "ie",
                            "ae",
                            "sa",
                            "sg",
                            "hk",
                            "jp",
                            "kr",
                            "ph",
                            "my",
                            "id",
                            "th",
                            "vn",
                            "br",
                            "mx",
                            "ar",
                            "co",
                            "cl",
                            "za",
                            "ng",
                            "eg",
                            "tr",
                            "il",
                            "pl",
                            "ua",
                            "ru",
                            "nz",
                            "pt",
                            "be",
                            "at",
                            "dk",
                            "no",
                            "fi",
                            "gr",
                            "cz",
                            "ro",
                            "hu",
                            "pk",
                            "bd"
                        ],
                        "type": "string",
                        "description": "Restrict to projects posted by employers in a specific country. Leave blank for all countries."
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "relevance",
                            "newest",
                            "budget_low",
                            "budget_high"
                        ],
                        "type": "string",
                        "description": "How to order project results. Note: when a Search Query is set, results are blended with a relevance score — pure budget or date order is most reliable when no query is specified.",
                        "default": "relevance"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Cap on total project rows across all queries and URLs. Default 1000 — lower for quick runs, raise for larger pulls, or set to 0 to request the full 10,000-row maximum. The actor stops requesting new pages once this number is reached but keeps the full final page, which can slightly overshoot the cap.",
                        "default": 1000
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
