# Meteojob Jobs Search Scraper (`stealth_mode/meteojob-jobs-search-scraper`) Actor

Scrape structured job listings from Meteojob.com — one of France's top job boards. Extract 40+ fields per listing including salary, contract type, company info, recruiter details, and SEO metadata. Perfect for HR analysts, recruiters, and job aggregators.

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

## Pricing

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

## Meteojob.com Jobs Scraper: Extract French Job Listings at Scale

---

### What Is Meteojob.com?

Meteojob.com is a major French job search platform that aggregates listings from employers and recruitment agencies across France. It is well known for its "job temperature" scoring system, which ranks listings by relevance and candidate fit. The platform hosts roles across all sectors and contract types, from CDI and CDD to freelance and apprenticeship. Manually collecting this data is impractical at scale — the **Meteojob.com Jobs Scraper** automates extraction from search result pages, delivering clean, structured records ready for analysis.

---

### Overview

The **Meteojob Jobs Scraper** targets Meteojob's paginated search result URLs and extracts full job details for each listing found. It is suited for:

- **Recruiters** monitoring the French job market by keyword or sector
- **HR analysts** benchmarking salaries and contract trends
- **Job aggregator developers** feeding data into custom platforms
- **Researchers** studying French labor market demand

The scraper handles pagination via URL parameters, supports bulk URL input, and gracefully skips failed pages when configured to do so.

---

### Input Format

The scraper accepts a JSON configuration with three parameters:

```json
{
  "urls": [
    "https://www.meteojob.com/jobs?page=2&what=audit"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 50
}
````

| Field | Type | Description |
|---|---|---|
| `urls` | `array` | One or more Meteojob search result URLs to scrape. Supports bulk input. Use the `?what=` and `?page=` query parameters to target specific keywords and pages. |
| `ignore_url_failures` | `boolean` | If `true`, the scraper continues running when a URL fails instead of stopping the entire run. Recommended for bulk jobs. Default: `true`. |
| `max_items_per_url` | `integer` | Maximum number of job listings extracted per URL. Default: `20`. Set higher (e.g., `50`) to capture more results per search page. |

> **Tip:** To scrape multiple keyword searches, add several URLs with different `?what=` values (e.g., `?what=comptable`, `?what=marketing`). Increment `?page=` to cover deeper result pages.

***

### Output Format

**Sample output**

```json
{
  "score": 3.999194622039795,
  "temperature": 3.999194622039795,
  "id": "53657159",
  "last_modification": "2026-05-20T23:10:44.308Z",
  "publication_date": "2026-05-20T23:10:44.300Z",
  "main_job": {
    "label": "Chef de mission audit (H/F)",
    "id": 105460,
    "executive": true,
    "priority": false
  },
  "jobs": [
    {
      "label": "Chef de mission audit (H/F)",
      "id": 105460,
      "executive": true,
      "priority": false
    }
  ],
  "content_language": "fr",
  "locations": [
    {
      "geoname_id": 2985244,
      "admin1": 2985244,
      "admin1_label": "Provence-Alpes-Côte d'Azur",
      "admin1_code": "93",
      "country": 3017382,
      "country_label": "France",
      "country_code": "FR",
      "name": "Provence-Alpes-Côte d'Azur",
      "lat": 0,
      "lon": 0,
      "priority": true,
      "geoname_woe_type": 8,
      "woe_type": 2
    }
  ],
  "contract_types": [
    "CDI"
  ],
  "job_type": [
    "FULL_TIME"
  ],
  "title": "Responsable de mission audit H/F",
  "highlight": "Vos missions En tant que Responsable de mission audit, vous intervenez sur un rôle clé au sein du cabinet : - Planification et...",
  "description": "Vos missions\n<br>\nEn tant que Responsable de mission audit, vous intervenez sur un rôle clé au sein du cabinet :\n<br>\n- Planification et pilotage des missions d'audit\n<br>\n- Supervision des travaux d'audit sur l'ensemble des cycles\n<br>\n- Analyse des états financiers et identification des risques\n<br>\n- Validation des travaux et rédaction des notes de synthèse\n<br>\n- Encadrement et montée en compétences des équipes (auditeurs juniors et confirmés)\n<br>\n- Relation directe avec les clients et présentation des conclusions\n<br>\n- Participation à des missions exceptionnelles\n<br>\nVous êtes un véritable référent technique et managérial au sein de l'équipe.\n<br>",
  "meta_title": "Annonce Emploi CDI Chef de Mission Audit Provence-Alpes-Côte d'Azur - Marseille AEC Recrute en CDI | Meteojob.com",
  "meta_description": "Découvrez l'Annonce Emploi Chef de Mission Audit Provence-Alpes-Côte d'Azur en CDI pour Marseille AEC publiées sur Meteojob. Postulez dès Maintenant en ligne.",
  "profile_description": "Votre profil\n<br>\n- Formation supérieure en audit/comptabilité (DSCG, Master CCA ou équivalent)\n<br>\n- Expérience d'au moins 5 ans en cabinet d'audit\n<br>\n- Maîtrise des cycles d'audit et des normes\n<br>\n- Expérience en management d'équipe\n<br>\n- Rigueur, autonomie et excellent relationnel\n<br>\nLes avantages\n<br>\n- Rémunération attractive : 55KEUR à 70KEUR selon profil + bonus\n<br>\n- Télétravail possible\n<br>\n- Horaires flexibles\n<br>\n- Primes de performance\n<br>\n- 13ème mois\n<br>\n- Tickets restaurant\n<br>\n- Participation aux frais de transport\n<br>\n- Formation continue (DEC, CAC...)\n<br>\n- Environnement international\n<br>\nPourquoi rejoindre ce cabinet ?\n<br>\n- Des missions techniques et valorisantes\n<br>\n- Une évolution rapide vers des postes de management supérieur\n<br>\n- Une clientèle internationale et exigeante\n<br>\n- Un cadre de travail attractif à Monaco\n<br>\nPostulez dès maintenant.Votre candidature sera traitée en toute confidentialité.",
  "reference": "AD1154UZ",
  "external_reference": "WSMARSEILLEAEC-077708-26 29253914",
  "company_description": "Winsearch, cabinet de recrutement spécialisé en Audit & Expertise Comptable, accompagne aujourd'hui un cabinet d'audit reconnu basé à Monaco (98000), dans le recrutement de son futur Responsable de mission audit H/F en CDI.\n<br>\nLe cabinet\n<br>\nVous intégrez une structure structurée, exigeante et en forte croissance, intervenant auprès d'une clientèle haut de gamme et internationale (groupes, sociétés d'investissement, PME structurées...).\n<br>\nLe cabinet se distingue par :\n<br>\n- Des missions techniques à forte valeur ajoutée\n<br>\n- Une organisation moderne et digitalisée\n<br>\n- Une équipe dynamique et engagée\n<br>\n- De réelles perspectives d'évolution\n<br>",
  "benefits": "TT, Intéressement, 13ème mois",
  "permanent": false,
  "mobility": false,
  "driving_licence": [],
  "company": {
    "id": 27551,
    "name": "WINSEARCH",
    "industry_field": {
      "id": 38,
      "meteojob_id": "37",
      "value": "Recrutement et placement"
    },
    "excluded_from_mailing": false,
    "bypass_job_application_process": false
  },
  "locality": "Provence-Alpes-Côte d'Azur",
  "status": "PUBLISHED",
  "pushed_contract_type": false,
  "experience_in_job_required": false,
  "top": false,
  "recruiter": "Marseille AEC",
  "publisher": "Marseille AEC",
  "anonymous": false,
  "url": {
    "search": "/Emploi-Marseille-Aec",
    "logo": "/images/1/5/5/27551_IMAGE_SMALL.png?1776098927000",
    "job_offer": "/jobs/53657159",
    "job_offer_short": "/jobs/53657159",
    "redirect": "mailto:***@***.***"
  },
  "salary": {
    "currency": "EUR",
    "from": 55000,
    "to": 70000,
    "period": "ANNUM",
    "display_salary": "BETWEEN"
  },
  "labels": {
    "contract_type_list": [
      {
        "id": 1,
        "meteojob_id": "CDI",
        "value": "CDI"
      }
    ],
    "job_type_list": [
      {
        "id": 1,
        "meteojob_id": "FULL_TIME",
        "value": "Temps Plein"
      }
    ],
    "macro_job_list": [
      {
        "id": 6,
        "value": "Finance / Compta. / Assurance"
      }
    ],
    "job_list": [
      {
        "id": 105460,
        "value": "Chef de mission audit (H/F)"
      }
    ],
    "industry_field": {
      "id": 40,
      "meteojob_id": "39",
      "value": "Sociétés d'audit et comptables"
    },
    "shift_work_list": [],
    "degree_list": [
      {
        "id": 14,
        "meteojob_id": "BAC+5",
        "value": "Bac+5"
      },
      {
        "id": 15,
        "meteojob_id": "MASTER",
        "value": "Bac+5, Master - Magistère, MIAGE"
      }
    ],
    "experience_level_list": [
      {
        "id": 3,
        "meteojob_id": "THREE_FIVE",
        "value": "3-5 ans"
      },
      {
        "id": 4,
        "meteojob_id": "SIX_TEN",
        "value": "6-10 ans"
      }
    ],
    "driving_licence_list": [],
    "language_list": [],
    "specialization_list": [],
    "behavior_skill_list": [],
    "salary": {
      "id": -1,
      "value": "55 000 € - 70 000 € par an"
    },
    "telework": {
      "id": 3,
      "meteojob_id": "OCCASIONAL",
      "value": "Télétravail partiel"
    },
    "travel": {
      "id": 1,
      "meteojob_id": "UNDEFINED",
      "value": "Déplacement non précisé"
    }
  },
  "organization_unit": {
    "id": 17891
  },
  "focus": false,
  "free_offer": false,
  "offer_premium": false,
  "smart_feeds_tag": 0,
  "pushing": 0,
  "job_categories": [],
  "from_url": "https://www.meteojob.com/jobs?page=2&what=audit"
}
```

Each job listing returns a structured record with 40+ fields:

#### Scoring & Relevance

| Field | Meaning |
|---|---|
| `Score` | Relevance score assigned by Meteojob's matching algorithm |
| `Temperature` | Meteojob's proprietary job "heat" indicator — reflects popularity or urgency of the listing |
| `Top` | Whether the listing is promoted to the top of results |
| `Highlight` | Whether the listing has a visual highlight/boost |
| `Pushing` | Indicates if the listing is being actively pushed to candidates |
| `Offer Premium` | Whether this is a premium-tier listing |
| `Free Offer` | Whether the listing was posted under a free plan |
| `Smart Feeds Tag` | Tag used for smart feed distribution |
| `Focus` | Focus placement flag for targeted visibility |

#### Identification & Dates

| Field | Meaning |
|---|---|
| `ID` | Unique Meteojob internal listing identifier |
| `Reference` | Internal reference code from the employer |
| `External Reference` | Reference code used on external systems or ATS |
| `Publication Date` | Date the listing was published publicly |
| `Last Modification` | Timestamp of the most recent update |
| `Status` | Current listing status (e.g., active, closed) |

#### Job Content

| Field | Meaning |
|---|---|
| `Title` | Job title as displayed on Meteojob |
| `Description` | Full job description (may include HTML) |
| `Profile Description` | Candidate profile and requirements section |
| `Company Description` | Description of the hiring company |
| `Benefits` | Perks and benefits listed by the employer |
| `Content Language` | Language of the listing content (typically `fr`) |

#### SEO Metadata

| Field | Meaning |
|---|---|
| `Meta Title` | HTML `<title>` tag content for the listing page |
| `Meta Description` | HTML meta description used for search engine snippets |

#### Classification

| Field | Meaning |
|---|---|
| `Main Job` | Primary job category classification |
| `Jobs` | Associated job titles or roles |
| `Job Categories` | Sector/category tags assigned to the listing |
| `Job Type` | Nature of the role (e.g., full-time, part-time) |
| `Contract Types` | All applicable contract types (CDI, CDD, interim, etc.) |
| `Pushed Contract Type` | The contract type featured/highlighted for this listing |

#### Location & Mobility

| Field | Meaning |
|---|---|
| `Locations` | Geographic locations associated with the listing |
| `Locality` | Specific town or city |
| `Mobility` | Whether the role requires or allows mobility/travel |
| `Driving Licence` | Whether a driving licence is required |

#### Candidate Requirements

| Field | Meaning |
|---|---|
| `Experience In Job Required` | Required years or level of experience |
| `Permanent` | Whether the position is permanent (`true`/`false`) |
| `Salary` | Salary range or compensation details when disclosed |
| `Labels` | Qualification or certification labels required |

#### Company & Recruiter

| Field | Meaning |
|---|---|
| `Company` | Hiring company name and metadata |
| `Recruiter` | Recruiter or HR contact associated with the listing |
| `Publisher` | Entity that published the listing (employer, agency, etc.) |
| `Anonymous` | Whether the company identity is hidden from candidates |
| `Organization Unit` | Internal business unit or department |

#### URLs

| Field | Meaning |
|---|---|
| `URL` | Direct link to the full job listing page on Meteojob |

***

### How to Use

1. **Build your search URL** — Go to Meteojob.com, run a search (e.g., keyword + location), then copy the results page URL. Adjust `?page=` to target specific pages.
2. **Configure input** — Paste one or more URLs into the `urls` array. Set `max_items_per_url` based on how many listings you need per page (typically up to 20–50 per page).
3. **Run the scraper** — Start the actor and monitor the log for any failed URLs.
4. **Export** — Download results as JSON, CSV, or Excel.

**Best practices:**

- Use `ignore_url_failures: true` for multi-URL runs to avoid full stops on a single bad page.
- Scrape multiple pages by adding `?page=1`, `?page=2`, etc. as separate entries in `urls`.
- Combine `?what=` with `?where=` parameters for location-specific queries.

***

### Use Cases & Business Value

- **Salary benchmarking:** Aggregate `Salary` and `Contract Types` across sectors to build compensation reports
- **Market intelligence:** Track which roles are `Top`, `Pushed`, or `Premium` to gauge hiring urgency
- **Job board aggregation:** Feed structured listings into custom search platforms targeting French job seekers
- **Academic research:** Analyze French labor demand by region, sector, or contract type over time

***

### Conclusion

The **Meteojob.com Jobs Scraper** provides a reliable, configurable pipeline for extracting rich job data from one of France's most active hiring platforms. With 40+ output fields covering everything from Meteojob's unique temperature scoring to salary, recruiter, and SEO metadata, it delivers far more value than manual collection ever could. Configure your search URLs, set your limits, and let the scraper do the rest.

# 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.meteojob.com/jobs?page=2&what=audit"
  ],
  "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.meteojob.com/jobs?page=2&what=audit"
    ],
    "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/meteojob-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.meteojob.com/jobs?page=2&what=audit"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/meteojob-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.meteojob.com/jobs?page=2&what=audit"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/meteojob-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Meteojob Jobs Search Scraper",
        "description": "Scrape structured job listings from Meteojob.com — one of France's top job boards. Extract 40+ fields per listing including salary, contract type, company info, recruiter details, and SEO metadata. Perfect for HR analysts, recruiters, and job aggregators.",
        "version": "0.0",
        "x-build-id": "LPAqwVN3TgUlpeEvG"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~meteojob-jobs-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-meteojob-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/stealth_mode~meteojob-jobs-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-meteojob-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/stealth_mode~meteojob-jobs-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-meteojob-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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
