# RGE France · Artisan Emails & Directors (`corent1robert/rge-siren-enrich`) Actor

Two jobs: find certified RGE artisans in a French department, or enrich SIRETs you already have. Every row: qualifications, named director, phone, email. No login, no API key.

- **URL**: https://apify.com/corent1robert/rge-siren-enrich.md
- **Developed by:** [Corentin Robert](https://apify.com/corent1robert) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.49 / 1,000 rge artisan + named directors

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## RGE France Scraper — Artisan Directory + Directors

**Two jobs, one Actor.** Pick the job first, then how many and **What to include**.

| Job | You have… | You get… |
|-----|-----------|----------|
| **Find RGE artisans** | A French department and a trade | Every matching certified workshop from the official France Rénov / ADEME list |
| **Enrich SIRETs** | SIRET / SIREN numbers from your CRM | Only companies **still** on the current RGE list |

**By default** every row is **Call-ready**: directory + named gérant. Switch **What to include** to Directory only (cheaper) or Full (visit the artisan website).

1. **Directory** — company, SIRET, address, RGE qualifications, phone, email
2. **Directors** — named gérant / président from SIRENE (first name, last name, role)

This is the **current officer** published on the company register, not a historical founder.

**No login. No API key. No France Rénov account.**

Built for: MaPrimeRénov lead platforms · HVAC / insulation wholesalers · CEE brokers · retrofit SaaS · outbound on certified craftsmen

***

### Who is this for?

| You are… | Typical goal | Suggested setup |
|----------|--------------|-----------------|
| MaPrimeRénov / retrofit lead seller | Certified installers who can actually carry the work | **Find RGE artisans** · Heat pumps · Quick look first, then All matching workshops |
| HVAC / PAC / insulation wholesaler | Named gérants to call in a sales territory | **Find RGE artisans** · your trade · Call list (250) or All matching workshops |
| CEE broker or energy-saving certificate desk | RGE-qualified partners by zone | **Find RGE artisans** · Renewables or energy-efficiency group · All matching workshops |
| Retrofit SaaS / marketplace | Onboard labelled artisans with a decision-maker name | **Enrich SIRETs** · paste IDs from your CRM |
| Agency running outbound for a manufacturer | Phone + first name before the first call | **Find RGE artisans** · Call-ready (directory already has contacts) |
| Franchise / network developer | Map labelled workshops around a city | **Find RGE artisans** · All trades · All matching workshops, then filter `city` |

**By default** (both jobs) you get company name, SIRET, address, RGE trades, certifying body, **director first/last name and role**, plus directory **phone and email**. On a Rhône sample, about **9 in 10** rows already carry both phone and email from the official list — you do not need a website crawl to start calling.

**When to pick Directory only:** you only need the certified list (quals, phone, email) and want the lower per-row price (**$3.49 / 1k** Free vs **$4.99** Call-ready).

**When to pick Full:** the artisan has a real company site (e.g. `deplusbelle.fr`) and you want mentions légales → confirmed SIREN + company/gérant + extra contacts. Qualit’EnR profile URLs are ignored.

***

### What it does

| Job | How it works | Best for |
|-----|--------------|----------|
| Find RGE artisans | Pick a French department and trade. The Actor lists matching RGE workshops, then attaches SIRENE directors. | Fresh territory call lists |
| Enrich SIRETs | Paste IDs you already have. Only companies still on the current RGE list are saved. A SIREN expands to every labelled workshop of that company. | CRM backfill |

Same output either way: **one row per workshop (SIRET)**. Default **What to include** is Call-ready (directory + gérant). Pick Directory only for the cheaper row.

***

### What it extracts

#### Directory layer (every row)

| Field | Description |
|-------|-------------|
| `siret` / `siren` | Establishment and legal-unit IDs |
| `companyName` | Display name (title case; legal form kept as SAS / SARL / …) |
| `address`, `postalCode`, `city`, `department` | Workshop location |
| `phone`, `email` | Contacts published on the official list (grouped FR phone, lowercase email) |
| `website` | Own site when it is not a cert directory |
| `tradeDomains`, `metaDomains`, `certBodies` | Qualifications rolled up per SIRET (`Qualit'EnR`, Qualibat, …) |
| `qualifications` | Full certificate list (code, body, validity dates) |
| `openToHouseholds` | Listed as available to private households |

#### Directors layer (Call-ready, default)

| Field | Description |
|-------|-------------|
| `directorName` / `directorFirstName` / `directorLastName` | Primary **physical person** (gérant, président…) when published |
| `directorKind` | `person` or `company` (holding / personne morale — first/last stay empty) |
| `directorHolding` | When the président is a holding, the named person is taken from that SIREN (one hop) |
| `directorRole`, `directorDateOfBirth` | Role and month/year of birth when published |
| `directors` | Full officer list (commissaires aux comptes excluded) |
| `legalName`, `nafCode`, `workforceRange`, `companyStatus` | Register extras |

Omitted when **What to include** is Directory only.

#### Website enrich (optional add-on)

When **What to include** is **Full** and the RGE row has a **real company site**, same path as [Domain → SIREN](https://apify.com/corent1robert/domain-siren-scraper):

1. Visit the homepage and **mentions légales** (up to 3 pages)
2. Extract SIREN / SIRET / TVA
3. Confirm the ID on the public company register
4. Attach legal name, NAF, status and the named director from **that** SIREN
5. Also harvest public email, phone and socials

| Field | Description |
|-------|-------------|
| `websiteSiren` / `websiteSiret` / `websiteTva` | Identifiers found on the site |
| `websiteLegalName`, `websiteNaf`, `websiteCompanyStatus` | Register confirm of the site SIREN |
| `websiteDirectorName` | Named officer of the site SIREN (often the same gérant) |
| `websiteSirenMatch` | `true` when the site SIREN equals the RGE SIREN |
| `websiteSirenSourceUrl` | Legal page the ID was taken from |
| `email_from_website` / `phone_from_website` | Extra public mailbox / phone |
| `socials` | LinkedIn, Facebook, Instagram, X, YouTube when linked |

These website fields are **omitted** unless **What to include** is Full. Missing register fields are `null`. IDs **not on the current RGE list** are logged and **never billed**. Qualit’EnR / Qualibat / France Rénov profile URLs are not crawled.

***

### Quick start

1. Open this Actor in Apify Console
2. Leave **Job** on **Find RGE artisans**
3. Keep **Department** Rhône / Lyon and **Trade** Heat pumps (or pick yours)
4. Leave **How many** on **Quick look (25)** and **What to include** on **Call-ready**
5. Click **Start** — download JSON, CSV or Excel from the Dataset tab

Already have IDs? Switch **Job** to **Enrich SIRETs**, paste one SIRET or SIREN per line, click **Start**.

No pagination to configure. **All matching workshops** follows the full official list (Find) or every pasted ID still labelled RGE (Enrich).

***

### Ready-made examples

Saved Console tasks (same Actor, ready to run):

| Example | Job | View |
|---------|-----|------|
| [Heat-pump RGE artisans in Rhône](https://console.apify.com/actors/tasks/oa9QluWxJmc7AaooP) | Find artisans · PAC | Overview |
| [External-wall insulation in Paris](https://console.apify.com/actors/tasks/c4EkctAIHDm1FBgwB) | Find artisans · ITE | Overview |
| [Enrich a SIRET list](https://console.apify.com/actors/tasks/8IqWKgfo0pTyjxp5V) | Enrich SIRETs | Qualifications |
| [CRM columns: first name + phone](https://console.apify.com/actors/tasks/V4CocdXqx2BbOGm2z) | Find artisans | Outreach / CRM |

Store **Examples** tab landing pages go live after the Actor itself is public. Specs live in `published-tasks/`.

***

### Input

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `mode` | string | `territory` | **Job.** `territory` = Find RGE artisans. `sirets` = Enrich SIRETs. Pasting IDs also switches to Enrich. |
| `department` | string | `69` | French department code (`01`–`95`, `2A`/`2B`, overseas). Used in Find; ignored in Enrich. |
| `trade` | string | `heat_pump_heating` | RGE qualification or grouped trade. Used in Find; ignored in Enrich. |
| `sirets` | string\[] | — | SIRET (14) or SIREN (9). Used in Enrich; ignored in Find. A SIREN expands to every RGE workshop of that company. |
| `howMany` | string | `preview` | `preview` (25), `call_list` (250), `all` (every match) |
| `rowDepth` | string | `directors` | `directors` = Call-ready (default). `directory` = cheaper, no gérant. `website` = also visit the site (mentions légales → SIREN + contacts) |

**API-only** (accepted in JSON, hidden from Console): `enrichDirectors` / `enrichWebsiteContacts` (ignored when `rowDepth` is set), `maxResults` (integer; `0` = no cap, overrides `howMany`), `verboseLogs`, `maxConcurrency` (default 4, max 8), `requestDelayMs` (default 200), `proxyConfiguration`.

#### JSON example (Find RGE artisans)

```json
{
  "mode": "territory",
  "department": "69",
  "trade": "heat_pump_heating",
  "howMany": "preview"
}
```

#### JSON example (whole department)

```json
{
  "mode": "territory",
  "department": "69",
  "trade": "heat_pump_heating",
  "howMany": "all"
}
```

#### JSON example (directory only — cheaper)

```json
{
  "mode": "territory",
  "department": "69",
  "trade": "heat_pump_heating",
  "howMany": "preview",
  "rowDepth": "directory"
}
```

#### JSON example (Enrich SIRETs)

```json
{
  "mode": "sirets",
  "sirets": ["80170137600015"],
  "howMany": "call_list"
}
```

***

### Output sample

```json
{
  "siret": "80170137600015",
  "siren": "801701376",
  "companyName": "SARL Sudthermique",
  "legalName": "Sud Thermique",
  "address": "6 Rue Elie Martin",
  "postalCode": "34530",
  "city": "Montagnac",
  "department": "34",
  "phone": "06 49 42 39 24",
  "email": "sudthermique@hotmail.fr",
  "website": null,
  "directorName": "Jaouad Ouarchiti",
  "directorFirstName": "Jaouad",
  "directorLastName": "Ouarchiti",
  "directorRole": "Gérant",
  "directorKind": "person",
  "tradeDomains": ["Pompe à chaleur : chauffage"],
  "certBodies": ["Qualit'EnR"],
  "qualificationCount": 1,
  "openToHouseholds": true,
  "companyStatus": "Active",
  "sireneIsRge": true
}
```

Download in JSON, CSV, Excel or HTML from the Dataset tab. Use **Outreach / CRM** for first name / last name / phone / email columns.

***

### How it works

1. Read the official ADEME **Liste des entreprises RGE** (same source as France Rénov)
2. Collapse many qualifications into **one row per workshop (SIRET)**
3. On Call-ready / Full, look up the SIREN on the public company register for **named directors**
4. Optionally visit the artisan website: mentions légales → confirmed SIREN + contacts
5. Push each row as soon as it is ready — you see data during the run

***

### How much does it cost?

HTTP-only (no browser). You pay per **unique workshop saved**, not per qualification line. Not-found IDs are free.

| Event | Free | Bronze | Silver | Gold |
|-------|------|--------|--------|------|
| Directory only (`rge-directory`) | **$3.49 / 1k** | $2.99 | $2.49 | $1.99 |
| Call-ready — directory + named directors (`rge-artisan-directors`, default) | **$4.99 / 1k** | $4.49 | $3.99 | $3.49 |
| Website — SIREN + contacts (`rge-website-contacts`, optional add-on) | $4.49 / 1k | $3.99 | $3.49 | $2.99 |

You are billed **one** of the two artisan events per saved workshop — never both. Website add-on is charged **in addition**, and **only when a real company site is crawled**.

| Scenario | Free | Bronze | Silver | Gold |
|----------|------|--------|--------|------|
| 25 artisans, directors On (first test) | ~$0.12 | ~$0.11 | ~$0.10 | ~$0.09 |
| 1,000 artisans, directory only | **$3.49** | $2.99 | $2.49 | $1.99 |
| 1,000 artisans, directory + directors | **$4.99** | $4.49 | $3.99 | $3.49 |
| 1,000 artisans + directors + website SIREN/contacts on every site | ~$9.48 | ~$8.48 | ~$7.48 | ~$6.48 |

Higher Apify plans pay the same or less per row (Platinum / Diamond). Compute stays low because both sources are open JSON APIs. Residential proxies are **not** required.

Free Apify accounts are capped at **100 artisans per run**.

***

### Is it legal to scrape RGE / France Rénov?

This Actor only reads data that **ADEME** and **INSEE / SIRENE** already publish as open data (RGE company list + public company register). Director names, phones and emails are personal data: use them under GDPR and your own legitimate-interest / consent basis. Do not spam. See also [Apify’s note on the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### Limitations

- **Directory contacts, not guaranteed inboxes.** ADEME publishes the phone/email the artisan listed. They can be outdated or a shared mailbox.
- **No website on most RGE rows.** Qualit’EnR / Qualibat / France Rénov profile URLs are dropped. Website enrich only runs on a real company domain.
- **Holdings as officers.** If SIRENE lists a personne morale as président, the Actor looks up that SIREN once and promotes a physical person when published (`directorHolding` keeps the holding name). If the holding has no named person, `directorKind` stays `company`.
- **Given-name accents.** SIRENE often stores `SEBASTIEN` without diacritics. Common French first names are restored (`Sébastien`, `Jérôme`); last names stay as published.
- **DOB privacy.** SIRENE often shows month/year only, not a full birth date.
- Large **All matching workshops** exports take longer — default timeout is 2 hours. Pacing is built in; there is no Delay or Proxy field in Console.

***

### Typical fill rates

Reference export: **200 RGE rows in department 69** (qualifications collapsed later by SIRET).

| Field | Fill (this sample) |
|-------|--------------------|
| Phone (directory) | ~92% |
| Email (directory) | ~92% |
| Both phone and email | ~90% |
| Own website (non-directory URL) | varies; Qualit’EnR profile links are dropped |
| Named physical director (SIRENE) | high on sociétés; sole traders use the entrepreneur’s name |

***

### Same suite — France & UK

- **[Domain to SIREN](https://apify.com/corent1robert/domain-siren-scraper)** — paste a website, get a confirmed SIREN / SIRET. Chain here or into French Companies for directors.
- **[French Companies · Search & SIREN Enrich](https://apify.com/corent1robert/recherche-entreprises-scraper)** — paste a Pappers URL or SIREN list (any sector, not RGE-only).
- **[BODACC France announcements](https://apify.com/corent1robert/bodacc-announcements-scraper)** — creations, insolvency and filings to refresh a territory file.
- **[UK Companies House](https://apify.com/corent1robert/uk-companies-house-scraper)** — directors, PSC and SIC search.
- **[Germany Handelsregister](https://apify.com/corent1robert/germany-handelsregister-scraper)** — court + HRB, legal form, capital and registered address.

***

### FAQ

- **What is the difference between the two jobs?** **Find RGE artisans** builds a new list from a department + trade. **Enrich SIRETs** filters IDs you already have. **What to include** is a separate choice (Call-ready by default).
- **Are directors optional?** Yes — pick **Directory only** in **What to include**. Call-ready (default) attaches the SIRENE gérant.
- **What does Full add?** Same pipeline as [Domain → SIREN](https://apify.com/corent1robert/domain-siren-scraper): mentions légales → SIREN confirmed on the register → legal name, NAF, status, named director, plus public contacts. Only on a real company domain (example: `deplusbelle.fr`). Add-on, billed only when the site is crawled.
- **Is this the founder?** No. SIRENE publishes the **current officer** (gérant, président…). That is often the founder on small SARL / EI, but not always. Historical founders are not in this register.
- **Do I need an ADEME or INSEE API key?** No.
- **Is this the same as the France Rénov public directory?** Same official RGE list (ADEME open data), plus an optional SIRENE lookup so you can address the gérant — the same register confirm [Domain to SIREN](https://apify.com/corent1robert/domain-siren-scraper) uses after extracting an ID.
- **Why is `website` empty?** Cert-portal URLs (Qualit’EnR, Qualibat, France Rénov) are not the artisan’s site. Pick **Full** only when a real domain is present.
- **Can I export a whole department?** Set **Job** to **Find RGE artisans** and **How many** to **All matching workshops**. We page the official list until it ends. Free Apify plans are capped at 100 rows per run.
- **What if an ID is not RGE anymore?** It is skipped and not billed.

***

### Also available

| Actor | Best for |
|-------|----------|
| **[ORIAS Scraper](https://apify.com/corent1robert/orias-scraper)** | Insurance / finance intermediaries |
| **[French Lawyers · CNB](https://apify.com/corent1robert/ordre-avocats-france-annuaire)** | Official avocat emails + SIREN |
| **[Notaires.fr Scraper](https://apify.com/corent1robert/notaires-fr-annuaire-scraper)** | Notary offices |
| **[French Accountants](https://apify.com/corent1robert/experts-comptables-annuaire-scraper)** | Expert-comptable firms |

***

### Local development

```bash
npm install
npm test
apify run --input-file=./input.json
```

`apify run` validates **`storage/key_value_stores/default/INPUT.json`** against the input schema **before** your code runs. Keep that file in sync with Console prefill, or pass `--input-file`.

Locally, a repo-root `input.json` (if present) **overwrites** overlapping keys from `Actor.getInput()`. On the Apify platform, only Console / API input applies.

Output: Dataset in `storage/datasets/default/`, `output.csv` (Excel BOM) at the project root, `RUN_LOG` in the default key-value store.

***

### Support

Contact <corentin@outreacher.fr> for custom territories, a private feed, or bulk exports.

Ready? Leave **Find RGE artisans**, keep Heat pumps (or your trade), and click **Start**.

# Actor input Schema

## `mode` (type: `string`):

**Find RGE artisans** — pick a French department and trade. Build a call list from the official France Rénov directory.

**Enrich SIRETs** — paste SIRET / SIREN numbers you already have. Keep only companies still on the current RGE list.

## `department` (type: `string`):

French department your team covers. Default **69 — Rhône** (Lyon metro). **Ignored** in Enrich SIRETs.

## `trade` (type: `string`):

The work you sell into. Grouped options (Renewables, energy-efficiency) are the fastest start. Default **Heat pumps**. **Ignored** in Enrich SIRETs.

## `sirets` (type: `array`):

One **14-digit SIRET** or **9-digit SIREN** per line. A SIREN expands to every labelled workshop of that company. Example: `80170137600015`. **Required** in Enrich SIRETs; **ignored** in Find RGE artisans.

## `howMany` (type: `string`):

**Quick look** — 25 workshops, under a minute.

**Call list** — 250 workshops, about a week of outbound.

**All matching workshops** — every RGE hit for this run. In Find artisans that is the whole department; in Enrich that is every pasted ID still on the list.

## `rowDepth` (type: `string`):

**Call-ready (default)** — official directory + named gérant ($4.99 / 1k Free).

**Directory only** — quals, phone, email. No gérant name. Billed cheaper ($3.49 / 1k Free).

**Full** — also visit the artisan website (mentions légales → confirmed SIREN + company + extra contacts). Add-on, only when a real company site is crawled — not Qualit’EnR.

## `enrichDirectors` (type: `boolean`):

API-only. Prefer **What to include**. Ignored when rowDepth is set.

## `enrichWebsiteContacts` (type: `boolean`):

API-only. Prefer **What to include**. Ignored when rowDepth is set.

## Actor input object example

```json
{
  "mode": "territory",
  "department": "69",
  "trade": "heat_pump_heating",
  "howMany": "preview",
  "rowDepth": "directors",
  "enrichDirectors": true,
  "enrichWebsiteContacts": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

One row per unique SIRET — RGE quals, directors, phone, email.

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

Company, trade, director, phone, email, city.

## `outreachCrm` (type: `string`):

Director name split plus directory phone and email.

## `qualifications` (type: `string`):

RGE certificates, bodies and validity dates.

## `runLog` (type: `string`):

Plain-text log of the run phases and progress.

# 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 = {
    "mode": "territory",
    "department": "69",
    "trade": "heat_pump_heating",
    "howMany": "preview",
    "rowDepth": "directors"
};

// Run the Actor and wait for it to finish
const run = await client.actor("corent1robert/rge-siren-enrich").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 = {
    "mode": "territory",
    "department": "69",
    "trade": "heat_pump_heating",
    "howMany": "preview",
    "rowDepth": "directors",
}

# Run the Actor and wait for it to finish
run = client.actor("corent1robert/rge-siren-enrich").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "mode": "territory",
  "department": "69",
  "trade": "heat_pump_heating",
  "howMany": "preview",
  "rowDepth": "directors"
}' |
apify call corent1robert/rge-siren-enrich --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,corent1robert/rge-siren-enrich"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/cV6jSztAp5GVk72KY/builds/RnaLWobBB9cQYewF4/openapi.json
