# Freelancer Jobs Search Scraper (`soft_alexist/freelancer-jobs-search-scraper`) Actor

Extract comprehensive freelance job listings from Freelancer.com with one simple configuration. Collect project titles, budgets, bid stats, skills required, and 22+ fields per listing — perfect for job aggregators, career analysts, and market researchers tracking the gig economy.

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

## Pricing

Pay per usage

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

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Freelancer.com Jobs Scraper: Scrape Freelance Project Listings at Scale

---

### What Is Freelancer.com?

Freelancer.com is one of the world's largest online freelance marketplaces, hosting hundreds of thousands of active projects across categories like design, development, writing, marketing, and more. Clients post projects with budgets, timelines, and skill requirements; freelancers then bid to win the work. The platform generates massive daily volume, making it a goldmine for workforce analytics, competitive intelligence, and job aggregation — but manual data collection is impractical. The **Freelancer.com Jobs Scraper** automates this entirely, turning search results into structured, actionable data.

---

### Overview

The **Freelancer.com Jobs Scraper** extracts job listings from Freelancer's search pages, collecting up to 22 data fields per project. It is ideal for:

- **Freelancers** automating job discovery and monitoring market trends
- **Job aggregators** building comprehensive freelance job databases
- **Market researchers** studying gig economy demand by skill and industry
- **Career platforms** enriching their own job data with Freelancer projects
- **Data analysts** benchmarking freelance rates and project volume

Key advantages include support for keyword-based search filtering, configurable item limits per URL, resilient error handling with `ignore_url_failures`, and detailed project metadata including budget, bid statistics, and required skills.

---

### Input Format

The scraper accepts a JSON configuration object controlling which jobs to collect and how many:

```json
{
  "urls": [
    "https://www.freelancer.com/jobs/?keyword=design"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

#### Input Parameters Explained

| Parameter | Type | Description | Example |
|---|---|---|---|
| `urls` | Array | Links to Freelancer.com job search pages filtered by keyword, category, or criteria | `["https://www.freelancer.com/jobs/?keyword=design"]` |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues running even if some URLs fail. If `false`, a single failed URL stops the entire run | `true` |
| `max_items_per_url` | Integer | Maximum number of job listings to scrape per URL (1–200). Useful for controlling data volume and API usage | `200` |

#### Usage Tips

- **Filter by keyword:** Append `?keyword=TERM` to the Freelancer.com jobs URL to scrape specific skill areas (e.g., `design`, `python`, `writing`)
- **Bulk URLs:** Add multiple search URLs to capture different job categories in one run
- **Large datasets:** Set `max_items_per_url` to 200 for comprehensive collection; use lower values (20–50) for quick samples

***

### Output Format

**Sample output**

```json
{
  "id": "business-cards/commission-based-business-development",
  "project_id": 40568003,
  "bids": [],
  "bid_stats": {
    "bid_count": 0,
    "bid_avg": 0
  },
  "breadcrumb": {
    "skill": "Business Card Design",
    "url": "business-cards"
  },
  "budget": {
    "min": 2500,
    "max": 5000
  },
  "client": null,
  "currency_details": {
    "id": 11,
    "code": "INR",
    "sign": "₹",
    "name": "Indian Rupee",
    "exchange_rate": 0.010502,
    "country": "IN",
    "is_external": false
  },
  "days_left": 7,
  "description": "We're looking for ambitious, self-motivated Business Development Partners to help us grow our creative agency by bringing in new clients.\n\nOur agency specializes in:\nCustom Website Design & Development\nBrand Identity & Logo Design\nUI/UX Design\nE-commerce Websites\nLanding Pages\nWebsite Redesign\nDigital Branding Solutions\n\nYour Role:\nFind businesses, startups, entrepreneurs, and professionals who need a website or branding services.\nReach out through calls, emails, LinkedIn, networking, or referrals.\nSchedule meetings with potential clients.\nCoordinate with our team during the sales process.\nEarn attractive commissions for every successful project.\n\nWho Can Apply:\nFreelancers\nSales Professionals\nBusiness Development Executives\nDigital Marketers\nSocial Media Managers\nGraphic Designers\nStudents looking for performance-based income\nAnyone with a strong network of business owners\n\nCompensation:\n100% Commission-Based\nAttractive commission on every successful project\nNo limit on earnings—the more clients you bring, the more you earn.\nTimely payouts after project confirmation/payment.\n\t\t\t\tRequirements:\n-Good communication and negotiation skills.\n-Ability to generate leads independently.\n-Basic understanding of websites and branding is a plus but not mandatory.\n-Self-driven and goal-oriented mindset.",
  "end_time": 1784112486000,
  "formatted_budget": "₹2500-5000 INR",
  "hours_left": 23,
  "type": "fixed",
  "is_local": false,
  "latest_activity_time": 0,
  "next_project": null,
  "previous_project": {
    "title": "Minimalist Pen & Notepad Artwork",
    "seo_url": "adobe-illustrator/minimalist-pen-notepad-artwork"
  },
  "selected_bids": [],
  "similar_jobs": [
    {
      "title": "\"Need a professional packaging designer to create a premium tea pouch design for Raza Traders  including print-ready CDR/AI files, barcode area, FSSAI details, MRP box, and premium branding.\"",
      "seo_url": "/projects/graphic-design/need-professional-packaging-designer",
      "formatted_budget": "₹600-1500 INR"
    },
    {
      "title": "Tranquil Rustic Spa and Cafe Design",
      "seo_url": "/projects/architecture/tranquil-rustic-spa-cafe-design",
      "formatted_budget": "$250-750 USD"
    },
    {
      "title": "Health & Beauty Label (Center Panel Only) Design",
      "seo_url": "/contest/health-beauty-label-center-panel-only-design-2760238",
      "formatted_budget": "$95 USD"
    },
    {
      "title": "Student-Centric LMS SaaS Development",
      "seo_url": "/projects/saas/student-centric-lms-saas-development",
      "formatted_budget": "$3000-5000 USD"
    },
    {
      "title": "Ecommerce Website Development for JanPal - Janitorial, Cleaning & Hygiene Products (UK)",
      "seo_url": "/projects/api-developmet/ecommerce-website-development-for-janpal",
      "formatted_budget": "£250-750 GBP"
    },
    {
      "title": "Custom Couture Clothing Creation",
      "seo_url": "/projects/garment-construction/custom-couture-clothing-creation",
      "formatted_budget": "$10-100 USD"
    },
    {
      "title": "Minimalist YouTube Thumbnail Design",
      "seo_url": "/projects/adobe-photoshop/minimalist-youtube-thumbnail-design-40558932",
      "formatted_budget": "₹600-1500 INR"
    },
    {
      "title": "Modern Rural Builder Logo",
      "seo_url": "/contest/modern-rural-builder-logo-2762073",
      "formatted_budget": "$150 NZD"
    },
    {
      "title": "E-Commerce App & Logo Design",
      "seo_url": "/projects/ui-design/commerce-app-logo-design",
      "formatted_budget": "€30-250 EUR"
    },
    {
      "title": "Innovative Website Redesign for Relationship Therapist",
      "seo_url": "/projects/graphic-design/innovative-website-redesign-for-40559631",
      "formatted_budget": "₹750-1250 INR / hour"
    },
    {
      "title": "Luxury Texas Whiskey Label Logo",
      "seo_url": "/contest/luxury-texas-whiskey-label-logo-2760175",
      "formatted_budget": "$30 USD"
    },
    {
      "title": "Elegant Brand Toolkit Redesign",
      "seo_url": "/projects/adobe-illustrator/elegant-brand-toolkit-redesign",
      "formatted_budget": "$10-30 USD"
    },
    {
      "title": "Website Cloning and Text Adjustment",
      "seo_url": "/projects/website-design/website-cloning-text-adjustment",
      "formatted_budget": "$30-250 USD"
    },
    {
      "title": "Cartoon Branding Sticker Designs",
      "seo_url": "/projects/adobe-illustrator/cartoon-branding-sticker-designs",
      "formatted_budget": "₹600-1500 INR"
    },
    {
      "title": "\"Need a professional packaging designer to create a premium tea pouch design for Raza Traders  including print-ready CDR/AI files, barcode area, FSSAI details, MRP box, and premium branding.\"",
      "seo_url": "/projects/graphic-design/need-professional-packaging-designer",
      "formatted_budget": "₹600-1500 INR"
    },
    {
      "title": "Vlog Thumbnail Text Design",
      "seo_url": "/projects/adobe-creative-cloud/vlog-thumbnail-text-design",
      "formatted_budget": "$15-25 USD / hour"
    },
    {
      "title": "WooCommerce Developer for Countertop e-commerce platform",
      "seo_url": "/projects/web-development/woocommerce-developer-for-countertop",
      "formatted_budget": "$750-1500 USD"
    },
    {
      "title": "Web-Based Management System for GSE",
      "seo_url": "/projects/website-design/web-based-management-system-for",
      "formatted_budget": "$10-30 USD"
    },
    {
      "title": "Precise Bi-Fold Brochure Design",
      "seo_url": "/projects/print-design/precise-fold-brochure-design",
      "formatted_budget": "$30-250 AUD"
    },
    {
      "title": "Logo Design for Care Consulting Business (Glücksklee)",
      "seo_url": "/contest/logo-design-for-care-consulting-business-glcksklee-2762293",
      "formatted_budget": "€50 EUR"
    }
  ],
  "skills": [
    {
      "id": 278,
      "name": "Business Card Design",
      "category": {
        "id": 3
      },
      "local": false,
      "seo_url": "business-cards",
      "active_project_count": 13
    },
    {
      "id": 20,
      "name": "Graphic Design",
      "category": {
        "id": 3
      },
      "local": false,
      "seo_url": "graphic-design",
      "active_project_count": 1308
    },
    {
      "id": 32,
      "name": "Logo Design",
      "category": {
        "id": 3
      },
      "local": false,
      "seo_url": "logo-design",
      "active_project_count": 454
    },
    {
      "id": 38,
      "name": "SEO",
      "category": {
        "id": 1
      },
      "local": false,
      "seo_url": "seo",
      "active_project_count": 475
    },
    {
      "id": 17,
      "name": "Website Design",
      "category": {
        "id": 3
      },
      "local": false,
      "seo_url": "website-design",
      "active_project_count": 670
    }
  ],
  "start_time": 1783507686000,
  "status": "active",
  "title": "Commission-Based Business Development Partner – Website & Branding Agency -- 2",
  "seo_url": "business-cards/commission-based-business-development",
  "from_url": "https://www.freelancer.com/jobs/?keyword=design"
}
```

Each scraped job returns a detailed record with 22 fields structured as follows:

#### Project Identification

| Field | Meaning | Example |
|---|---|---|
| `ID` | Unique Freelancer project identifier | `12345678` |
| `Project ID` | Alternative project ID format | `proj_12345` |
| `Title` | Job title/project name as listed | `Logo Design for Tech Startup` |
| `SEO URL` | Search-engine-friendly URL slug for the project | `logo-design-for-tech-startup` |
| `Type` | Project type (e.g., "Fixed Price" or "Hourly") | `Fixed Price` |

#### Budget & Financials

| Field | Meaning | Example |
|---|---|---|
| `Budget` | Raw budget value in native currency | `500` |
| `Formatted Budget` | Budget with currency symbol and formatting | `$500 USD` |
| `Currency Details` | Currency code and exchange information | `{ "code": "USD", "symbol": "$" }` |

#### Activity & Timeline

| Field | Meaning | Example |
|---|---|---|
| `Start Time` | Unix timestamp when the project was posted | `1688169600` |
| `End Time` | Unix timestamp for project deadline | `1688515200` |
| `Days Left` | Remaining days until deadline (calculated) | `3` |
| `Hours Left` | Remaining hours until deadline (calculated) | `72` |
| `Latest Activity Time` | Last bid, comment, or update timestamp | `1688428800` |

#### Bidding & Competition

| Field | Meaning | Example |
|---|---|---|
| `Bids` | Total number of bids received | `14` |
| `Bid Stats` | Breakdown of bid quality/status | `{ "count": 14, "avg_bid": 450 }` |
| `Selected Bids` | Number of bids shortlisted by the client | `2` |

#### Project Details

| Field | Meaning | Example |
|---|---|---|
| `Description` | Full project description and requirements | `We need a modern logo in vector format...` |
| `Skills` | Array of required or preferred skills | `["Logo Design", "Branding", "Adobe Illustrator"]` |
| `Status` | Project status (active, completed, cancelled) | `Active` |
| `Is Local` | Whether the project requires local/in-person work | `false` |

#### Navigation & Related Data

| Field | Meaning | Example |
|---|---|---|
| `Client` | Client/employer name and profile info | `{ "name": "TechCorp", "rating": 4.8 }` |
| `Breadcrumb` | Navigation path on Freelancer.com | `Jobs › Design › Graphic Design` |
| `Similar Jobs` | Array of related project listings | `[proj_id_1, proj_id_2, ...]` |
| `Next Project` | ID of the next project in search results | `12345679` |
| `Previous Project` | ID of the previous project in search results | `12345677` |

***

### How to Use

1. **Build your search URL** — Go to Freelancer.com, search for jobs by keyword, category, or filter. Copy the resulting URL (e.g., `https://www.freelancer.com/jobs/?keyword=design`).

2. **Prepare the configuration** — Create a JSON input with your URL(s):

```json
   {
     "urls": ["https://www.freelancer.com/jobs/?keyword=design"],
     "max_items_per_url": 100,
     "ignore_url_failures": true
   }
```

3. **Run the scraper** — Execute with your configuration. Monitor the run log for progress and errors.

4. **Export results** — Download the output as JSON, CSV, or Excel. Each row represents one job listing.

5. **Process the data** — Filter by budget, skills, or activity date; deduplicate using the `ID` field; load into your database or analytics tool.

#### Handling Common Issues

- **No results returned?** Verify the URL is a Freelancer job search page, not a profile or single job detail page
- **Rate limiting?** Reduce `max_items_per_url` or spread runs across multiple hours
- **Incomplete data?** Enable `ignore_url_failures: true` to skip problematic URLs and continue scraping others

***

### Real-World Applications

- **Freelancer job boards:** Aggregate Freelancer listings alongside Upwork, Fiverr, and others for a unified job feed
- **Skills demand analysis:** Track which skills appear most in high-budget projects to guide your career development
- **Competitive intelligence:** Monitor competitor activity by scraping projects from specific categories or clients
- **Machine learning datasets:** Build training data for job recommendation, salary prediction, or skill classification models
- **Market research:** Analyze freelance pricing trends, project volume growth, and seasonal hiring patterns

***

### Why Use the Freelancer.com Jobs Scraper?

Manual browsing of Freelancer is tedious and error-prone — you can only view 20–50 listings per session. This scraper:

- **Saves hours** by automating data collection entirely
- **Enables scale** with support for 200+ jobs per URL in a single run
- **Ensures accuracy** with structured data fields ready for analysis
- **Supports integration** through JSON, CSV, and Excel output formats
- **Remains resilient** by gracefully handling failed URLs

Whether you're a freelancer optimizing your job search or a business building a data-driven product, the Freelancer.com Jobs Scraper transforms raw web data into insights.

***

### Conclusion

The **Freelancer.com Jobs Scraper** is your automation solution for capturing freelance job listings at scale. With 22 detailed fields per project and flexible filtering options, you can monitor the gig economy in real time, build competitive intelligence, or power your own job aggregation platform. Start scraping today.

# Actor input Schema

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

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

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

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

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

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.freelancer.com/jobs/?keyword=design"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "urls": [
        "https://www.freelancer.com/jobs/?keyword=design"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("soft_alexist/freelancer-jobs-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.freelancer.com/jobs/?keyword=design"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("soft_alexist/freelancer-jobs-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.freelancer.com/jobs/?keyword=design"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call soft_alexist/freelancer-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Freelancer Jobs Search Scraper",
        "description": "Extract comprehensive freelance job listings from Freelancer.com with one simple configuration. Collect project titles, budgets, bid stats, skills required, and 22+ fields per listing — perfect for job aggregators, career analysts, and market researchers tracking the gig economy.",
        "version": "0.0",
        "x-build-id": "j2pkiSEFg7GriKRXh"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/soft_alexist~freelancer-jobs-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-soft_alexist-freelancer-jobs-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/soft_alexist~freelancer-jobs-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-soft_alexist-freelancer-jobs-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/soft_alexist~freelancer-jobs-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-soft_alexist-freelancer-jobs-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the Jobs list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
