# Ulule Project Search Scraper (`stealth_mode/ulule-project-search-scraper`) Actor

Discover and extract detailed crowdfunding project data from Ulule's vast catalog. This scraper collects campaign info, funding metrics, supporter counts, dates, and 30+ fields per project — perfect for market research, investment analysis, and trend monitoring.

- **URL**: https://apify.com/stealth\_mode/ulule-project-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Ulule Project Search Scraper: Extract Crowdfunding Campaign Data

---

### What Is Ulule.com?

Ulule is Europe's leading crowdfunding platform, hosting thousands of creative and entrepreneurial projects spanning technology, design, publishing, and social impact. From indie games to sustainable products, Ulule connects innovative ideas with passionate backers. However, manually browsing and cataloging projects is impractical at scale — the **Ulule Project Search Scraper** automates this entirely, transforming Ulule's discover pages into structured, analyzable data.

---

### Overview

The **Ulule Project Search Scraper** extracts comprehensive project details from Ulule's discovery and search pages, capturing everything from funding progress to backer counts and campaign metadata. It serves:

- **Investors & business analysts** tracking crowdfunding trends and emerging categories
- **Researchers** studying innovation ecosystems and creator markets
- **Content curators** building databases of trending or niche projects
- **Developers** integrating crowdfunding data into dashboards or aggregator platforms

Key strengths include high-volume scraping (up to 200 items per URL), graceful failure handling via `ignore_url_failures`, and comprehensive output spanning funding metrics, dates, imagery, and more.

---

### Input Format

The scraper accepts a simple JSON configuration:

```json
{
  "urls": [
    "https://www.ulule.com/discover/?offset=120"
  ],
  "max_items_per_url": 200,
  "ignore_url_failures": true
}
````

| Field | Description |
|---|---|
| `urls` | List of Ulule project list pages (discover, search results, or category pages) |
| `max_items_per_url` | Maximum projects scraped per URL (default: 20, max: 200) |
| `ignore_url_failures` | If `true`, the scraper continues even if a URL fails; set to `false` to stop on error |

> **Tip:** Use `?offset=0`, `?offset=120`, etc., to scrape paginated results sequentially. Combine multiple offset URLs to build comprehensive datasets.

***

### Output Format

**Sample output**

```json
{
  "absolute_url": "https://www.ulule.com/yourhappystudio/",
  "amount_raised": 90,
  "country": "FR",
  "currency": "EUR",
  "date_end": null,
  "date_online": "2026-02-25T11:51:04.436375Z",
  "date_start": "2026-02-25T00:00:00Z",
  "description_yourself": {
    "en": "<figure class=\"image\"><img style=\"aspect-ratio:1600/1200;\" src=\"https://media.ulule.com/presales/5/1/1/7/2/2/227115/8.4TEjL4BTCo.jpg\" width=\"1600\" height=\"1200\"/></figure><figure class=\"image\"><img style=\"aspect-ratio:1600/900;\" src=\"https://media.ulule.com/presales/5/1/1/7/2/2/227115/photo.vSi6fh1MOb.jpg\" width=\"1600\" height=\"900\" alt=\"2\"/></figure><figure class=\"image\"><img style=\"aspect-ratio:1200/1600;\" src=\"https://media.ulule.com/presales/5/1/1/7/2/2/227115/9.xPkDDqMRuJ.jpg\" width=\"1200\" height=\"1600\" alt=\"!\"/></figure><p>This project is brought to you by <strong>YourHappyStudio: Vladyslav Patrauchan - producer and animdirector of production. Mariana Patrauchan - Lightdirector, shading, render. Anastasia Patrauchan - sound director, voice actress. </strong>We have been working in 3D animation for over nine years and have participated in various projects. We live in Angouleme - France. Now, we feel it’s time to create our own project, inspired by our personal experiences in family life. We believe it will bring meaningful value and joy to everyone!</p><figure class=\"image\"><img style=\"aspect-ratio:1200/1600;\" src=\"https://media.ulule.com/presales/5/1/1/7/2/2/227115/7.57zvWu6566.jpg\" width=\"1200\" height=\"1600\" alt=\"WALK / /\"/></figure>"
  },
  "finished": false,
  "goal": 3500,
  "id": 227115,
  "is_featured": false,
  "is_in_extra_time": false,
  "lang": "en",
  "main_image": {
    "extracted_colors": {
      "dark_muted": "#363435",
      "dark_vibrant": "#3744a2",
      "light_muted": "#d3cdba",
      "light_vibrant": "#80c8ef",
      "muted": "#5e809e",
      "vibrant": "#58d3f4"
    },
    "id": 6522859,
    "lang": "en",
    "name": "photo.jpg",
    "type": "main",
    "versions": {
      "2x": {
        "height": 720,
        "url": "https://img-cache.ulule.com/display/7b59aaecfc48937026827626c499f6b0d02238c5/thumbnail/1280x720/presales/5/1/1/7/2/2/227115/photo.NHaKJtS2p7.jpg?q=60",
        "width": 1280
      },
      "full": {
        "height": null,
        "url": "https://media.ulule.com/presales/5/1/1/7/2/2/227115/photo.NHaKJtS2p7.jpg",
        "width": null
      },
      "large": {
        "height": 360,
        "url": "https://img-cache.ulule.com/display/7c88b1a3156ab7f4d5bdc4c0145027c68188acef/thumbnail/640x360/presales/5/1/1/7/2/2/227115/photo.NHaKJtS2p7.jpg",
        "width": 640
      },
      "medium": {
        "height": 145,
        "url": "https://img-cache.ulule.com/display/5de39d055338ac04742a597210611b9bc507a247/thumbnail/258x145/presales/5/1/1/7/2/2/227115/photo.NHaKJtS2p7.jpg",
        "width": 258
      },
      "small": {
        "height": 126,
        "url": "https://img-cache.ulule.com/display/22e5052ea9e2a52c022a0cf19a609f2cec2c43bb/thumbnail/230x126/presales/5/1/1/7/2/2/227115/photo.NHaKJtS2p7.jpg",
        "width": 230
      }
    }
  },
  "main_tag": {
    "absolute_url": "https://www.ulule.com/categories/movies/",
    "id": 4,
    "name": {
      "ca": "Pel·lícules i vídeos",
      "de": "Filme und Videos",
      "en": "Film & Video",
      "es": "Películas y videos",
      "fr": "Film & vidéo",
      "it": "Film & Video",
      "nl": "Film & Video",
      "pt": "Filmes e vídeo"
    },
    "position": 0,
    "slug": "movies"
  },
  "name": {
    "ca": "",
    "de": "",
    "en": "MyFamily",
    "es": "",
    "fr": "",
    "it": "",
    "nl": "",
    "pt": ""
  },
  "nb_products_sold": 0,
  "orders_count": 4,
  "owner": {
    "absolute_url": "https://www.ulule.com/users/vpatrauchan1976/",
    "avatar": {
      "name": "2.png",
      "value": "avatars/2026/02/18/2.6kMoaXoTsF.png",
      "versions": {
        "128x128": {
          "height": 128,
          "url": "https://img-cache.ulule.com/display/03c80e9f0b7f3468faeb545189bbd96714bcbed1/thumbnail/128x128/avatars/2026/02/18/2.6kMoaXoTsF.png",
          "width": 128
        },
        "180x180": {
          "height": 180,
          "url": "https://img-cache.ulule.com/display/fb1d2298133e047a189b3734bb176286d6cf37f3/thumbnail/180x180/avatars/2026/02/18/2.6kMoaXoTsF.png",
          "width": 180
        },
        "20x20": {
          "height": 20,
          "url": "https://img-cache.ulule.com/display/9f76448dbec524c03a6e151f05011e03044ea5e3/thumbnail/20x20/avatars/2026/02/18/2.6kMoaXoTsF.png",
          "width": 20
        },
        "230x230": {
          "height": 230,
          "url": "https://img-cache.ulule.com/display/e0fa9fd07890df2d35056beb0a2665b8f35a7980/thumbnail/230x230/avatars/2026/02/18/2.6kMoaXoTsF.png",
          "width": 230
        },
        "290x290": {
          "height": 290,
          "url": "https://img-cache.ulule.com/display/3aafe7fdefd8e51a96abfd9f77abd4621a607506/thumbnail/290x290/avatars/2026/02/18/2.6kMoaXoTsF.png",
          "width": 290
        },
        "30x30": {
          "height": 30,
          "url": "https://img-cache.ulule.com/display/93a30a9edd14bba8af6bf92dd94053eb0867d845/thumbnail/30x30/avatars/2026/02/18/2.6kMoaXoTsF.png",
          "width": 30
        },
        "40x40": {
          "height": 40,
          "url": "https://img-cache.ulule.com/display/6bba5e6eb37664379083dd551a4696318a52dfa4/thumbnail/40x40/avatars/2026/02/18/2.6kMoaXoTsF.png",
          "width": 40
        },
        "55x55": {
          "height": 55,
          "url": "https://img-cache.ulule.com/display/272b14e948fd2b3e1f4dc7ffec37861e3a430025/thumbnail/55x55/avatars/2026/02/18/2.6kMoaXoTsF.png",
          "width": 55
        },
        "75x75": {
          "height": 75,
          "url": "https://img-cache.ulule.com/display/785c34c9b7adc5b486b5b6e9c28cc0e62c50ab83/thumbnail/75x75/avatars/2026/02/18/2.6kMoaXoTsF.png",
          "width": 75
        },
        "90x90": {
          "height": 90,
          "url": "https://img-cache.ulule.com/display/89609971a8245ae780339c5d0f5a03fb867daacd/thumbnail/90x90/avatars/2026/02/18/2.6kMoaXoTsF.png",
          "width": 90
        },
        "full": {
          "height": null,
          "url": "https://media.ulule.com/avatars/2026/02/18/2.6kMoaXoTsF.png",
          "width": null
        }
      }
    },
    "first_name": "Vladyslav",
    "id": 6784003,
    "last_name": "Patrauchan",
    "name": "YourHappyStudio",
    "screenname": "YourHappyStudio",
    "username": "vpatrauchan1976"
  },
  "partnerships": [
    {
      "id": 243984,
      "is_default": true,
      "is_support": false,
      "is_winner": false,
      "partner": {
        "id": 2,
        "is_default": true,
        "logo": {
          "versions": {
            "full": {
              "height": null,
              "url": "https://media.ulule.com/partners/brand-ulule.daa45029a9f5.png",
              "width": null
            }
          }
        },
        "name": "Ulule",
        "ribbon": null,
        "ribbon_winner": null,
        "slug": "ulule",
        "type": "partner",
        "url": "http://www.ulule.com/",
        "user_id": 5499
      }
    }
  ],
  "percent": 2,
  "show_subscriptions_amount": false,
  "show_subscriptions_count": false,
  "slug": "yourhappystudio",
  "status": "online",
  "subscriptions_count": 0,
  "subtitle": {
    "ca": "",
    "de": "",
    "en": "My Family is a 3D animated series about a real family: mom, dad, three children, grandfather and grandmother.",
    "es": "",
    "fr": "",
    "it": "",
    "nl": "",
    "pt": ""
  },
  "supporters_count": 4,
  "type": "donation",
  "user_role": null,
  "from_url": "https://www.ulule.com/discover/?offset=120&ajax=true"
}
```

Each scraped project returns a rich record with 30+ fields:

#### Identification & URLs

| Field | Meaning |
|---|---|
| `ID` | Unique internal Ulule identifier for the project |
| `Name` | Official project title displayed on Ulule |
| `Slug` | URL-friendly version of the name (used in the project's web address) |
| `Absolute URL` | Full web link to the project's detail page |
| `Type` | Project category type (e.g., "product", "video", "game", "book") |

#### Campaign Basics

| Field | Meaning |
|---|---|
| `Subtitle` | Secondary tagline or short description |
| `Description Yourself` | Creator's personal pitch or bio summary |
| `Main Tag` | Primary category tag (e.g., "#Technology", "#Design") |
| `Main Image` | URL of the project's featured cover image |
| `Status` | Current campaign status (e.g., "active", "successful", "failed") |
| `Finished` | Boolean flag indicating if the campaign has closed |

#### Funding Metrics

| Field | Meaning |
|---|---|
| `Goal` | Target funding amount in the campaign's currency |
| `Amount Raised` | Total funds secured so far |
| `Percent` | Funding progress as a percentage (Amount Raised / Goal × 100) |
| `Currency` | Currency code (e.g., EUR, USD, GBP) |
| `Number Of Products Sold` | Count of reward tiers or product units purchased |
| `Orders Count` | Total number of backer transactions |
| `Supporters Count` | Total number of unique backers supporting the project |

#### Subscription & Partner Data

| Field | Meaning |
|---|---|
| `Show Subscriptions Amount` | Total revenue from subscription/recurring pledges |
| `Show Subscriptions Count` | Number of active subscriptions |
| `Partnerships` | Brands or organizations partnering with the project |

#### Timeline & Location

| Field | Meaning |
|---|---|
| `Date Start` | Project launch date (when campaign went live) |
| `Date Online` | Alternative timestamp for public availability |
| `Date End` | Campaign deadline or closing date |
| `Language` | Primary language of the project listing |
| `Country` | Country of the project creator or campaign focus |

#### Flags & Status

| Field | Meaning |
|---|---|
| `Is Featured` | Boolean flag—`true` if Ulule has featured the project on its homepage/newsletter |
| `Is In Extra Time` | Boolean flag—`true` if the campaign exceeded its deadline and is in a grace period |
| `User Role` | Creator's account type or role (e.g., "creator", "verified") |
| `Owner` | Project creator's name or username |

***

### How to Use

1. **Identify list pages** — Navigate to Ulule's discover page or use category/search filters. Copy the URL with query parameters.
   - Example: `https://www.ulule.com/discover/?offset=0`
2. **Configure pagination** — To scrape multiple pages, add URLs with different `offset` values (e.g., `offset=0`, `offset=120`, `offset=240`).
3. **Set item limits** — Adjust `max_items_per_url` based on your needs (max 200 per page).
4. **Handle failures** — Enable `ignore_url_failures: true` for large batch runs to skip problematic URLs gracefully.
5. **Run and export** — Start the scraper and download results as JSON, CSV, or Excel.

**Best practices:**

- Use `offset` pagination to systematically cover all projects
- Filter by category URL to focus on specific industries
- Run during off-peak hours to minimize Ulule server load
- Respect Ulule's Terms of Service and robots.txt guidelines

***

### Use Cases & Business Value

- **Market intelligence:** Monitor emerging product categories and funding trends across Europe
- **Investor scouting:** Identify promising projects or creators for follow-on investment
- **Content strategy:** Discover trending ideas and underrepresented niches worth covering
- **Academic research:** Analyze crowdfunding success rates, creator demographics, or reward structures
- **BI & dashboards:** Feed live project data into Tableau, Power BI, or Looker for real-time monitoring

The Ulule Project Search Scraper transforms scattered campaign listings into clean datasets, eliminating manual collection and enabling data-driven insights across the crowdfunding landscape.

***

### Conclusion

The **Ulule Project Search Scraper** unlocks the full potential of Europe's largest crowdfunding ecosystem. Whether tracking market trends, scouting investment opportunities, or conducting research, this scraper delivers detailed, structured project data at scale. Combine it with analysis tools to uncover patterns, identify winners, and stay ahead in the crowdfunding space.

# Actor input Schema

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

Add the URLs of the project 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.ulule.com/discover/?offset=120"
  ],
  "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.ulule.com/discover/?offset=120"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/ulule-project-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.ulule.com/discover/?offset=120"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/ulule-project-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.ulule.com/discover/?offset=120"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/ulule-project-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Ulule Project Search Scraper",
        "description": "Discover and extract detailed crowdfunding project data from Ulule's vast catalog. This scraper collects campaign info, funding metrics, supporter counts, dates, and 30+ fields per project — perfect for market research, investment analysis, and trend monitoring.",
        "version": "0.0",
        "x-build-id": "fDLuiEkgJIMAAcncf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~ulule-project-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-ulule-project-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/stealth_mode~ulule-project-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-ulule-project-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/stealth_mode~ulule-project-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-ulule-project-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 project list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the project 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
