{
  "openapi": "3.0.1",
  "info": {
    "title": "French Companies: France SIRENE/SIRET Leads, KYB & BODACC",
    "description": "French companies API & SIRENE scraper, SIREN lookup: French company data, 26M+ companies (entreprises françaises, France annuaire) from INSEE SIRENE (SIREN, SIRET) by activity (code NAF), area, size, revenue. Directors, VAT; verified website, emails, phones: company data France, B2B leads, no cap.",
    "version": "1.0",
    "x-build-id": "s357lEBcghPwznqIY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/euroscrape~france-companies/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-euroscrape-france-companies",
        "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/euroscrape~france-companies/runs": {
      "post": {
        "operationId": "runs-sync-euroscrape-france-companies",
        "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/euroscrape~france-companies/run-sync": {
      "post": {
        "operationId": "run-sync-euroscrape-france-companies",
        "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": {
          "query": {
            "title": "🔎 Search text",
            "type": "string",
            "description": "Company name, trade name, director name or address words, e.g. \"boulangerie\", \"plomberie\", \"Dupont\". It matches names, not activity: to get every company of a trade, use NAF codes or sectors below. Optional if you use filters below."
          },
          "nearAddress": {
            "title": "📍 …or around an address",
            "type": "string",
            "description": "Companies with an establishment within the radius of this French address (e.g. \"Place Bellecour, Lyon\" or \"12 rue de la République, Marseille\"). Combine with NAF codes or sectors; name, size, category, legal form and labels are applied too; departments, postal codes and regions are ignored (the radius sets the area). Each row gets distanceKm."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 0.1,
            "maximum": 50,
            "type": "number",
            "description": "Up to 50 km.",
            "default": 5
          },
          "nafCodes": {
            "title": "Activity codes (NAF/APE)",
            "type": "array",
            "description": "e.g. 43.22A (plumbing), 56.10A (restaurants), 62.01Z (software). Full list: insee.fr. Leave empty to use sectors or text search.",
            "items": {
              "type": "string"
            }
          },
          "sectors": {
            "title": "Sectors",
            "type": "array",
            "description": "Broad activity sections (NAF sections).",
            "items": {
              "type": "string",
              "enum": [
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G",
                "H",
                "I",
                "J",
                "K",
                "L",
                "M",
                "N",
                "O",
                "P",
                "Q",
                "R",
                "S",
                "T",
                "U"
              ],
              "enumTitles": [
                "A – Agriculture, forestry & fishing",
                "B – Mining & quarrying",
                "C – Manufacturing",
                "D – Electricity & gas",
                "E – Water, sewerage & waste",
                "F – Construction",
                "G – Wholesale & retail trade, car repair",
                "H – Transport & storage",
                "I – Accommodation & food service",
                "J – Information & communication",
                "K – Finance & insurance",
                "L – Real estate",
                "M – Professional, scientific & technical",
                "N – Administrative & support services",
                "O – Public administration",
                "P – Education",
                "Q – Health & social work",
                "R – Arts, entertainment & recreation",
                "S – Other services",
                "T – Households as employers",
                "U – Extraterritorial organizations"
              ]
            }
          },
          "departments": {
            "title": "📍 Departments",
            "type": "array",
            "description": "Department numbers, e.g. 75, 69, 13, 2A. Matches companies having at least one establishment there.",
            "items": {
              "type": "string"
            }
          },
          "postalCodes": {
            "title": "Postal codes",
            "type": "array",
            "description": "e.g. 75011, 69003.",
            "items": {
              "type": "string"
            }
          },
          "regions": {
            "title": "Regions (INSEE codes)",
            "type": "array",
            "description": "e.g. 84 (Auvergne-Rhône-Alpes), 11 (Île-de-France), 93 (PACA).",
            "items": {
              "type": "string"
            }
          },
          "headquartersInArea": {
            "title": "Head office in the area only",
            "type": "boolean",
            "description": "Departments, postal codes and regions normally match every company with at least one establishment there (a Paris firm with a Lyon branch shows up in 69). Tick this to keep only companies whose head office (siège) is in the area you chose.",
            "default": false
          },
          "employeeRanges": {
            "title": "👥 Headcount",
            "type": "array",
            "description": "Employee headcount ranges (INSEE).",
            "items": {
              "type": "string",
              "enum": [
                "NN",
                "00",
                "01",
                "02",
                "03",
                "11",
                "12",
                "21",
                "22",
                "31",
                "32",
                "41",
                "42",
                "51",
                "52",
                "53"
              ],
              "enumTitles": [
                "No employees (non-employer)",
                "0 employees",
                "1–2",
                "3–5",
                "6–9",
                "10–19",
                "20–49",
                "50–99",
                "100–199",
                "200–249",
                "250–499",
                "500–999",
                "1,000–1,999",
                "2,000–4,999",
                "5,000–9,999",
                "10,000+"
              ]
            }
          },
          "companyCategories": {
            "title": "Company category",
            "type": "array",
            "description": "INSEE size category (based on headcount, revenue and balance sheet).",
            "items": {
              "type": "string",
              "enum": [
                "PME",
                "ETI",
                "GE"
              ],
              "enumTitles": [
                "SME (PME)",
                "Mid-cap (ETI)",
                "Large company (GE)"
              ]
            }
          },
          "revenueMin": {
            "title": "Min revenue (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Only companies with published accounts."
          },
          "revenueMax": {
            "title": "Max revenue (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Only companies with published accounts."
          },
          "netIncomeMin": {
            "title": "Min net income (€)",
            "type": "integer",
            "description": "Optional."
          },
          "netIncomeMax": {
            "title": "Max net income (€)",
            "type": "integer",
            "description": "Optional."
          },
          "createdAfter": {
            "title": "Created after",
            "type": "string",
            "description": "Company creation date (YYYY-MM-DD). The official API cannot sort by date, so the Actor scans the matching companies (up to 20,000) to find them: narrow with a department or NAF code for brand-new companies."
          },
          "createdBefore": {
            "title": "Created before",
            "type": "string",
            "description": "Company creation date (YYYY-MM-DD)."
          },
          "labels": {
            "title": "Labels & types",
            "type": "array",
            "description": "Official labels and company types.",
            "items": {
              "type": "string",
              "enum": [
                "rge",
                "organic",
                "ess",
                "qualiopi",
                "training_organization",
                "mission_company",
                "association",
                "sole_proprietor",
                "exclude_sole_proprietors",
                "siae",
                "epv",
                "finess"
              ],
              "enumTitles": [
                "RGE certified (energy renovation)",
                "Organic (Agence Bio)",
                "Social economy (ESS)",
                "Qualiopi",
                "Training organization",
                "Mission-driven company",
                "Associations only",
                "Sole proprietors only",
                "Exclude sole proprietors",
                "Work-integration (SIAE)",
                "Living heritage (EPV)",
                "Health & social (FINESS)"
              ]
            }
          },
          "legalForms": {
            "title": "Legal forms (codes)",
            "type": "array",
            "description": "INSEE legal category codes, e.g. 5710 (SAS), 5499 (SARL), 5720 (SASU), 1000 (sole proprietor).",
            "items": {
              "type": "string"
            }
          },
          "onlyActive": {
            "title": "Active companies only",
            "type": "boolean",
            "description": "Exclude ceased companies.",
            "default": true
          },
          "onlyWithDirectors": {
            "title": "Only companies with a named director",
            "type": "boolean",
            "description": "Keep only companies with at least one named natural-person director (useful for outreach).",
            "default": false
          },
          "sirens": {
            "title": "…or look up SIREN numbers",
            "type": "array",
            "description": "Enrich your own list: one SIREN (9 digits), SIRET, or Pappers / Societe.com / annuaire-entreprises page address per line. Other filters are then ignored.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max companies",
            "minimum": 1,
            "type": "integer",
            "description": "No 10,000 cap: large searches are split automatically.",
            "default": 1000
          },
          "findContacts": {
            "title": "🌐 Find website, emails & phones",
            "type": "boolean",
            "description": "For each company, find its website and VERIFY it (the SIREN must appear on the site's legal notice), then extract emails, phones and social links. Billed only when a website is found.",
            "default": false
          },
          "useGoogleSearch": {
            "title": "Deep search with Google (slower)",
            "type": "boolean",
            "description": "Also search Google when the website can't be matched from the company name. Finds a few more websites, but mostly 'probable' (not SIREN-verified) ones.",
            "default": false
          },
          "legalProceedings": {
            "title": "⚖️ Check insolvency proceedings (BODACC)",
            "type": "boolean",
            "description": "Adds each company's collective proceedings from the official BODACC gazette: safeguard, receivership (redressement), liquidation, court plans and closures, with dates, court and a link to the notice. A company in liquidation still shows as 'active' in SIRENE until it is struck off: this is the field that tells you. No extra charge.",
            "default": false
          },
          "proceedingsFilter": {
            "title": "Companies in proceedings",
            "enum": [
              "all",
              "exclude",
              "only"
            ],
            "type": "string",
            "description": "Uses the BODACC check above (turned on automatically when you pick a filter). 'Under proceedings' = safeguard, receivership, liquidation or a court plan still on record.",
            "default": "all"
          },
          "checkVat": {
            "title": "🧾 Check VAT numbers in VIES (EU)",
            "type": "boolean",
            "description": "Checks each company's EU VAT number in VIES, the European Commission's official VAT register: vatValid true or false, with the date of the check. When the register gives no VAT number, the number built from the SIREN is checked, and shown only if VIES knows it. VIES takes about 5 s per number, 4 at a time (about a minute per 50 companies), more at busy hours: companies it does not answer for keep vatValid null, never a false 'invalid'. No extra charge.",
            "default": false
          },
          "monitorName": {
            "title": "🔔 Monitor name (new & changed companies)",
            "type": "string",
            "description": "Name this search and schedule it: each run then returns only companies that are NEW in your filters (e.g. just created) or whose key data CHANGED (status, directors, address, activity, headcount). The first run is the baseline."
          },
          "monitorChanges": {
            "title": "Also report changed companies",
            "type": "boolean",
            "description": "If off, the monitor only reports new companies.",
            "default": true
          },
          "telegramBotToken": {
            "title": "Telegram bot token",
            "type": "string",
            "description": "Get an instant message for each new or changed company of your monitor. Create a bot with @BotFather."
          },
          "telegramChatId": {
            "title": "Telegram chat ID",
            "type": "string",
            "description": "Your chat or channel ID (message @userinfobot to get yours)."
          },
          "discordWebhookUrl": {
            "title": "Discord webhook URL",
            "type": "string",
            "description": "Channel settings → Integrations → Webhooks."
          },
          "slackWebhookUrl": {
            "title": "Slack webhook URL",
            "type": "string",
            "description": "Incoming webhook URL."
          },
          "webhookUrl": {
            "title": "Custom webhook URL",
            "type": "string",
            "description": "Receives one JSON POST per run with all new and changed companies (Make, Zapier, n8n, your CRM…)."
          },
          "maxNotifications": {
            "title": "Max alerts per run",
            "minimum": 1,
            "type": "integer",
            "description": "Extra companies are summarized in one message.",
            "default": 30
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}